Support for policy mappings extension.
[openssl.git] / crypto / x509v3 / v3_purp.c
index caf80e6d3f971390fb92f3f1fe2891d6715da710..bdf72227e583af60a7e67303b4652b8e55755b97 100644 (file)
@@ -295,6 +295,8 @@ int X509_supported_extension(X509_EXTENSION *ex)
 #endif
                NID_policy_constraints, /* 401 */
                NID_proxyCertInfo,      /* 663 */
+               NID_name_constraints,   /* 666 */
+               NID_policy_mappings,    /* 747 */
                NID_inhibit_any_policy  /* 748 */
        };
 
@@ -448,6 +450,10 @@ static void x509v3_cache_extensions(X509 *x)
        }
        x->skid =X509_get_ext_d2i(x, NID_subject_key_identifier, NULL, NULL);
        x->akid =X509_get_ext_d2i(x, NID_authority_key_identifier, NULL, NULL);
+       x->altname = X509_get_ext_d2i(x, NID_subject_alt_name, NULL, NULL);
+       x->nc = X509_get_ext_d2i(x, NID_name_constraints, &i, NULL);
+       if (!x->nc && (i != -1))
+               x->ex_flags |= EXFLAG_INVALID;
        setup_crldp(x);