mirror of
https://github.com/openssl/openssl.git
synced 2024-12-18 22:43:41 +08:00
Check input length to pkey_rsa_verify()
Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/2065)
This commit is contained in:
parent
6c0e1e20d2
commit
71bbc79b7d
@ -26,6 +26,7 @@ static ERR_STRING_DATA RSA_str_functs[] = {
|
||||
{ERR_FUNC(RSA_F_PKEY_RSA_CTRL), "pkey_rsa_ctrl"},
|
||||
{ERR_FUNC(RSA_F_PKEY_RSA_CTRL_STR), "pkey_rsa_ctrl_str"},
|
||||
{ERR_FUNC(RSA_F_PKEY_RSA_SIGN), "pkey_rsa_sign"},
|
||||
{ERR_FUNC(RSA_F_PKEY_RSA_VERIFY), "pkey_rsa_verify"},
|
||||
{ERR_FUNC(RSA_F_PKEY_RSA_VERIFYRECOVER), "pkey_rsa_verifyrecover"},
|
||||
{ERR_FUNC(RSA_F_RSA_ALGOR_TO_MD), "rsa_algor_to_md"},
|
||||
{ERR_FUNC(RSA_F_RSA_BUILTIN_KEYGEN), "rsa_builtin_keygen"},
|
||||
|
@ -229,6 +229,10 @@ static int pkey_rsa_verify(EVP_PKEY_CTX *ctx,
|
||||
if (rctx->pad_mode == RSA_PKCS1_PADDING)
|
||||
return RSA_verify(EVP_MD_type(rctx->md), tbs, tbslen,
|
||||
sig, siglen, rsa);
|
||||
if (tbslen != (size_t)EVP_MD_size(rctx->md)) {
|
||||
RSAerr(RSA_F_PKEY_RSA_VERIFY, RSA_R_INVALID_DIGEST_LENGTH);
|
||||
return -1;
|
||||
}
|
||||
if (rctx->pad_mode == RSA_X931_PADDING) {
|
||||
if (pkey_rsa_verifyrecover(ctx, NULL, &rslen, sig, siglen) <= 0)
|
||||
return 0;
|
||||
|
@ -468,6 +468,7 @@ int ERR_load_RSA_strings(void);
|
||||
# define RSA_F_PKEY_RSA_CTRL 143
|
||||
# define RSA_F_PKEY_RSA_CTRL_STR 144
|
||||
# define RSA_F_PKEY_RSA_SIGN 142
|
||||
# define RSA_F_PKEY_RSA_VERIFY 149
|
||||
# define RSA_F_PKEY_RSA_VERIFYRECOVER 141
|
||||
# define RSA_F_RSA_ALGOR_TO_MD 156
|
||||
# define RSA_F_RSA_BUILTIN_KEYGEN 129
|
||||
|
Loading…
Reference in New Issue
Block a user