diff options
| author | tb <> | 2022-06-29 21:19:21 +0000 |
|---|---|---|
| committer | tb <> | 2022-06-29 21:19:21 +0000 |
| commit | b8676852e6322c5b1cd30810a6019ae151ee84bd (patch) | |
| tree | f7c4cea6ddea653e5d3769e5164dad4bc3fcf17c /src/lib/libssl/ssl_seclevel.c | |
| parent | d89c66a0e16376bd97ebed275b0ca1e27325abb8 (diff) | |
| download | openbsd-b8676852e6322c5b1cd30810a6019ae151ee84bd.tar.gz openbsd-b8676852e6322c5b1cd30810a6019ae151ee84bd.tar.bz2 openbsd-b8676852e6322c5b1cd30810a6019ae151ee84bd.zip | |
Don't check the signature if a cert is self signed.
ok beck jsing
Diffstat (limited to 'src/lib/libssl/ssl_seclevel.c')
| -rw-r--r-- | src/lib/libssl/ssl_seclevel.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/lib/libssl/ssl_seclevel.c b/src/lib/libssl/ssl_seclevel.c index b24999498c..4bcbcbf36c 100644 --- a/src/lib/libssl/ssl_seclevel.c +++ b/src/lib/libssl/ssl_seclevel.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ssl_seclevel.c,v 1.9 2022/06/29 21:10:20 tb Exp $ */ | 1 | /* $OpenBSD: ssl_seclevel.c,v 1.10 2022/06/29 21:19:21 tb Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2020 Theo Buehler <tb@openbsd.org> | 3 | * Copyright (c) 2020 Theo Buehler <tb@openbsd.org> |
| 4 | * | 4 | * |
| @@ -26,6 +26,7 @@ | |||
| 26 | #include <openssl/ssl.h> | 26 | #include <openssl/ssl.h> |
| 27 | #include <openssl/tls1.h> | 27 | #include <openssl/tls1.h> |
| 28 | #include <openssl/x509.h> | 28 | #include <openssl/x509.h> |
| 29 | #include <openssl/x509v3.h> | ||
| 29 | 30 | ||
| 30 | #include "ssl_locl.h" | 31 | #include "ssl_locl.h" |
| 31 | 32 | ||
| @@ -284,7 +285,7 @@ ssl_security_cert_key(const SSL_CTX *ctx, const SSL *ssl, X509 *x509, int op) | |||
| 284 | } | 285 | } |
| 285 | 286 | ||
| 286 | static int | 287 | static int |
| 287 | ssl_cert_signature_md_nid(const X509 *x509) | 288 | ssl_cert_signature_md_nid(X509 *x509) |
| 288 | { | 289 | { |
| 289 | int md_nid, signature_nid; | 290 | int md_nid, signature_nid; |
| 290 | 291 | ||
| @@ -317,6 +318,10 @@ ssl_security_cert_sig(const SSL_CTX *ctx, const SSL *ssl, X509 *x509, int op) | |||
| 317 | { | 318 | { |
| 318 | int md_nid, security_bits; | 319 | int md_nid, security_bits; |
| 319 | 320 | ||
| 321 | /* Don't check signature if self signed. */ | ||
| 322 | if ((X509_get_extension_flags(x509) & EXFLAG_SS) != 0) | ||
| 323 | return 1; | ||
| 324 | |||
| 320 | md_nid = ssl_cert_signature_md_nid(x509); | 325 | md_nid = ssl_cert_signature_md_nid(x509); |
| 321 | security_bits = ssl_cert_md_nid_security_bits(md_nid); | 326 | security_bits = ssl_cert_md_nid_security_bits(md_nid); |
| 322 | 327 | ||
