Only reset the ctx when a cipher is given This restores the 1.0.2 behaviour Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Benjamin Kaduk <bkaduk@akamai.com> GH: #4613
diff --git a/crypto/evp/evp_enc.c b/crypto/evp/evp_enc.c index d353084..f89cff6 100644 --- a/crypto/evp/evp_enc.c +++ b/crypto/evp/evp_enc.c
@@ -50,7 +50,8 @@ int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, const unsigned char *key, const unsigned char *iv, int enc) { - EVP_CIPHER_CTX_reset(ctx); + if (cipher != NULL) + EVP_CIPHER_CTX_reset(ctx); return EVP_CipherInit_ex(ctx, cipher, NULL, key, iv, enc); }