]>
git.ipfire.org Git - people/ms/strongswan.git/blob - scripts/key2keyid.c
7 * print the keyids of a private or public key
9 int main(int argc
, char *argv
[])
12 private_key_t
*private;
18 lib
->plugins
->load(lib
->plugins
, IPSEC_PLUGINDIR
, "gmp pubkey sha1");
19 atexit(library_deinit
);
21 read
= fread(buf
, 1, sizeof(buf
), stdin
);
24 fprintf(stderr
, "reading key failed.\n");
28 chunk
= chunk_create(buf
, read
);
30 private = lib
->creds
->create(lib
->creds
, CRED_PRIVATE_KEY
, KEY_RSA
,
31 BUILD_BLOB_ASN1_DER
, chunk_clone(chunk
),
35 printf("parsed %d bits %N private key.\n",
36 private->get_keysize(private)*8,
37 key_type_names
, private->get_type(private));
38 printf("%N is:\t %D\n", id_type_names
, ID_PUBKEY_INFO_SHA1
,
39 private->get_id(private, ID_PUBKEY_INFO_SHA1
));
40 printf("%N is:\t %D\n", id_type_names
, ID_PUBKEY_SHA1
,
41 private->get_id(private, ID_PUBKEY_SHA1
));
42 private->destroy(private);
46 public = lib
->creds
->create(lib
->creds
, CRED_PUBLIC_KEY
, KEY_ANY
,
47 BUILD_BLOB_ASN1_DER
, chunk_clone(chunk
),
51 public = lib
->creds
->create(lib
->creds
, CRED_PUBLIC_KEY
, KEY_RSA
,
52 BUILD_BLOB_ASN1_DER
, chunk_clone(chunk
),
57 printf("parsed %d bits %N public key.\n",
58 public->get_keysize(public)*8,
59 key_type_names
, public->get_type(public));
60 printf("%N is:\t %D\n", id_type_names
, ID_PUBKEY_INFO_SHA1
,
61 public->get_id(public, ID_PUBKEY_INFO_SHA1
));
62 printf("%N is:\t %D\n", id_type_names
, ID_PUBKEY_SHA1
,
63 public->get_id(public, ID_PUBKEY_SHA1
));
64 public->destroy(public);
68 fprintf(stderr
, "unable to parse input key.\n");