diff options
author | Dr. David von Oheimb <David.von.Oheimb@siemens.com> | 2020-06-09 10:21:58 +0200 |
---|---|---|
committer | Dr. David von Oheimb <David.von.Oheimb@siemens.com> | 2021-05-25 15:16:54 +0200 |
commit | a7e4ca5b4e1932cb91ea21047403c87a033e524a (patch) | |
tree | 1ad41d1f12e8ed09486ca48cf570cff42962ec73 /apps/genpkey.c | |
parent | 8d67621de16990132c13f6a11bcc18ce8e9cdd47 (diff) |
Add warning to key/param generating apps on potential delay due to missing entropy
This also introduces app_keygen() and app_paramgen() and cleans up err reporting.
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12095)
Diffstat (limited to 'apps/genpkey.c')
-rw-r--r-- | apps/genpkey.c | 19 |
1 files changed, 4 insertions, 15 deletions
diff --git a/apps/genpkey.c b/apps/genpkey.c index c187cc2a70..38b1100658 100644 --- a/apps/genpkey.c +++ b/apps/genpkey.c @@ -188,19 +188,8 @@ int genpkey_main(int argc, char **argv) EVP_PKEY_CTX_set_cb(ctx, genpkey_cb); EVP_PKEY_CTX_set_app_data(ctx, bio_err); - if (do_param) { - if (EVP_PKEY_paramgen(ctx, &pkey) <= 0) { - BIO_puts(bio_err, "Error generating parameters\n"); - ERR_print_errors(bio_err); - goto end; - } - } else { - if (EVP_PKEY_keygen(ctx, &pkey) <= 0) { - BIO_puts(bio_err, "Error generating key\n"); - ERR_print_errors(bio_err); - goto end; - } - } + pkey = do_param ? app_paramgen(ctx, algname) + : app_keygen(ctx, algname, 0, 0 /* not verbose */); if (do_param) { rv = PEM_write_bio_Parameters(out, pkey); @@ -219,7 +208,6 @@ int genpkey_main(int argc, char **argv) if (rv <= 0) { BIO_puts(bio_err, "Error writing key\n"); - ERR_print_errors(bio_err); ret = 1; } @@ -231,13 +219,14 @@ int genpkey_main(int argc, char **argv) if (rv <= 0) { BIO_puts(bio_err, "Error printing key\n"); - ERR_print_errors(bio_err); ret = 1; } } end: sk_OPENSSL_STRING_free(keyopt); + if (ret != 0) + ERR_print_errors(bio_err); EVP_PKEY_free(pkey); EVP_PKEY_CTX_free(ctx); EVP_CIPHER_free(cipher); |