5 #include <credentials/keys/private_key.h>
6 #include <credentials/keys/public_key.h>
9 * print the keyids of a private or public key in sql format
11 int main(int argc
, char *argv
[])
14 private_key_t
*private;
20 lib
->plugins
->load(lib
->plugins
, IPSEC_PLUGINDIR
, "gmp pubkey sha1");
21 atexit(library_deinit
);
23 read
= fread(buf
, 1, sizeof(buf
), stdin
);
26 fprintf(stderr
, "reading key failed.\n");
30 chunk
= chunk_create(buf
, read
);
32 private = lib
->creds
->create(lib
->creds
, CRED_PRIVATE_KEY
, KEY_RSA
,
33 BUILD_BLOB_ASN1_DER
, chunk_clone(chunk
),
37 if (private->get_fingerprint(private, KEY_ID_PUBKEY_SHA1
, &chunk
))
39 printf("%d, X'", ID_KEY_ID
);
40 for (n
= 0; n
< chunk
.len
; n
++)
42 printf("%.2x", chunk
.ptr
[n
]);
46 private->destroy(private);
50 public = lib
->creds
->create(lib
->creds
, CRED_PUBLIC_KEY
, KEY_ANY
,
51 BUILD_BLOB_ASN1_DER
, chunk_clone(chunk
),
55 public = lib
->creds
->create(lib
->creds
, CRED_PUBLIC_KEY
, KEY_RSA
,
56 BUILD_BLOB_ASN1_DER
, chunk_clone(chunk
),
61 if (public->get_fingerprint(public, KEY_ID_PUBKEY_SHA1
, &chunk
))
63 printf("%d, X'", ID_KEY_ID
);
64 for (n
= 0; n
< chunk
.len
; n
++)
66 printf("%.2x", chunk
.ptr
[n
]);
70 public->destroy(public);
74 fprintf(stderr
, "unable to parse input key.\n");