summaryrefslogtreecommitdiff
path: root/src/lib/libssl/ssl_sigalgs.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libssl/ssl_sigalgs.c')
-rw-r--r--src/lib/libssl/ssl_sigalgs.c21
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};
175const size_t tls12_sigalgs_len = (sizeof(tls12_sigalgs) / sizeof(tls12_sigalgs[0])); 175const size_t tls12_sigalgs_len = (sizeof(tls12_sigalgs) / sizeof(tls12_sigalgs[0]));
176 176
177static void
178ssl_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
177const struct ssl_sigalg * 190const struct ssl_sigalg *
178ssl_sigalg_lookup(uint16_t sigalg) 191ssl_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
203int 216int
204ssl_sigalgs_build(CBB *cbb, const uint16_t *values, size_t len) 217ssl_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. */