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
This commit is contained in:
parent
2b32b28191
commit
7e8c30b589
@ -479,7 +479,7 @@ int EC_KEY_print(BIO *bp, const EC_KEY *x, int off)
|
|||||||
unsigned char *buffer=NULL;
|
unsigned char *buffer=NULL;
|
||||||
size_t buf_len=0, i;
|
size_t buf_len=0, i;
|
||||||
int ret=0, reason=ERR_R_BIO_LIB;
|
int ret=0, reason=ERR_R_BIO_LIB;
|
||||||
BIGNUM *pub_key=NULL;
|
BIGNUM *pub_key=NULL, *order=NULL;
|
||||||
BN_CTX *ctx=NULL;
|
BN_CTX *ctx=NULL;
|
||||||
|
|
||||||
if (!x || !x->group)
|
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))
|
if (!BIO_indent(bp, off, 128))
|
||||||
goto err;
|
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",
|
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,
|
if ((x->priv_key != NULL) && !print(bp, "priv:", x->priv_key,
|
||||||
@ -531,6 +535,8 @@ err:
|
|||||||
ECerr(EC_F_EC_KEY_PRINT, reason);
|
ECerr(EC_F_EC_KEY_PRINT, reason);
|
||||||
if (pub_key)
|
if (pub_key)
|
||||||
BN_free(pub_key);
|
BN_free(pub_key);
|
||||||
|
if (order)
|
||||||
|
BN_free(order);
|
||||||
if (ctx)
|
if (ctx)
|
||||||
BN_CTX_free(ctx);
|
BN_CTX_free(ctx);
|
||||||
if (buffer != NULL)
|
if (buffer != NULL)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user