summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortb <>2022-05-05 19:44:23 +0000
committertb <>2022-05-05 19:44:23 +0000
commita84cfd259de5c815a6c6d613e60253d77508a3c1 (patch)
tree383c4d85c5c27a34a2a5ecbd2ad57207363cdec5 /src
parentd88b64b6acbee8143f8c2c5130bb97b9f706ea49 (diff)
downloadopenbsd-a84cfd259de5c815a6c6d613e60253d77508a3c1.tar.gz
openbsd-a84cfd259de5c815a6c6d613e60253d77508a3c1.tar.bz2
openbsd-a84cfd259de5c815a6c6d613e60253d77508a3c1.zip
Securely wipe the entire HKDF_PKEY_CTX instead of only taking care of
a piece of the embedded info array. ok jsing
Diffstat (limited to 'src')
-rw-r--r--src/lib/libcrypto/kdf/hkdf_evp.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/lib/libcrypto/kdf/hkdf_evp.c b/src/lib/libcrypto/kdf/hkdf_evp.c
index a819e38081..b334c4a32d 100644
--- a/src/lib/libcrypto/kdf/hkdf_evp.c
+++ b/src/lib/libcrypto/kdf/hkdf_evp.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: hkdf_evp.c,v 1.15 2022/05/05 11:26:36 tb Exp $ */ 1/* $OpenBSD: hkdf_evp.c,v 1.16 2022/05/05 19:44:23 tb Exp $ */
2/* ==================================================================== 2/* ====================================================================
3 * Copyright (c) 2016-2018 The OpenSSL Project. All rights reserved. 3 * Copyright (c) 2016-2018 The OpenSSL Project. All rights reserved.
4 * 4 *
@@ -93,8 +93,7 @@ pkey_hkdf_cleanup(EVP_PKEY_CTX *ctx)
93 93
94 freezero(kctx->salt, kctx->salt_len); 94 freezero(kctx->salt, kctx->salt_len);
95 freezero(kctx->key, kctx->key_len); 95 freezero(kctx->key, kctx->key_len);
96 explicit_bzero(kctx->info, kctx->info_len); 96 freezero(kctx, sizeof(*kctx));
97 free(kctx);
98} 97}
99 98
100static int 99static int
@@ -219,8 +218,7 @@ pkey_hkdf_derive_init(EVP_PKEY_CTX *ctx)
219 218
220 freezero(kctx->key, kctx->key_len); 219 freezero(kctx->key, kctx->key_len);
221 freezero(kctx->salt, kctx->salt_len); 220 freezero(kctx->salt, kctx->salt_len);
222 explicit_bzero(kctx->info, kctx->info_len); 221 explicit_bzero(kctx, sizeof(*kctx));
223 memset(kctx, 0, sizeof(*kctx));
224 222
225 return 1; 223 return 1;
226} 224}