diff options
-rw-r--r-- | src/lib/libcrypto/evp/e_aes.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/lib/libcrypto/evp/e_aes.c b/src/lib/libcrypto/evp/e_aes.c index a1e94c8ff6..8fddeaaa40 100644 --- a/src/lib/libcrypto/evp/e_aes.c +++ b/src/lib/libcrypto/evp/e_aes.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: e_aes.c,v 1.38 2019/05/10 18:41:17 tb Exp $ */ | 1 | /* $OpenBSD: e_aes.c,v 1.39 2019/05/12 15:52:46 tb Exp $ */ |
2 | /* ==================================================================== | 2 | /* ==================================================================== |
3 | * Copyright (c) 2001-2011 The OpenSSL Project. All rights reserved. | 3 | * Copyright (c) 2001-2011 The OpenSSL Project. All rights reserved. |
4 | * | 4 | * |
@@ -1243,7 +1243,17 @@ aes_ccm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr) | |||
1243 | return 1; | 1243 | return 1; |
1244 | 1244 | ||
1245 | case EVP_CTRL_COPY: | 1245 | case EVP_CTRL_COPY: |
1246 | { | ||
1247 | EVP_CIPHER_CTX *out = ptr; | ||
1248 | EVP_AES_CCM_CTX *cctx_out = out->cipher_data; | ||
1249 | |||
1250 | if (cctx->ccm.key) { | ||
1251 | if (cctx->ccm.key != &cctx->ks) | ||
1252 | return 0; | ||
1253 | cctx_out->ccm.key = &cctx_out->ks; | ||
1254 | } | ||
1246 | return 1; | 1255 | return 1; |
1256 | } | ||
1247 | 1257 | ||
1248 | default: | 1258 | default: |
1249 | return -1; | 1259 | return -1; |