only cleanup ctx if we need to, save ctx flags when we do
This commit is contained in:
parent
c944a9696e
commit
8705846710
@ -125,10 +125,14 @@ int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, ENGINE *imp
|
|||||||
/* Ensure a context left lying around from last time is cleared
|
/* Ensure a context left lying around from last time is cleared
|
||||||
* (the previous check attempted to avoid this if the same
|
* (the previous check attempted to avoid this if the same
|
||||||
* ENGINE and EVP_CIPHER could be used). */
|
* ENGINE and EVP_CIPHER could be used). */
|
||||||
EVP_CIPHER_CTX_cleanup(ctx);
|
if (ctx->cipher)
|
||||||
|
{
|
||||||
/* Restore encrypt field: it is zeroed by cleanup */
|
unsigned long flags = ctx->flags;
|
||||||
ctx->encrypt = enc;
|
EVP_CIPHER_CTX_cleanup(ctx);
|
||||||
|
/* Restore encrypt and flags */
|
||||||
|
ctx->encrypt = enc;
|
||||||
|
ctx->flags = flags;
|
||||||
|
}
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
if(impl)
|
if(impl)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user