diff options
Diffstat (limited to 'Cryptlib/OpenSSL/crypto/evp/bio_enc.c')
| -rw-r--r-- | Cryptlib/OpenSSL/crypto/evp/bio_enc.c | 6 |
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); |
