summaryrefslogtreecommitdiff
path: root/src/pkcs11.c
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@redhat.com>2014-08-06 15:35:54 +0200
committerNikos Mavrogiannopoulos <nmav@redhat.com>2014-08-06 15:53:04 +0200
commit4f5822b7e39c844570f25bbc84881de68918761f (patch)
tree7c78433dab92095a86cd502b6ec98d3f4fab7554 /src/pkcs11.c
parente3ba710de5f1ef7aaadebb7f1dcead71b1b706dc (diff)
downloadgnutls-4f5822b7e39c844570f25bbc84881de68918761f.tar.gz
changed semantics of gnutls_pkcs11_privkey_get_pubkey; named gnutls_pkcs11_privkey_export_pubkey
Diffstat (limited to 'src/pkcs11.c')
-rw-r--r--src/pkcs11.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/pkcs11.c b/src/pkcs11.c
index 8fa9fe497b..1d8a739db1 100644
--- a/src/pkcs11.c
+++ b/src/pkcs11.c
@@ -582,6 +582,7 @@ pkcs11_export_pubkey(FILE * outfile, const char *url, int detailed, unsigned int
int ret;
unsigned int flags = 0;
gnutls_datum_t pubkey;
+ gnutls_pkcs11_privkey_t pkey;
if (login_flags) flags = login_flags;
@@ -595,15 +596,30 @@ pkcs11_export_pubkey(FILE * outfile, const char *url, int detailed, unsigned int
sleep(3);
}
+ ret = gnutls_pkcs11_privkey_init(&pkey);
+ if (ret < 0) {
+ fprintf(stderr, "Error in %s:%d: %s\n", __func__, __LINE__,
+ gnutls_strerror(ret));
+ exit(1);
+ }
+
+ ret = gnutls_pkcs11_privkey_import_url(pkey, url, 0);
+ if (ret < 0) {
+ fprintf(stderr, "Error in %s:%d: %s\n", __func__, __LINE__,
+ gnutls_strerror(ret));
+ exit(1);
+ }
+
ret =
- gnutls_pkcs11_privkey_get_pubkey(url,
- GNUTLS_X509_FMT_PEM, &pubkey,
- flags);
+ gnutls_pkcs11_privkey_export_pubkey(pkey,
+ GNUTLS_X509_FMT_PEM, &pubkey,
+ flags);
if (ret < 0) {
fprintf(stderr, "Error in %s:%d: %s\n", __func__, __LINE__,
gnutls_strerror(ret));
exit(1);
}
+ gnutls_pkcs11_privkey_deinit(pkey);
fwrite(pubkey.data, 1, pubkey.size, outfile);
gnutls_free(pubkey.data);