PR: 2127
Submitted by: Tomas Mraz <tmraz@redhat.com> Check for lookup failures in EVP_PBE_CipherInit().
This commit is contained in:
parent
ef51b4b9b4
commit
e50858c559
@ -1291,6 +1291,8 @@ void ERR_load_EVP_strings(void);
|
|||||||
#define EVP_R_PRIVATE_KEY_DECODE_ERROR 145
|
#define EVP_R_PRIVATE_KEY_DECODE_ERROR 145
|
||||||
#define EVP_R_PRIVATE_KEY_ENCODE_ERROR 146
|
#define EVP_R_PRIVATE_KEY_ENCODE_ERROR 146
|
||||||
#define EVP_R_PUBLIC_KEY_NOT_RSA 106
|
#define EVP_R_PUBLIC_KEY_NOT_RSA 106
|
||||||
|
#define EVP_R_UNKNOWN_CIPHER 160
|
||||||
|
#define EVP_R_UNKNOWN_DIGEST 161
|
||||||
#define EVP_R_UNKNOWN_PBE_ALGORITHM 121
|
#define EVP_R_UNKNOWN_PBE_ALGORITHM 121
|
||||||
#define EVP_R_UNSUPORTED_NUMBER_OF_ROUNDS 135
|
#define EVP_R_UNSUPORTED_NUMBER_OF_ROUNDS 135
|
||||||
#define EVP_R_UNSUPPORTED_ALGORITHM 156
|
#define EVP_R_UNSUPPORTED_ALGORITHM 156
|
||||||
|
@ -187,6 +187,8 @@ static ERR_STRING_DATA EVP_str_reasons[]=
|
|||||||
{ERR_REASON(EVP_R_PRIVATE_KEY_DECODE_ERROR),"private key decode error"},
|
{ERR_REASON(EVP_R_PRIVATE_KEY_DECODE_ERROR),"private key decode error"},
|
||||||
{ERR_REASON(EVP_R_PRIVATE_KEY_ENCODE_ERROR),"private key encode error"},
|
{ERR_REASON(EVP_R_PRIVATE_KEY_ENCODE_ERROR),"private key encode error"},
|
||||||
{ERR_REASON(EVP_R_PUBLIC_KEY_NOT_RSA) ,"public key not rsa"},
|
{ERR_REASON(EVP_R_PUBLIC_KEY_NOT_RSA) ,"public key not rsa"},
|
||||||
|
{ERR_REASON(EVP_R_UNKNOWN_CIPHER) ,"unknown cipher"},
|
||||||
|
{ERR_REASON(EVP_R_UNKNOWN_DIGEST) ,"unknown digest"},
|
||||||
{ERR_REASON(EVP_R_UNKNOWN_PBE_ALGORITHM) ,"unknown pbe algorithm"},
|
{ERR_REASON(EVP_R_UNKNOWN_PBE_ALGORITHM) ,"unknown pbe algorithm"},
|
||||||
{ERR_REASON(EVP_R_UNSUPORTED_NUMBER_OF_ROUNDS),"unsuported number of rounds"},
|
{ERR_REASON(EVP_R_UNSUPORTED_NUMBER_OF_ROUNDS),"unsuported number of rounds"},
|
||||||
{ERR_REASON(EVP_R_UNSUPPORTED_ALGORITHM) ,"unsupported algorithm"},
|
{ERR_REASON(EVP_R_UNSUPPORTED_ALGORITHM) ,"unsupported algorithm"},
|
||||||
|
@ -179,12 +179,26 @@ int EVP_PBE_CipherInit(ASN1_OBJECT *pbe_obj, const char *pass, int passlen,
|
|||||||
if (cipher_nid == -1)
|
if (cipher_nid == -1)
|
||||||
cipher = NULL;
|
cipher = NULL;
|
||||||
else
|
else
|
||||||
|
{
|
||||||
cipher = EVP_get_cipherbynid(cipher_nid);
|
cipher = EVP_get_cipherbynid(cipher_nid);
|
||||||
|
if (!cipher)
|
||||||
|
{
|
||||||
|
EVPerr(EVP_F_EVP_PBE_CIPHERINIT,EVP_R_UNKNOWN_CIPHER);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (md_nid == -1)
|
if (md_nid == -1)
|
||||||
md = NULL;
|
md = NULL;
|
||||||
else
|
else
|
||||||
|
{
|
||||||
md = EVP_get_digestbynid(md_nid);
|
md = EVP_get_digestbynid(md_nid);
|
||||||
|
if (!md)
|
||||||
|
{
|
||||||
|
EVPerr(EVP_F_EVP_PBE_CIPHERINIT,EVP_R_UNKNOWN_DIGEST);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!keygen(ctx, pass, passlen, param, cipher, md, en_de))
|
if (!keygen(ctx, pass, passlen, param, cipher, md, en_de))
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user