diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/libcrypto/x509/x509_trs.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/lib/libcrypto/x509/x509_trs.c b/src/lib/libcrypto/x509/x509_trs.c index 42fb97f571..5be7abdf08 100644 --- a/src/lib/libcrypto/x509/x509_trs.c +++ b/src/lib/libcrypto/x509/x509_trs.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: x509_trs.c,v 1.20 2015/02/10 11:22:21 jsing Exp $ */ | 1 | /* $OpenBSD: x509_trs.c,v 1.21 2016/11/06 10:31:34 beck Exp $ */ |
| 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
| 3 | * project 1999. | 3 | * project 1999. |
| 4 | */ | 4 | */ |
| @@ -116,6 +116,22 @@ X509_check_trust(X509 *x, int id, int flags) | |||
| 116 | 116 | ||
| 117 | if (id == -1) | 117 | if (id == -1) |
| 118 | return 1; | 118 | return 1; |
| 119 | /* | ||
| 120 | * XXX beck/jsing This enables self signed certs to be trusted for | ||
| 121 | * an unspecified id/trust flag value (this is NOT the | ||
| 122 | * X509_TRUST_DEFAULT), which was the longstanding | ||
| 123 | * openssl behaviour. boringssl does not have this behaviour. | ||
| 124 | * | ||
| 125 | * This should be revisited, but changing the default "not default" | ||
| 126 | * may break things. | ||
| 127 | */ | ||
| 128 | if (id == 0) { | ||
| 129 | int rv; | ||
| 130 | rv = obj_trust(NID_anyExtendedKeyUsage, x, 0); | ||
| 131 | if (rv != X509_TRUST_UNTRUSTED) | ||
| 132 | return rv; | ||
| 133 | return trust_compat(NULL, x, 0); | ||
| 134 | } | ||
| 119 | idx = X509_TRUST_get_by_id(id); | 135 | idx = X509_TRUST_get_by_id(id); |
| 120 | if (idx == -1) | 136 | if (idx == -1) |
| 121 | return default_trust(id, x, flags); | 137 | return default_trust(id, x, flags); |
