diff options
author | tb <> | 2023-04-16 08:06:42 +0000 |
---|---|---|
committer | tb <> | 2023-04-16 08:06:42 +0000 |
commit | af5673b318b3bb1548e40342abba68903d680131 (patch) | |
tree | da5366d0ec0a73467af45e2bb10f95ba049a341a /src/lib/libcrypto/x509/x509_purp.c | |
parent | 699a40dcab913cc71bfe12a9d96aabcdd691c77a (diff) | |
download | openbsd-af5673b318b3bb1548e40342abba68903d680131.tar.gz openbsd-af5673b318b3bb1548e40342abba68903d680131.tar.bz2 openbsd-af5673b318b3bb1548e40342abba68903d680131.zip |
More ProxyCertInfo tentacles go to the attic
This removes ProxyCertInfo from extension caching, issuer checking
and it also drops the special path validation for proxy certs from
the legacy verifier.
ok jsing
Diffstat (limited to 'src/lib/libcrypto/x509/x509_purp.c')
-rw-r--r-- | src/lib/libcrypto/x509/x509_purp.c | 33 |
1 files changed, 2 insertions, 31 deletions
diff --git a/src/lib/libcrypto/x509/x509_purp.c b/src/lib/libcrypto/x509/x509_purp.c index 176d9d679f..621f6f0f90 100644 --- a/src/lib/libcrypto/x509/x509_purp.c +++ b/src/lib/libcrypto/x509/x509_purp.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: x509_purp.c,v 1.21 2023/02/16 10:18:59 tb Exp $ */ | 1 | /* $OpenBSD: x509_purp.c,v 1.22 2023/04/16 08:06:42 tb 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 2001. | 3 | * project 2001. |
4 | */ | 4 | */ |
@@ -380,7 +380,6 @@ X509_supported_extension(X509_EXTENSION *ex) | |||
380 | NID_sbgp_autonomousSysNum, /* 291 */ | 380 | NID_sbgp_autonomousSysNum, /* 291 */ |
381 | #endif | 381 | #endif |
382 | NID_policy_constraints, /* 401 */ | 382 | NID_policy_constraints, /* 401 */ |
383 | NID_proxyCertInfo, /* 663 */ | ||
384 | NID_name_constraints, /* 666 */ | 383 | NID_name_constraints, /* 666 */ |
385 | NID_policy_mappings, /* 747 */ | 384 | NID_policy_mappings, /* 747 */ |
386 | NID_inhibit_any_policy /* 748 */ | 385 | NID_inhibit_any_policy /* 748 */ |
@@ -446,7 +445,6 @@ static void | |||
446 | x509v3_cache_extensions_internal(X509 *x) | 445 | x509v3_cache_extensions_internal(X509 *x) |
447 | { | 446 | { |
448 | BASIC_CONSTRAINTS *bs; | 447 | BASIC_CONSTRAINTS *bs; |
449 | PROXY_CERT_INFO_EXTENSION *pci; | ||
450 | ASN1_BIT_STRING *usage; | 448 | ASN1_BIT_STRING *usage; |
451 | ASN1_BIT_STRING *ns; | 449 | ASN1_BIT_STRING *ns; |
452 | EXTENDED_KEY_USAGE *extusage; | 450 | EXTENDED_KEY_USAGE *extusage; |
@@ -481,30 +479,6 @@ x509v3_cache_extensions_internal(X509 *x) | |||
481 | x->ex_flags |= EXFLAG_INVALID; | 479 | x->ex_flags |= EXFLAG_INVALID; |
482 | } | 480 | } |
483 | 481 | ||
484 | /* Handle proxy certificates */ | ||
485 | if ((pci = X509_get_ext_d2i(x, NID_proxyCertInfo, &i, NULL))) { | ||
486 | if (x->ex_flags & EXFLAG_CA || | ||
487 | X509_get_ext_by_NID(x, NID_subject_alt_name, -1) >= 0 || | ||
488 | X509_get_ext_by_NID(x, NID_issuer_alt_name, -1) >= 0) { | ||
489 | x->ex_flags |= EXFLAG_INVALID; | ||
490 | } | ||
491 | if (pci->pcPathLengthConstraint) { | ||
492 | if (pci->pcPathLengthConstraint->type == | ||
493 | V_ASN1_NEG_INTEGER) { | ||
494 | x->ex_flags |= EXFLAG_INVALID; | ||
495 | x->ex_pcpathlen = 0; | ||
496 | } else | ||
497 | x->ex_pcpathlen = | ||
498 | ASN1_INTEGER_get(pci-> | ||
499 | pcPathLengthConstraint); | ||
500 | } else | ||
501 | x->ex_pcpathlen = -1; | ||
502 | PROXY_CERT_INFO_EXTENSION_free(pci); | ||
503 | x->ex_flags |= EXFLAG_PROXY; | ||
504 | } else if (i != -1) { | ||
505 | x->ex_flags |= EXFLAG_INVALID; | ||
506 | } | ||
507 | |||
508 | /* Handle key usage */ | 482 | /* Handle key usage */ |
509 | if ((usage = X509_get_ext_d2i(x, NID_key_usage, &i, NULL))) { | 483 | if ((usage = X509_get_ext_d2i(x, NID_key_usage, &i, NULL))) { |
510 | if (usage->length > 0) { | 484 | if (usage->length > 0) { |
@@ -908,10 +882,7 @@ X509_check_issued(X509 *issuer, X509 *subject) | |||
908 | return ret; | 882 | return ret; |
909 | } | 883 | } |
910 | 884 | ||
911 | if (subject->ex_flags & EXFLAG_PROXY) { | 885 | if (ku_reject(issuer, KU_KEY_CERT_SIGN)) |
912 | if (ku_reject(issuer, KU_DIGITAL_SIGNATURE)) | ||
913 | return X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE; | ||
914 | } else if (ku_reject(issuer, KU_KEY_CERT_SIGN)) | ||
915 | return X509_V_ERR_KEYUSAGE_NO_CERTSIGN; | 886 | return X509_V_ERR_KEYUSAGE_NO_CERTSIGN; |
916 | return X509_V_OK; | 887 | return X509_V_OK; |
917 | } | 888 | } |