Commit 0a6e92a8 authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

Include modulus sanity checks.

parent 36eaa706
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -189,6 +189,12 @@ static int compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh)
	BN_CTX_start(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)
		{
		DHerr(DH_F_DH_COMPUTE_KEY,DH_R_NO_PRIVATE_VALUE);
+12 −0
Original line number Diff line number Diff line
@@ -297,6 +297,18 @@ static int dsa_do_verify(const unsigned char *dgst, FIPS_DSA_SIZE_T dgst_len, DS
	    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(&u2);
	BN_init(&t1);