summaryrefslogtreecommitdiffstats
path: root/apps/pkey.c
diff options
context:
space:
mode:
authorViktor Dukhovni <openssl-users@dukhovni.org>2015-12-13 02:51:44 -0500
committerViktor Dukhovni <openssl-users@dukhovni.org>2015-12-13 20:13:49 -0500
commit7eff6aa0d627c2bdbce0493bdb029e477a8caf1e (patch)
treeec211202a6ba2bc4079bef4a9b5168d2d83a7f86 /apps/pkey.c
parentb9749432346f69b29d82070041e71b237d718ce7 (diff)
Avoid erroneous "assert(private)" failures.
When processing a public key input via "-pubin", "private" was sometimes erroneously set, or else not set and incorrectly asserted. Reviewed-by: Rich salz <rsalz@openssl.org>
Diffstat (limited to 'apps/pkey.c')
-rw-r--r--apps/pkey.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/apps/pkey.c b/apps/pkey.c
index 694cdd12c7..40db6f57f9 100644
--- a/apps/pkey.c
+++ b/apps/pkey.c
@@ -182,18 +182,20 @@ int pkey_main(int argc, char **argv)
if (!noout) {
if (outformat == FORMAT_PEM) {
- assert(private);
if (pubout)
PEM_write_bio_PUBKEY(out, pkey);
- else
+ else {
+ assert(private);
PEM_write_bio_PrivateKey(out, pkey, cipher,
NULL, 0, NULL, passout);
+ }
} else if (outformat == FORMAT_ASN1) {
- assert(private);
if (pubout)
i2d_PUBKEY_bio(out, pkey);
- else
+ else {
+ assert(private);
i2d_PrivateKey_bio(out, pkey);
+ }
} else {
BIO_printf(bio_err, "Bad format specified for key\n");
goto end;