summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libssl/tls13_key_schedule.c58
1 files changed, 29 insertions, 29 deletions
diff --git a/src/lib/libssl/tls13_key_schedule.c b/src/lib/libssl/tls13_key_schedule.c
index ab8e99a293..bce87a7ea9 100644
--- a/src/lib/libssl/tls13_key_schedule.c
+++ b/src/lib/libssl/tls13_key_schedule.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: tls13_key_schedule.c,v 1.11 2021/01/05 17:43:13 tb Exp $ */ 1/* $OpenBSD: tls13_key_schedule.c,v 1.12 2021/01/05 17:45:32 tb Exp $ */
2/* Copyright (c) 2018, Bob Beck <beck@openbsd.org> 2/* Copyright (c) 2018, Bob Beck <beck@openbsd.org>
3 * 3 *
4 * Permission to use, copy, modify, and/or distribute this software for any 4 * Permission to use, copy, modify, and/or distribute this software for any
@@ -47,34 +47,6 @@ tls13_secret_cleanup(struct tls13_secret *secret)
47 secret->len = 0; 47 secret->len = 0;
48} 48}
49 49
50void
51tls13_secrets_destroy(struct tls13_secrets *secrets)
52{
53 if (secrets == NULL)
54 return;
55
56 /* you can never be too sure :) */
57 tls13_secret_cleanup(&secrets->zeros);
58 tls13_secret_cleanup(&secrets->empty_hash);
59
60 tls13_secret_cleanup(&secrets->extracted_early);
61 tls13_secret_cleanup(&secrets->binder_key);
62 tls13_secret_cleanup(&secrets->client_early_traffic);
63 tls13_secret_cleanup(&secrets->early_exporter_master);
64 tls13_secret_cleanup(&secrets->derived_early);
65 tls13_secret_cleanup(&secrets->extracted_handshake);
66 tls13_secret_cleanup(&secrets->client_handshake_traffic);
67 tls13_secret_cleanup(&secrets->server_handshake_traffic);
68 tls13_secret_cleanup(&secrets->derived_handshake);
69 tls13_secret_cleanup(&secrets->extracted_master);
70 tls13_secret_cleanup(&secrets->client_application_traffic);
71 tls13_secret_cleanup(&secrets->server_application_traffic);
72 tls13_secret_cleanup(&secrets->exporter_master);
73 tls13_secret_cleanup(&secrets->resumption_master);
74
75 freezero(secrets, sizeof(struct tls13_secrets));
76}
77
78/* 50/*
79 * Allocate a set of secrets for a key schedule using 51 * Allocate a set of secrets for a key schedule using
80 * a size of hash_length from RFC 8446 section 7.1. 52 * a size of hash_length from RFC 8446 section 7.1.
@@ -157,6 +129,34 @@ tls13_secrets_create(const EVP_MD *digest, int resumption)
157 return NULL; 129 return NULL;
158} 130}
159 131
132void
133tls13_secrets_destroy(struct tls13_secrets *secrets)
134{
135 if (secrets == NULL)
136 return;
137
138 /* you can never be too sure :) */
139 tls13_secret_cleanup(&secrets->zeros);
140 tls13_secret_cleanup(&secrets->empty_hash);
141
142 tls13_secret_cleanup(&secrets->extracted_early);
143 tls13_secret_cleanup(&secrets->binder_key);
144 tls13_secret_cleanup(&secrets->client_early_traffic);
145 tls13_secret_cleanup(&secrets->early_exporter_master);
146 tls13_secret_cleanup(&secrets->derived_early);
147 tls13_secret_cleanup(&secrets->extracted_handshake);
148 tls13_secret_cleanup(&secrets->client_handshake_traffic);
149 tls13_secret_cleanup(&secrets->server_handshake_traffic);
150 tls13_secret_cleanup(&secrets->derived_handshake);
151 tls13_secret_cleanup(&secrets->extracted_master);
152 tls13_secret_cleanup(&secrets->client_application_traffic);
153 tls13_secret_cleanup(&secrets->server_application_traffic);
154 tls13_secret_cleanup(&secrets->exporter_master);
155 tls13_secret_cleanup(&secrets->resumption_master);
156
157 freezero(secrets, sizeof(struct tls13_secrets));
158}
159
160int 160int
161tls13_hkdf_expand_label(struct tls13_secret *out, const EVP_MD *digest, 161tls13_hkdf_expand_label(struct tls13_secret *out, const EVP_MD *digest,
162 const struct tls13_secret *secret, const char *label, 162 const struct tls13_secret *secret, const char *label,