summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/x509/x509_purp.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/x509/x509_purp.c')
-rw-r--r--src/lib/libcrypto/x509/x509_purp.c15
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)) ==