5 #include <utils/identification.h>
6 #include <credentials/keys/private_key.h>
7 #include <credentials/keys/public_key.h>
11 * print the keyids of a private or public key in sql format
13 int main(int argc
, char *argv
[])
16 private_key_t
*private;
17 identification_t
*keyid
;
23 lib
->plugins
->load(lib
->plugins
, IPSEC_PLUGINDIR
, "gmp pubkey sha1");
24 atexit(library_deinit
);
26 read
= fread(buf
, 1, sizeof(buf
), stdin
);
29 fprintf(stderr
, "reading key failed.\n");
33 chunk
= chunk_create(buf
, read
);
35 private = lib
->creds
->create(lib
->creds
, CRED_PRIVATE_KEY
, KEY_RSA
,
36 BUILD_BLOB_ASN1_DER
, chunk_clone(chunk
),
40 keyid
= private->get_id(private, ID_PUBKEY_INFO_SHA1
);
41 chunk
= keyid
->get_encoding(keyid
);
43 printf("%d, X'", ID_PUBKEY_INFO_SHA1
);
44 for (n
= 0; n
< chunk
.len
; n
++)
46 printf("%.2x", chunk
.ptr
[n
]);
49 private->destroy(private);
53 public = lib
->creds
->create(lib
->creds
, CRED_PUBLIC_KEY
, KEY_ANY
,
54 BUILD_BLOB_ASN1_DER
, chunk_clone(chunk
),
58 public = lib
->creds
->create(lib
->creds
, CRED_PUBLIC_KEY
, KEY_RSA
,
59 BUILD_BLOB_ASN1_DER
, chunk_clone(chunk
),
64 keyid
= public->get_id(public, ID_PUBKEY_INFO_SHA1
);
65 chunk
= keyid
->get_encoding(keyid
);
67 printf("%d, X'", ID_PUBKEY_INFO_SHA1
);
68 for (n
= 0; n
< chunk
.len
; n
++)
70 printf("%.2x", chunk
.ptr
[n
]);
73 public->destroy(public);
77 fprintf(stderr
, "unable to parse input key.\n");