diff options
Diffstat (limited to 'src/lib/libssl/ssl_sigalgs.c')
-rw-r--r-- | src/lib/libssl/ssl_sigalgs.c | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/lib/libssl/ssl_sigalgs.c b/src/lib/libssl/ssl_sigalgs.c index d3ac3d969d..590932bdf6 100644 --- a/src/lib/libssl/ssl_sigalgs.c +++ b/src/lib/libssl/ssl_sigalgs.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_sigalgs.c,v 1.26 2021/06/27 17:50:06 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_sigalgs.c,v 1.27 2021/06/27 17:59:17 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2018-2020 Bob Beck <beck@openbsd.org> | 3 | * Copyright (c) 2018-2020 Bob Beck <beck@openbsd.org> |
4 | * | 4 | * |
@@ -174,6 +174,19 @@ const uint16_t tls12_sigalgs[] = { | |||
174 | }; | 174 | }; |
175 | const size_t tls12_sigalgs_len = (sizeof(tls12_sigalgs) / sizeof(tls12_sigalgs[0])); | 175 | const size_t tls12_sigalgs_len = (sizeof(tls12_sigalgs) / sizeof(tls12_sigalgs[0])); |
176 | 176 | ||
177 | static void | ||
178 | ssl_sigalgs_for_version(uint16_t tls_version, const uint16_t **out_values, | ||
179 | size_t *out_len) | ||
180 | { | ||
181 | if (tls_version >= TLS1_3_VERSION) { | ||
182 | *out_values = tls13_sigalgs; | ||
183 | *out_len = tls13_sigalgs_len; | ||
184 | } else { | ||
185 | *out_values = tls12_sigalgs; | ||
186 | *out_len = tls12_sigalgs_len; | ||
187 | } | ||
188 | } | ||
189 | |||
177 | const struct ssl_sigalg * | 190 | const struct ssl_sigalg * |
178 | ssl_sigalg_lookup(uint16_t sigalg) | 191 | ssl_sigalg_lookup(uint16_t sigalg) |
179 | { | 192 | { |
@@ -201,10 +214,14 @@ ssl_sigalg(uint16_t sigalg, const uint16_t *values, size_t len) | |||
201 | } | 214 | } |
202 | 215 | ||
203 | int | 216 | int |
204 | ssl_sigalgs_build(CBB *cbb, const uint16_t *values, size_t len) | 217 | ssl_sigalgs_build(uint16_t tls_version, CBB *cbb) |
205 | { | 218 | { |
219 | const uint16_t *values; | ||
220 | size_t len; | ||
206 | size_t i; | 221 | size_t i; |
207 | 222 | ||
223 | ssl_sigalgs_for_version(tls_version, &values, &len); | ||
224 | |||
208 | /* Add values in order as long as they are supported. */ | 225 | /* Add values in order as long as they are supported. */ |
209 | for (i = 0; i < len; i++) { | 226 | for (i = 0; i < len; i++) { |
210 | /* Do not allow the legacy value for < 1.2 to be used. */ | 227 | /* Do not allow the legacy value for < 1.2 to be used. */ |