Include modulus sanity checks.
This commit is contained in:
parent
36eaa70621
commit
0a6e92a88f
2 changed files with 18 additions and 0 deletions
|
@ -189,6 +189,12 @@ static int compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh)
|
||||||
BN_CTX_start(ctx);
|
BN_CTX_start(ctx);
|
||||||
tmp = BN_CTX_get(ctx);
|
tmp = BN_CTX_get(ctx);
|
||||||
|
|
||||||
|
if (BN_num_bits(dh->p) > OPENSSL_DH_MAX_MODULUS_BITS)
|
||||||
|
{
|
||||||
|
DHerr(DH_F_COMPUTE_KEY,DH_R_MODULUS_TOO_LARGE);
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
|
|
||||||
if (dh->priv_key == NULL)
|
if (dh->priv_key == NULL)
|
||||||
{
|
{
|
||||||
DHerr(DH_F_DH_COMPUTE_KEY,DH_R_NO_PRIVATE_VALUE);
|
DHerr(DH_F_DH_COMPUTE_KEY,DH_R_NO_PRIVATE_VALUE);
|
||||||
|
|
|
@ -297,6 +297,18 @@ static int dsa_do_verify(const unsigned char *dgst, FIPS_DSA_SIZE_T dgst_len, DS
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (BN_num_bits(dsa->q) != 160)
|
||||||
|
{
|
||||||
|
DSAerr(DSA_F_DSA_DO_VERIFY,DSA_R_BAD_Q_VALUE);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (BN_num_bits(dsa->p) > OPENSSL_DSA_MAX_MODULUS_BITS)
|
||||||
|
{
|
||||||
|
DSAerr(DSA_F_DSA_DO_VERIFY,DSA_R_MODULUS_TOO_LARGE);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
BN_init(&u1);
|
BN_init(&u1);
|
||||||
BN_init(&u2);
|
BN_init(&u2);
|
||||||
BN_init(&t1);
|
BN_init(&t1);
|
||||||
|
|
Loading…
Reference in a new issue