提交 8aa02e97 编写于 作者: B Ben Laurie

Make sure a bad parameter to RSA_verify_PKCS1_PSS() doesn't lead to a crash.

(Coverity ID 135).
上级 a68c7b91
...@@ -448,6 +448,7 @@ void ERR_load_RSA_strings(void); ...@@ -448,6 +448,7 @@ void ERR_load_RSA_strings(void);
/* Reason codes. */ /* Reason codes. */
#define RSA_R_ALGORITHM_MISMATCH 100 #define RSA_R_ALGORITHM_MISMATCH 100
#define RSA_R_BAD_ARGUMENT 149
#define RSA_R_BAD_E_VALUE 101 #define RSA_R_BAD_E_VALUE 101
#define RSA_R_BAD_FIXED_HEADER_DECRYPT 102 #define RSA_R_BAD_FIXED_HEADER_DECRYPT 102
#define RSA_R_BAD_PAD_BYTE_COUNT 103 #define RSA_R_BAD_PAD_BYTE_COUNT 103
......
/* crypto/rsa/rsa_err.c */ /* crypto/rsa/rsa_err.c */
/* ==================================================================== /* ====================================================================
* Copyright (c) 1999-2007 The OpenSSL Project. All rights reserved. * Copyright (c) 1999-2008 The OpenSSL Project. All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions * modification, are permitted provided that the following conditions
...@@ -124,6 +124,7 @@ static ERR_STRING_DATA RSA_str_functs[]= ...@@ -124,6 +124,7 @@ static ERR_STRING_DATA RSA_str_functs[]=
static ERR_STRING_DATA RSA_str_reasons[]= static ERR_STRING_DATA RSA_str_reasons[]=
{ {
{ERR_REASON(RSA_R_ALGORITHM_MISMATCH) ,"algorithm mismatch"}, {ERR_REASON(RSA_R_ALGORITHM_MISMATCH) ,"algorithm mismatch"},
{ERR_REASON(RSA_R_BAD_ARGUMENT) ,"bad argument"},
{ERR_REASON(RSA_R_BAD_E_VALUE) ,"bad e value"}, {ERR_REASON(RSA_R_BAD_E_VALUE) ,"bad e value"},
{ERR_REASON(RSA_R_BAD_FIXED_HEADER_DECRYPT),"bad fixed header decrypt"}, {ERR_REASON(RSA_R_BAD_FIXED_HEADER_DECRYPT),"bad fixed header decrypt"},
{ERR_REASON(RSA_R_BAD_PAD_BYTE_COUNT) ,"bad pad byte count"}, {ERR_REASON(RSA_R_BAD_PAD_BYTE_COUNT) ,"bad pad byte count"},
......
...@@ -81,6 +81,12 @@ int RSA_verify_PKCS1_PSS(RSA *rsa, const unsigned char *mHash, ...@@ -81,6 +81,12 @@ int RSA_verify_PKCS1_PSS(RSA *rsa, const unsigned char *mHash,
EVP_MD_CTX ctx; EVP_MD_CTX ctx;
unsigned char H_[EVP_MAX_MD_SIZE]; unsigned char H_[EVP_MAX_MD_SIZE];
if (Hash == NULL)
{
RSAerr(RSA_F_RSA_VERIFY_PKCS1_PSS, RSA_R_BAD_ARGUMENT);
goto err;
}
hLen = EVP_MD_size(Hash); hLen = EVP_MD_size(Hash);
/* /*
* Negative sLen has special meanings: * Negative sLen has special meanings:
......
...@@ -412,6 +412,7 @@ printf("\n"); ...@@ -412,6 +412,7 @@ printf("\n");
if (!clear) if (!clear)
{ {
/* !clear => s->read_hash != NULL => mac_size != -1 */
mac_size=EVP_MD_CTX_size(s->read_hash); mac_size=EVP_MD_CTX_size(s->read_hash);
if (rr->length > SSL3_RT_MAX_COMPRESSED_LENGTH+extra+mac_size) if (rr->length > SSL3_RT_MAX_COMPRESSED_LENGTH+extra+mac_size)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册