diff options
-rw-r--r-- | src/lib/libcrypto/kdf/tls1_prf.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/lib/libcrypto/kdf/tls1_prf.c b/src/lib/libcrypto/kdf/tls1_prf.c index ad5275df60..a0979b4c72 100644 --- a/src/lib/libcrypto/kdf/tls1_prf.c +++ b/src/lib/libcrypto/kdf/tls1_prf.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: tls1_prf.c,v 1.21 2024/07/09 16:52:34 tb Exp $ */ | 1 | /* $OpenBSD: tls1_prf.c,v 1.22 2024/07/09 16:53:33 tb Exp $ */ |
2 | /* | 2 | /* |
3 | * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL project | 3 | * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL project |
4 | * 2016. | 4 | * 2016. |
@@ -100,6 +100,7 @@ static void | |||
100 | pkey_tls1_prf_cleanup(EVP_PKEY_CTX *ctx) | 100 | pkey_tls1_prf_cleanup(EVP_PKEY_CTX *ctx) |
101 | { | 101 | { |
102 | struct tls1_prf_ctx *kctx = ctx->data; | 102 | struct tls1_prf_ctx *kctx = ctx->data; |
103 | |||
103 | freezero(kctx->secret, kctx->secret_len); | 104 | freezero(kctx->secret, kctx->secret_len); |
104 | explicit_bzero(kctx->seed, kctx->seed_len); | 105 | explicit_bzero(kctx->seed, kctx->seed_len); |
105 | free(kctx); | 106 | free(kctx); |
@@ -109,6 +110,7 @@ static int | |||
109 | pkey_tls1_prf_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2) | 110 | pkey_tls1_prf_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2) |
110 | { | 111 | { |
111 | struct tls1_prf_ctx *kctx = ctx->data; | 112 | struct tls1_prf_ctx *kctx = ctx->data; |
113 | |||
112 | switch (type) { | 114 | switch (type) { |
113 | case EVP_PKEY_CTRL_TLS_MD: | 115 | case EVP_PKEY_CTRL_TLS_MD: |
114 | kctx->md = p2; | 116 | kctx->md = p2; |
@@ -191,6 +193,7 @@ pkey_tls1_prf_derive(EVP_PKEY_CTX *ctx, unsigned char *key, | |||
191 | size_t *keylen) | 193 | size_t *keylen) |
192 | { | 194 | { |
193 | struct tls1_prf_ctx *kctx = ctx->data; | 195 | struct tls1_prf_ctx *kctx = ctx->data; |
196 | |||
194 | if (kctx->md == NULL) { | 197 | if (kctx->md == NULL) { |
195 | KDFerror(KDF_R_MISSING_MESSAGE_DIGEST); | 198 | KDFerror(KDF_R_MISSING_MESSAGE_DIGEST); |
196 | return 0; | 199 | return 0; |
@@ -304,13 +307,16 @@ tls1_prf_P_hash(const EVP_MD *md, | |||
304 | break; | 307 | break; |
305 | } | 308 | } |
306 | } | 309 | } |
310 | |||
307 | ret = 1; | 311 | ret = 1; |
312 | |||
308 | err: | 313 | err: |
309 | EVP_PKEY_free(mac_key); | 314 | EVP_PKEY_free(mac_key); |
310 | EVP_MD_CTX_free(ctx); | 315 | EVP_MD_CTX_free(ctx); |
311 | EVP_MD_CTX_free(ctx_tmp); | 316 | EVP_MD_CTX_free(ctx_tmp); |
312 | EVP_MD_CTX_free(ctx_init); | 317 | EVP_MD_CTX_free(ctx_init); |
313 | explicit_bzero(A1, sizeof(A1)); | 318 | explicit_bzero(A1, sizeof(A1)); |
319 | |||
314 | return ret; | 320 | return ret; |
315 | } | 321 | } |
316 | 322 | ||