fix for dsa key size feature request issue: pkey -text or -text_pub should show dsa...
authorjayaram <jayaramx.matta@intel.com>
Mon, 23 Sep 2019 10:44:56 +0000 (16:14 +0530)
committerDmitry Belyavskiy <beldmit@gmail.com>
Tue, 24 Sep 2019 11:24:32 +0000 (14:24 +0300)
Reviewed-by: Paul Dale <paul.dale@oracle.com>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/9983)

crypto/dsa/dsa_ameth.c

index 4e0ed01970c607cdfcee832cc86827e993b64054..f3aab34856f06b02050307b89a38ca56244e1d79 100644 (file)
@@ -336,6 +336,10 @@ static int do_dsa_print(BIO *bp, const DSA *x, int off, int ptype)
     int ret = 0;
     const char *ktype = NULL;
     const BIGNUM *priv_key, *pub_key;
     int ret = 0;
     const char *ktype = NULL;
     const BIGNUM *priv_key, *pub_key;
+    int mod_len = 0;
+
+    if (x->p != NULL)
+        mod_len = BN_num_bits(x->p);
 
     if (ptype == 2)
         priv_key = x->priv_key;
 
     if (ptype == 2)
         priv_key = x->priv_key;
@@ -360,6 +364,9 @@ static int do_dsa_print(BIO *bp, const DSA *x, int off, int ptype)
         if (BIO_printf(bp, "%s: (%d bit)\n", ktype, BN_num_bits(x->p))
             <= 0)
             goto err;
         if (BIO_printf(bp, "%s: (%d bit)\n", ktype, BN_num_bits(x->p))
             <= 0)
             goto err;
+    } else {
+        if (BIO_printf(bp, "Public-Key: (%d bit)\n", mod_len) <= 0)
+            goto err;
     }
 
     if (!ASN1_bn_print(bp, "priv:", priv_key, NULL, off))
     }
 
     if (!ASN1_bn_print(bp, "priv:", priv_key, NULL, off))