diff options
Diffstat (limited to 'src/lib/libcrypto/evp/p5_crpt2.c')
-rw-r--r-- | src/lib/libcrypto/evp/p5_crpt2.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/src/lib/libcrypto/evp/p5_crpt2.c b/src/lib/libcrypto/evp/p5_crpt2.c index 1d5fabc4b2..1f94e1ef88 100644 --- a/src/lib/libcrypto/evp/p5_crpt2.c +++ b/src/lib/libcrypto/evp/p5_crpt2.c | |||
@@ -194,16 +194,11 @@ int PKCS5_v2_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, | |||
194 | 194 | ||
195 | /* Now decode key derivation function */ | 195 | /* Now decode key derivation function */ |
196 | 196 | ||
197 | if(!pbe2->keyfunc->parameter || | ||
198 | (pbe2->keyfunc->parameter->type != V_ASN1_SEQUENCE)) | ||
199 | { | ||
200 | EVPerr(EVP_F_PKCS5_V2_PBE_KEYIVGEN,EVP_R_DECODE_ERROR); | ||
201 | goto err; | ||
202 | } | ||
203 | |||
204 | pbuf = pbe2->keyfunc->parameter->value.sequence->data; | 197 | pbuf = pbe2->keyfunc->parameter->value.sequence->data; |
205 | plen = pbe2->keyfunc->parameter->value.sequence->length; | 198 | plen = pbe2->keyfunc->parameter->value.sequence->length; |
206 | if(!(kdf = d2i_PBKDF2PARAM(NULL, &pbuf, plen)) ) { | 199 | if(!pbe2->keyfunc->parameter || |
200 | (pbe2->keyfunc->parameter->type != V_ASN1_SEQUENCE) || | ||
201 | !(kdf = d2i_PBKDF2PARAM(NULL, &pbuf, plen)) ) { | ||
207 | EVPerr(EVP_F_PKCS5_V2_PBE_KEYIVGEN,EVP_R_DECODE_ERROR); | 202 | EVPerr(EVP_F_PKCS5_V2_PBE_KEYIVGEN,EVP_R_DECODE_ERROR); |
208 | goto err; | 203 | goto err; |
209 | } | 204 | } |