summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authortb <>2021-01-05 17:43:13 +0000
committertb <>2021-01-05 17:43:13 +0000
commitf7ec618da8117e2d489c8bfb902b09fc285095b5 (patch)
tree75af54ab7faa3bb7c079ae32d6a1203366015516 /src/lib
parenteb9d67981acc2795da64ed1850dcf071a7082a28 (diff)
downloadopenbsd-f7ec618da8117e2d489c8bfb902b09fc285095b5.tar.gz
openbsd-f7ec618da8117e2d489c8bfb902b09fc285095b5.tar.bz2
openbsd-f7ec618da8117e2d489c8bfb902b09fc285095b5.zip
Convert tls13_secrets_{create,destroy}() to tls13_secret_{init,cleanup}()
ok jsing
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libssl/tls13_key_schedule.c105
1 files changed, 34 insertions, 71 deletions
diff --git a/src/lib/libssl/tls13_key_schedule.c b/src/lib/libssl/tls13_key_schedule.c
index bf8699dc31..ab8e99a293 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.10 2021/01/05 17:40:11 tb Exp $ */ 1/* $OpenBSD: tls13_key_schedule.c,v 1.11 2021/01/05 17:43:13 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
@@ -54,37 +54,23 @@ tls13_secrets_destroy(struct tls13_secrets *secrets)
54 return; 54 return;
55 55
56 /* you can never be too sure :) */ 56 /* you can never be too sure :) */
57 freezero(secrets->zeros.data, secrets->zeros.len); 57 tls13_secret_cleanup(&secrets->zeros);
58 freezero(secrets->empty_hash.data, secrets->empty_hash.len); 58 tls13_secret_cleanup(&secrets->empty_hash);
59 59
60 freezero(secrets->extracted_early.data, 60 tls13_secret_cleanup(&secrets->extracted_early);
61 secrets->extracted_early.len); 61 tls13_secret_cleanup(&secrets->binder_key);
62 freezero(secrets->binder_key.data, 62 tls13_secret_cleanup(&secrets->client_early_traffic);
63 secrets->binder_key.len); 63 tls13_secret_cleanup(&secrets->early_exporter_master);
64 freezero(secrets->client_early_traffic.data, 64 tls13_secret_cleanup(&secrets->derived_early);
65 secrets->client_early_traffic.len); 65 tls13_secret_cleanup(&secrets->extracted_handshake);
66 freezero(secrets->early_exporter_master.data, 66 tls13_secret_cleanup(&secrets->client_handshake_traffic);
67 secrets->early_exporter_master.len); 67 tls13_secret_cleanup(&secrets->server_handshake_traffic);
68 freezero(secrets->derived_early.data, 68 tls13_secret_cleanup(&secrets->derived_handshake);
69 secrets->derived_early.len); 69 tls13_secret_cleanup(&secrets->extracted_master);
70 freezero(secrets->extracted_handshake.data, 70 tls13_secret_cleanup(&secrets->client_application_traffic);
71 secrets->extracted_handshake.len); 71 tls13_secret_cleanup(&secrets->server_application_traffic);
72 freezero(secrets->client_handshake_traffic.data, 72 tls13_secret_cleanup(&secrets->exporter_master);
73 secrets->client_handshake_traffic.len); 73 tls13_secret_cleanup(&secrets->resumption_master);
74 freezero(secrets->server_handshake_traffic.data,
75 secrets->server_handshake_traffic.len);
76 freezero(secrets->derived_handshake.data,
77 secrets->derived_handshake.len);
78 freezero(secrets->extracted_master.data,
79 secrets->extracted_master.len);
80 freezero(secrets->client_application_traffic.data,
81 secrets->client_application_traffic.len);
82 freezero(secrets->server_application_traffic.data,
83 secrets->server_application_traffic.len);
84 freezero(secrets->exporter_master.data,
85 secrets->exporter_master.len);
86 freezero(secrets->resumption_master.data,
87 secrets->resumption_master.len);
88 74
89 freezero(secrets, sizeof(struct tls13_secrets)); 75 freezero(secrets, sizeof(struct tls13_secrets));
90} 76}
@@ -106,62 +92,39 @@ tls13_secrets_create(const EVP_MD *digest, int resumption)
106 if ((secrets = calloc(1, sizeof(struct tls13_secrets))) == NULL) 92 if ((secrets = calloc(1, sizeof(struct tls13_secrets))) == NULL)
107 goto err; 93 goto err;
108 94
109 if ((secrets->zeros.data = calloc(hash_length, sizeof(uint8_t))) == 95 if (!tls13_secret_init(&secrets->zeros, hash_length))
110 NULL)
111 goto err; 96 goto err;
112 secrets->zeros.len = hash_length; 97 if (!tls13_secret_init(&secrets->empty_hash, hash_length))
113
114 if ((secrets->empty_hash.data = malloc(hash_length)) == NULL)
115 goto err; 98 goto err;
116 secrets->empty_hash.len = hash_length;
117 99
118 if ((secrets->extracted_early.data = malloc(hash_length)) == NULL) 100 if (!tls13_secret_init(&secrets->extracted_early, hash_length))
119 goto err; 101 goto err;
120 secrets->extracted_early.len = hash_length; 102 if (!tls13_secret_init(&secrets->binder_key, hash_length))
121 if ((secrets->binder_key.data = malloc(hash_length)) == NULL)
122 goto err; 103 goto err;
123 secrets->binder_key.len = hash_length; 104 if (!tls13_secret_init(&secrets->client_early_traffic, hash_length))
124 if ((secrets->client_early_traffic.data = malloc(hash_length)) == NULL)
125 goto err; 105 goto err;
126 secrets->client_early_traffic.len = hash_length; 106 if (!tls13_secret_init(&secrets->early_exporter_master, hash_length))
127 if ((secrets->early_exporter_master.data = malloc(hash_length)) ==
128 NULL)
129 goto err; 107 goto err;
130 secrets->early_exporter_master.len = hash_length; 108 if (!tls13_secret_init(&secrets->derived_early, hash_length))
131 if ((secrets->derived_early.data = malloc(hash_length)) == NULL)
132 goto err; 109 goto err;
133 secrets->derived_early.len = hash_length; 110 if (!tls13_secret_init(&secrets->extracted_handshake, hash_length))
134 if ((secrets->extracted_handshake.data = malloc(hash_length)) == NULL)
135 goto err; 111 goto err;
136 secrets->extracted_handshake.len = hash_length; 112 if (!tls13_secret_init(&secrets->client_handshake_traffic, hash_length))
137 if ((secrets->client_handshake_traffic.data = malloc(hash_length))
138 == NULL)
139 goto err; 113 goto err;
140 secrets->client_handshake_traffic.len = hash_length; 114 if (!tls13_secret_init(&secrets->server_handshake_traffic, hash_length))
141 if ((secrets->server_handshake_traffic.data = malloc(hash_length))
142 == NULL)
143 goto err; 115 goto err;
144 secrets->server_handshake_traffic.len = hash_length; 116 if (!tls13_secret_init(&secrets->derived_handshake, hash_length))
145 if ((secrets->derived_handshake.data = malloc(hash_length)) == NULL)
146 goto err; 117 goto err;
147 secrets->derived_handshake.len = hash_length; 118 if (!tls13_secret_init(&secrets->extracted_master, hash_length))
148 if ((secrets->extracted_master.data = malloc(hash_length)) == NULL)
149 goto err; 119 goto err;
150 secrets->extracted_master.len = hash_length; 120 if (!tls13_secret_init(&secrets->client_application_traffic, hash_length))
151 if ((secrets->client_application_traffic.data = malloc(hash_length)) ==
152 NULL)
153 goto err; 121 goto err;
154 secrets->client_application_traffic.len = hash_length; 122 if (!tls13_secret_init(&secrets->server_application_traffic, hash_length))
155 if ((secrets->server_application_traffic.data = malloc(hash_length)) ==
156 NULL)
157 goto err; 123 goto err;
158 secrets->server_application_traffic.len = hash_length; 124 if (!tls13_secret_init(&secrets->exporter_master, hash_length))
159 if ((secrets->exporter_master.data = malloc(hash_length)) == NULL)
160 goto err; 125 goto err;
161 secrets->exporter_master.len = hash_length; 126 if (!tls13_secret_init(&secrets->resumption_master, hash_length))
162 if ((secrets->resumption_master.data = malloc(hash_length)) == NULL)
163 goto err; 127 goto err;
164 secrets->resumption_master.len = hash_length;
165 128
166 /* 129 /*
167 * Calculate the hash of a zero-length string - this is needed during 130 * Calculate the hash of a zero-length string - this is needed during