From: Bodo Möller Date: Wed, 4 Dec 2002 17:43:01 +0000 (+0000) Subject: In ECPKParameters_print, output the private key length correctly X-Git-Tag: STATE_before_zlib~23 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=7e8c30b5897fb9fae87e42bf19dca29ca1b0dcac;p=oweals%2Fopenssl.git In ECPKParameters_print, output the private key length correctly (length of the order of the group, not length of the actual key, which will be shorter in some cases). Submitted by: Nils Larsch --- diff --git a/crypto/asn1/t_pkey.c b/crypto/asn1/t_pkey.c index b418bf035a..06e85f3b4c 100644 --- a/crypto/asn1/t_pkey.c +++ b/crypto/asn1/t_pkey.c @@ -479,7 +479,7 @@ int EC_KEY_print(BIO *bp, const EC_KEY *x, int off) 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) @@ -513,8 +513,12 @@ int EC_KEY_print(BIO *bp, const EC_KEY *x, int off) { 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, @@ -531,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)