diff options
Diffstat (limited to 'src/lib/libcrypto/x509/x509_purp.c')
-rw-r--r-- | src/lib/libcrypto/x509/x509_purp.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/lib/libcrypto/x509/x509_purp.c b/src/lib/libcrypto/x509/x509_purp.c index aff9f607bc..3f0081fe40 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.5 2021/07/23 20:40:49 schwarze Exp $ */ | 1 | /* $OpenBSD: x509_purp.c,v 1.6 2021/09/02 12:41:44 job 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 | */ |
@@ -366,6 +366,10 @@ X509_supported_extension(X509_EXTENSION *ex) | |||
366 | NID_basic_constraints, /* 87 */ | 366 | NID_basic_constraints, /* 87 */ |
367 | NID_certificate_policies, /* 89 */ | 367 | NID_certificate_policies, /* 89 */ |
368 | NID_ext_key_usage, /* 126 */ | 368 | NID_ext_key_usage, /* 126 */ |
369 | #ifndef OPENSSL_NO_RFC3779 | ||
370 | NID_sbgp_ipAddrBlock, /* 290 */ | ||
371 | NID_sbgp_autonomousSysNum, /* 291 */ | ||
372 | #endif | ||
369 | NID_policy_constraints, /* 401 */ | 373 | NID_policy_constraints, /* 401 */ |
370 | NID_proxyCertInfo, /* 663 */ | 374 | NID_proxyCertInfo, /* 663 */ |
371 | NID_name_constraints, /* 666 */ | 375 | NID_name_constraints, /* 666 */ |
@@ -587,6 +591,15 @@ x509v3_cache_extensions(X509 *x) | |||
587 | x->ex_flags |= EXFLAG_INVALID; | 591 | x->ex_flags |= EXFLAG_INVALID; |
588 | setup_crldp(x); | 592 | setup_crldp(x); |
589 | 593 | ||
594 | #ifndef OPENSSL_NO_RFC3779 | ||
595 | x->rfc3779_addr = X509_get_ext_d2i(x, NID_sbgp_ipAddrBlock, &i, NULL); | ||
596 | if (x->rfc3779_addr == NULL && i != -1) | ||
597 | x->ex_flags |= EXFLAG_INVALID; | ||
598 | x->rfc3779_asid = X509_get_ext_d2i(x, NID_sbgp_autonomousSysNum, &i, NULL); | ||
599 | if (x->rfc3779_asid == NULL && i != -1) | ||
600 | x->ex_flags |= EXFLAG_INVALID; | ||
601 | #endif | ||
602 | |||
590 | for (i = 0; i < X509_get_ext_count(x); i++) { | 603 | for (i = 0; i < X509_get_ext_count(x); i++) { |
591 | ex = X509_get_ext(x, i); | 604 | ex = X509_get_ext(x, i); |
592 | if (OBJ_obj2nid(X509_EXTENSION_get_object(ex)) == | 605 | if (OBJ_obj2nid(X509_EXTENSION_get_object(ex)) == |