summaryrefslogtreecommitdiff
path: root/Cryptlib/OpenSSL/crypto/evp/bio_enc.c
diff options
context:
space:
mode:
Diffstat (limited to 'Cryptlib/OpenSSL/crypto/evp/bio_enc.c')
-rw-r--r--Cryptlib/OpenSSL/crypto/evp/bio_enc.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/Cryptlib/OpenSSL/crypto/evp/bio_enc.c b/Cryptlib/OpenSSL/crypto/evp/bio_enc.c
index 4397fb19..363e0246 100644
--- a/Cryptlib/OpenSSL/crypto/evp/bio_enc.c
+++ b/Cryptlib/OpenSSL/crypto/evp/bio_enc.c
@@ -360,8 +360,10 @@ static long enc_ctrl(BIO *b, int cmd, long num, void *ptr)
case BIO_CTRL_DUP:
dbio = (BIO *)ptr;
dctx = (BIO_ENC_CTX *)dbio->ptr;
- memcpy(&(dctx->cipher), &(ctx->cipher), sizeof(ctx->cipher));
- dbio->init = 1;
+ EVP_CIPHER_CTX_init(&dctx->cipher);
+ ret = EVP_CIPHER_CTX_copy(&dctx->cipher, &ctx->cipher);
+ if (ret)
+ dbio->init = 1;
break;
default:
ret = BIO_ctrl(b->next_bio, cmd, num, ptr);