diff options
author | beck <> | 2018-11-16 02:41:16 +0000 |
---|---|---|
committer | beck <> | 2018-11-16 02:41:16 +0000 |
commit | bc7f7090db96e35bfcf73da923be89cb0b15c0e9 (patch) | |
tree | 81fc6ce79f085ec2150e52ecdda69a90efe41c22 /src/lib/libssl/ssl_sigalgs.c | |
parent | b48e8a19a37f8c20a0c41e40ccd93d4e06600fb8 (diff) | |
download | openbsd-bc7f7090db96e35bfcf73da923be89cb0b15c0e9.tar.gz openbsd-bc7f7090db96e35bfcf73da923be89cb0b15c0e9.tar.bz2 openbsd-bc7f7090db96e35bfcf73da923be89cb0b15c0e9.zip |
Unbreak legacy ciphers for prior to 1.1 by setting having a legacy
sigalg for MD5_SHA1 and using it as the non sigalgs default
ok jsing@
Diffstat (limited to '')
-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 |