diff options
Diffstat (limited to 'src/lib/libssl/ssl_sigalgs.c')
-rw-r--r-- | src/lib/libssl/ssl_sigalgs.c | 15 |
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) | |||
209 | int | 215 | int |
210 | ssl_sigalgs_build(CBB *cbb, uint16_t *values, size_t len) | 216 | ssl_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 |