some const fixes and cleanup
[openssl.git] / crypto / asn1 / t_pkey.c
index 73f32ff84f9302f16cdedfd4b795569566f7afcb..86bd2e04e42dd5b1b3d97a4c0a22bbd454b1442e 100644 (file)
@@ -150,9 +150,9 @@ int RSA_print(BIO *bp, const RSA *x, int off)
                }
 
        if (x->d == NULL)
-               sprintf(str,"Modulus (%d bit):",BN_num_bits(x->n));
+               BIO_snprintf(str,sizeof str,"Modulus (%d bit):",BN_num_bits(x->n));
        else
-               strcpy(str,"modulus:");
+               BUF_strlcpy(str,"modulus:",sizeof str);
        if (!print(bp,str,x->n,m,off)) goto err;
        s=(x->d == NULL)?"Exponent:":"publicExponent:";
        if (!print(bp,s,x->e,m,off)) goto err;
@@ -275,7 +275,6 @@ int EC_KEY_print_fp(FILE *fp, const EC_KEY *x, int off)
 
 int ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off)
        {
-       char str[128];
        unsigned char *buffer=NULL;
        size_t  buf_len=0, i;
        int     ret=0, reason=ERR_R_BIO_LIB;
@@ -301,14 +300,8 @@ int ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off)
                /* the curve parameter are given by an asn1 OID */
                int nid;
 
-               if (off)
-                       {
-                       if (off > 128)
-                               off=128;
-                       memset(str, ' ', off);
-                       if (BIO_write(bp, str, off) <= 0)
-                               goto err;
-                       }
+               if (!BIO_indent(bp, off, 128))
+                       goto err;
 
                nid = EC_GROUP_get_nid(x);
                if (nid == 0)
@@ -396,13 +389,10 @@ int ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off)
                        reason = ERR_R_MALLOC_FAILURE;
                        goto err;
                        }
-               if (off)
-                       {
-                       if (off > 128) off=128;
-                       memset(str,' ',off);
-                       if (BIO_write(bp, str, off) <= 0)
-                               goto err;
-                       }
+
+               if (!BIO_indent(bp, off, 128))
+                       goto err;
+
                /* print the 'short name' of the field type */
                if (BIO_printf(bp, "Field Type: %s\n", OBJ_nid2sn(tmp_nid))
                        <= 0)
@@ -415,13 +405,8 @@ int ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off)
                        if (basis_type == 0)
                                goto err;
 
-                       if (off)
-                               {
-                               if (off > 128) off=128;
-                               memset(str,' ',off);
-                               if (BIO_write(bp, str, off) <= 0)
-                                       goto err;
-                               }
+                       if (!BIO_indent(bp, off, 128))
+                               goto err;
 
                        if (BIO_printf(bp, "Basis Type: %s\n", 
                                OBJ_nid2sn(basis_type)) <= 0)
@@ -491,11 +476,10 @@ err:
 
 int EC_KEY_print(BIO *bp, const EC_KEY *x, int off)
        {
-       char str[128];
        unsigned char *buffer=NULL;
        size_t  buf_len=0, i;
        int     ret=0, reason=ERR_R_BIO_LIB;
-       BIGNUM  *pub_key=NULL;
+       BIGNUM  *pub_key=NULL, *order=NULL;
        BN_CTX  *ctx=NULL;
  
        if (!x || !x->group)
@@ -524,16 +508,17 @@ int EC_KEY_print(BIO *bp, const EC_KEY *x, int off)
                reason = ERR_R_MALLOC_FAILURE;
                goto err;
                }
-       if (off)
-               {
-               if (off > 128) off=128;
-               memset(str,' ',off);
-               }
+
        if (x->priv_key != NULL)
                {
-               if (off && (BIO_write(bp, str, off) <= 0)) goto err;
+               if (!BIO_indent(bp, off, 128))
+                       goto err;
+               if ((order = BN_new()) == NULL)
+                       goto err;
+               if (!EC_GROUP_get_order(x->group, order, NULL))
+                       goto err;
                if (BIO_printf(bp, "Private-Key: (%d bit)\n", 
-                       BN_num_bits(x->priv_key)) <= 0) goto err;
+                       BN_num_bits(order)) <= 0) goto err;
                }
   
        if ((x->priv_key != NULL) && !print(bp, "priv:", x->priv_key, 
@@ -550,6 +535,8 @@ err:
                ECerr(EC_F_EC_KEY_PRINT, reason);
        if (pub_key) 
                BN_free(pub_key);
+       if (order)
+               BN_free(order);
        if (ctx)
                BN_CTX_free(ctx);
        if (buffer != NULL)