If present print j, seed and counter values for DH
authorDr. Stephen Henson <steve@openssl.org>
Fri, 2 Aug 2013 13:40:00 +0000 (14:40 +0100)
committerDr. Stephen Henson <steve@openssl.org>
Tue, 1 Oct 2013 13:01:17 +0000 (14:01 +0100)
(cherry picked from commit c9577ab5eae56cb00c17a0eb724229f0bc1397a0)

Conflicts:

crypto/dh/dh_ameth.c

crypto/dh/dh_ameth.c

index 7d1254ecd86b354adae7be05ad3247f1fe74b14d..2841225f83530181d7e2ea5d85db07319eccdc6b 100644 (file)
@@ -363,6 +363,9 @@ static int do_dh_print(BIO *bp, const DH *x, int indent,
                }
 
        update_buflen(x->g, &buf_len);
+       update_buflen(x->q, &buf_len);
+       update_buflen(x->j, &buf_len);
+       update_buflen(x->counter, &buf_len);
        update_buflen(pub_key, &buf_len);
        update_buflen(priv_key, &buf_len);
 
@@ -390,6 +393,30 @@ static int do_dh_print(BIO *bp, const DH *x, int indent,
 
        if (!ASN1_bn_print(bp,"prime:",x->p,m,indent)) goto err;
        if (!ASN1_bn_print(bp,"generator:",x->g,m,indent)) goto err;
+       if (x->q && !ASN1_bn_print(bp,"subgroup order:",x->q,m,indent)) goto err;
+       if (x->j && !ASN1_bn_print(bp,"subgroup factor:",x->j,m,indent))
+               goto err;
+       if (x->seed)
+               {
+               int i;
+               BIO_indent(bp, indent, 128);
+               BIO_puts(bp, "seed:");
+               for (i=0; i < x->seedlen; i++)
+                       {
+                       if ((i%15) == 0)
+                               {
+                               if(BIO_puts(bp,"\n") <= 0
+                                  || !BIO_indent(bp,indent+4,128))
+                                   goto err;
+                               }
+                       if (BIO_printf(bp,"%02x%s", x->seed[i],
+                                       ((i+1) == x->seedlen)?"":":") <= 0)
+                               goto err;
+                       }
+               if (BIO_write(bp,"\n",1) <= 0) return(0);
+               }
+       if (x->counter && !ASN1_bn_print(bp,"counter:",x->counter,m,indent))
+               goto err;
        if (x->length != 0)
                {
                BIO_indent(bp, indent, 128);