summaryrefslogtreecommitdiff
path: root/src/pkcs11.c
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2012-11-12 01:31:08 +0100
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2012-11-12 01:31:08 +0100
commit62609a1917b586d24f2004ebb8258c83874864ba (patch)
treed80186f10aa0591fb16468b34d6de0bbcea309c8 /src/pkcs11.c
parent3d98785df958a2061dd9056bb38cc318be202b33 (diff)
downloadgnutls-62609a1917b586d24f2004ebb8258c83874864ba.tar.gz
when generating a PKCS #11 private key print the public key.
Diffstat (limited to 'src/pkcs11.c')
-rw-r--r--src/pkcs11.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/pkcs11.c b/src/pkcs11.c
index 203dafac3e..d68d17f910 100644
--- a/src/pkcs11.c
+++ b/src/pkcs11.c
@@ -552,6 +552,7 @@ pkcs11_generate (FILE * outfile, const char *url, gnutls_pk_algorithm_t pk,
{
int ret;
unsigned int flags = 0;
+ gnutls_datum_t pubkey;
if (login)
flags = GNUTLS_PKCS11_OBJ_FLAG_LOGIN;
@@ -566,13 +567,18 @@ pkcs11_generate (FILE * outfile, const char *url, gnutls_pk_algorithm_t pk,
else if (private == 0)
flags |= GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_PRIVATE;
- ret = gnutls_pkcs11_privkey_generate(url, pk, bits, label, flags);
+ ret = gnutls_pkcs11_privkey_generate2(url, pk, bits, label, GNUTLS_X509_FMT_PEM,
+ &pubkey, flags);
if (ret < 0)
{
fprintf (stderr, "Error in %s:%d: %s\n", __func__, __LINE__,
gnutls_strerror (ret));
exit(1);
}
+
+ fwrite (pubkey.data, 1, pubkey.size, outfile);
+ fputs ("\n", outfile);
+ gnutls_free(pubkey.data);
return;
}