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.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/lib/libssl/ssl_sigalgs.c b/src/lib/libssl/ssl_sigalgs.c
index 835c40e74e..a6b4251d70 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.10 2018/11/14 02:27:15 beck Exp $ */ 1/* $OpenBSD: ssl_sigalgs.c,v 1.11 2018/11/16 02:41:16 beck Exp $ */
2/* 2/*
3 * Copyright (c) 2018, Bob Beck <beck@openbsd.org> 3 * Copyright (c) 2018, Bob Beck <beck@openbsd.org>
4 * 4 *
@@ -153,6 +153,12 @@ const struct ssl_sigalg sigalgs[] = {
153 .pkey_idx = SSL_PKEY_ECC, 153 .pkey_idx = SSL_PKEY_ECC,
154 }, 154 },
155 { 155 {
156 .value = SIGALG_RSA_PKCS1_MD5_SHA1,
157 .key_type = EVP_PKEY_RSA,
158 .pkey_idx = SSL_PKEY_RSA_SIGN,
159 .md = EVP_md5_sha1,
160 },
161 {
156 .value = SIGALG_NONE, 162 .value = SIGALG_NONE,
157 }, 163 },
158}; 164};
@@ -209,7 +215,6 @@ ssl_sigalg(uint16_t sigalg, uint16_t *values, size_t len)
209int 215int
210ssl_sigalgs_build(CBB *cbb, uint16_t *values, size_t len) 216ssl_sigalgs_build(CBB *cbb, uint16_t *values, size_t len)
211{ 217{
212 const struct ssl_sigalg *sap;
213 size_t i; 218 size_t i;
214 219
215 for (i = 0; sigalgs[i].value != SIGALG_NONE; i++); 220 for (i = 0; sigalgs[i].value != SIGALG_NONE; i++);
@@ -220,7 +225,11 @@ ssl_sigalgs_build(CBB *cbb, uint16_t *values, size_t len)
220 225
221 /* Add values in order as long as they are supported. */ 226 /* Add values in order as long as they are supported. */
222 for (i = 0; i < len; i++) { 227 for (i = 0; i < len; i++) {
223 if ((sap = ssl_sigalg_lookup(values[i])) != NULL) { 228 /* Do not allow the legacy value for < 1.2 to be used */
229 if (values[i] == SIGALG_RSA_PKCS1_MD5_SHA1)
230 return 0;
231
232 if (ssl_sigalg_lookup(values[i]) != NULL) {
224 if (!CBB_add_u16(cbb, values[i])) 233 if (!CBB_add_u16(cbb, values[i]))
225 return 0; 234 return 0;
226 } else 235 } else