mirror of
https://github.com/openssl/openssl.git
synced 2025-03-25 20:00:44 +08:00
Remove DSA digest length checks when no digest is passed
FIPS 186-4 does not specify a hard requirement on DSA digest lengths, and in any case the current check rejects the FIPS recommended digest lengths for key sizes != 1024 bits. Fixes: #6748 Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6749)
This commit is contained in:
parent
bd93f1ac27
commit
665d9d1c06
@ -77,13 +77,8 @@ static int pkey_dsa_sign(EVP_PKEY_CTX *ctx, unsigned char *sig,
|
||||
DSA_PKEY_CTX *dctx = ctx->data;
|
||||
DSA *dsa = ctx->pkey->pkey.dsa;
|
||||
|
||||
if (dctx->md) {
|
||||
if (tbslen != (size_t)EVP_MD_size(dctx->md))
|
||||
return 0;
|
||||
} else {
|
||||
if (tbslen != SHA_DIGEST_LENGTH)
|
||||
return 0;
|
||||
}
|
||||
if (dctx->md != NULL && tbslen != (size_t)EVP_MD_size(dctx->md))
|
||||
return 0;
|
||||
|
||||
ret = DSA_sign(0, tbs, tbslen, sig, &sltmp, dsa);
|
||||
|
||||
@ -101,13 +96,8 @@ static int pkey_dsa_verify(EVP_PKEY_CTX *ctx,
|
||||
DSA_PKEY_CTX *dctx = ctx->data;
|
||||
DSA *dsa = ctx->pkey->pkey.dsa;
|
||||
|
||||
if (dctx->md) {
|
||||
if (tbslen != (size_t)EVP_MD_size(dctx->md))
|
||||
return 0;
|
||||
} else {
|
||||
if (tbslen != SHA_DIGEST_LENGTH)
|
||||
return 0;
|
||||
}
|
||||
if (dctx->md != NULL && tbslen != (size_t)EVP_MD_size(dctx->md))
|
||||
return 0;
|
||||
|
||||
ret = DSA_verify(0, tbs, tbslen, sig, siglen, dsa);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user