diff options
Diffstat (limited to 'src/lib/libcrypto/dsa/dsa_ossl.c')
| -rw-r--r-- | src/lib/libcrypto/dsa/dsa_ossl.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/lib/libcrypto/dsa/dsa_ossl.c b/src/lib/libcrypto/dsa/dsa_ossl.c index 12509a7083..5de5fc7e91 100644 --- a/src/lib/libcrypto/dsa/dsa_ossl.c +++ b/src/lib/libcrypto/dsa/dsa_ossl.c | |||
| @@ -274,6 +274,18 @@ static int dsa_do_verify(const unsigned char *dgst, int dgst_len, DSA_SIG *sig, | |||
| 274 | return -1; | 274 | return -1; |
| 275 | } | 275 | } |
| 276 | 276 | ||
| 277 | if (BN_num_bits(dsa->q) != 160) | ||
| 278 | { | ||
| 279 | DSAerr(DSA_F_DSA_DO_VERIFY,DSA_R_BAD_Q_VALUE); | ||
| 280 | return -1; | ||
| 281 | } | ||
| 282 | |||
| 283 | if (BN_num_bits(dsa->p) > OPENSSL_DSA_MAX_MODULUS_BITS) | ||
| 284 | { | ||
| 285 | DSAerr(DSA_F_DSA_DO_VERIFY,DSA_R_MODULUS_TOO_LARGE); | ||
| 286 | return -1; | ||
| 287 | } | ||
| 288 | |||
| 277 | BN_init(&u1); | 289 | BN_init(&u1); |
| 278 | BN_init(&u2); | 290 | BN_init(&u2); |
| 279 | BN_init(&t1); | 291 | BN_init(&t1); |
