Fix bug in DSA, EC methods.
This commit is contained in:
parent
d82e2718e2
commit
b2c0518e6a
@ -108,7 +108,7 @@ static int dsa_pub_decode(EVP_PKEY *pkey, X509_PUBKEY *pubkey)
|
||||
}
|
||||
|
||||
ASN1_INTEGER_free(public_key);
|
||||
|
||||
EVP_PKEY_assign_DSA(pkey, dsa);
|
||||
return 1;
|
||||
|
||||
err:
|
||||
@ -139,6 +139,7 @@ static int dsa_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey)
|
||||
DSAerr(DSA_F_DSA_PUB_ENCODE, ERR_R_MALLOC_FAILURE);
|
||||
goto err;
|
||||
}
|
||||
pval = str;
|
||||
ptype = V_ASN1_SEQUENCE;
|
||||
}
|
||||
else
|
||||
|
@ -445,7 +445,6 @@ static int do_EC_KEY_print(BIO *bp, const EC_KEY *x, int off, int ktype)
|
||||
goto err;
|
||||
}
|
||||
|
||||
|
||||
if (ktype > 0)
|
||||
{
|
||||
public_key = EC_KEY_get0_public_key(x);
|
||||
@ -455,15 +454,15 @@ static int do_EC_KEY_print(BIO *bp, const EC_KEY *x, int off, int ktype)
|
||||
reason = ERR_R_EC_LIB;
|
||||
goto err;
|
||||
}
|
||||
buf_len = (size_t)BN_num_bytes(pub_key);
|
||||
if (pub_key)
|
||||
buf_len = (size_t)BN_num_bytes(pub_key);
|
||||
}
|
||||
else
|
||||
|
||||
if (ktype == 2)
|
||||
{
|
||||
if ((i = (size_t)BN_num_bytes(priv_key)) > buf_len)
|
||||
buf_len = i;
|
||||
priv_key = EC_KEY_get0_private_key(x);
|
||||
if (priv_key && (i = (size_t)BN_num_bytes(priv_key)) > buf_len)
|
||||
buf_len = i;
|
||||
}
|
||||
else
|
||||
priv_key = NULL;
|
||||
|
Loading…
x
Reference in New Issue
Block a user