bug 1042889 - test certificate overrides for untrusted x509v1 certificates used as CAs r=mmc
authorDavid Keeler <dkeeler@mozilla.com>
Wed, 15 Oct 2014 10:42:13 -0700
changeset 210633 fc4dc550b3f06e5f01c408cbf5d4b3166e8e5d45
parent 210632 3127d128a14d089a73ad641b77ef654688b8442a
child 210634 87192f7f577471cbe8a00f9bc1d9fcca68f69177
push id1
push userroot
push dateMon, 20 Oct 2014 17:29:22 +0000
reviewersmmc
bugs1042889
milestone36.0a1
bug 1042889 - test certificate overrides for untrusted x509v1 certificates used as CAs r=mmc
config/external/nss/nss.def
security/manager/ssl/tests/unit/head_psm.js
security/manager/ssl/tests/unit/test_cert_overrides.js
security/manager/ssl/tests/unit/test_cert_version.js
security/manager/ssl/tests/unit/tlsserver/cert9.db
security/manager/ssl/tests/unit/tlsserver/cmd/BadCertServer.cpp
security/manager/ssl/tests/unit/tlsserver/generate_certs.sh
security/manager/ssl/tests/unit/tlsserver/key4.db
security/manager/ssl/tests/unit/tlsserver/lib/TLSServer.cpp
security/manager/ssl/tests/unit/tlsserver/v1Cert.der
--- a/config/external/nss/nss.def
+++ b/config/external/nss/nss.def
@@ -82,16 +82,17 @@ CERT_EncodePolicyMappingExtension
 CERT_EncodeSubjectKeyID
 CERT_EncodeUserNotice
 CERT_ExtractPublicKey
 CERT_FilterCertListByCANames
 CERT_FilterCertListByUsage
 CERT_FilterCertListForUserCerts
 CERT_FindCertByDERCert
 CERT_FindCertByIssuerAndSN
+CERT_FindCertByName
 CERT_FindCertByNickname
 CERT_FindCertByNicknameOrEmailAddr
 CERT_FindCertExtension
 CERT_FindCertIssuer
 CERT_FindKeyUsageExtension
 CERT_FindUserCertByUsage
 CERT_FindUserCertsByUsage
 CERT_FinishCertificateRequestAttributes
@@ -627,16 +628,17 @@ SGN_NewContext
 SGN_Update
 SSL_AuthCertificateComplete
 SSL_AuthCertificateHook
 SSL_CipherPrefGet
 SSL_CipherPrefSet
 SSL_CipherPrefSetDefault
 SSL_ClearSessionCache
 SSL_ConfigSecureServer
+SSL_ConfigSecureServerWithCertChain
 SSL_ConfigServerSessionIDCache
 SSL_ExportKeyingMaterial
 SSL_ForceHandshake
 SSL_GetChannelInfo
 SSL_GetCipherSuiteInfo
 SSL_GetClientAuthDataHook
 SSL_GetImplementedCiphers
 SSL_GetNextProto
--- a/security/manager/ssl/tests/unit/head_psm.js
+++ b/security/manager/ssl/tests/unit/head_psm.js
@@ -59,16 +59,17 @@ const SEC_ERROR_CERT_SIGNATURE_ALGORITHM
 const SEC_ERROR_APPLICATION_CALLBACK_ERROR              = SEC_ERROR_BASE + 178;
 
 const SSL_ERROR_BAD_CERT_DOMAIN                         = SSL_ERROR_BASE +  12;
 const SSL_ERROR_BAD_CERT_ALERT                          = SSL_ERROR_BASE +  17;
 
 const MOZILLA_PKIX_ERROR_KEY_PINNING_FAILURE            = MOZILLA_PKIX_ERROR_BASE +   0;
 const MOZILLA_PKIX_ERROR_CA_CERT_USED_AS_END_ENTITY     = MOZILLA_PKIX_ERROR_BASE +   1;
 const MOZILLA_PKIX_ERROR_INADEQUATE_KEY_SIZE            = MOZILLA_PKIX_ERROR_BASE +   2; // -16382
+const MOZILLA_PKIX_ERROR_V1_CERT_USED_AS_CA             = MOZILLA_PKIX_ERROR_BASE +   3;
 
 // Supported Certificate Usages
 const certificateUsageSSLClient              = 0x0001;
 const certificateUsageSSLServer              = 0x0002;
 const certificateUsageSSLCA                  = 0x0008;
 const certificateUsageEmailSigner            = 0x0010;
 const certificateUsageEmailRecipient         = 0x0020;
 const certificateUsageObjectSigner           = 0x0040;
--- a/security/manager/ssl/tests/unit/test_cert_overrides.js
+++ b/security/manager/ssl/tests/unit/test_cert_overrides.js
@@ -57,16 +57,17 @@ function check_telemetry() {
   do_check_eq(histogram.counts[ 4], 0); // SEC_ERROR_UNTRUSTED_ISSUER
   do_check_eq(histogram.counts[ 5], 1); // SEC_ERROR_EXPIRED_ISSUER_CERTIFICATE
   do_check_eq(histogram.counts[ 6], 0); // SEC_ERROR_UNTRUSTED_CERT
   do_check_eq(histogram.counts[ 7], 0); // SEC_ERROR_INADEQUATE_KEY_USAGE
   do_check_eq(histogram.counts[ 8], 2); // SEC_ERROR_CERT_SIGNATURE_ALGORITHM_DISABLED
   do_check_eq(histogram.counts[ 9], 5); // SSL_ERROR_BAD_CERT_DOMAIN
   do_check_eq(histogram.counts[10], 5); // SEC_ERROR_EXPIRED_CERTIFICATE
   do_check_eq(histogram.counts[11], 2); // MOZILLA_PKIX_ERROR_CA_CERT_USED_AS_END_ENTITY
+  do_check_eq(histogram.counts[12], 1); // MOZILLA_PKIX_ERROR_V1_CERT_USED_AS_CA
   run_next_test();
 }
 
 function run_test() {
   add_tls_server_setup("BadCertServer");
 
   let fakeOCSPResponder = new HttpServer();
   fakeOCSPResponder.registerPrefixHandler("/", function (request, response) {
@@ -121,16 +122,38 @@ function add_simple_tests() {
   // is a scenario in which an override is allowed.
   add_cert_override_test("self-signed-end-entity-with-cA-true.example.com",
                          Ci.nsICertOverrideService.ERROR_UNTRUSTED,
                          getXPCOMStatusFromNSS(SEC_ERROR_UNKNOWN_ISSUER));
 
   add_cert_override_test("ca-used-as-end-entity.example.com",
                          Ci.nsICertOverrideService.ERROR_UNTRUSTED,
                          getXPCOMStatusFromNSS(MOZILLA_PKIX_ERROR_CA_CERT_USED_AS_END_ENTITY));
+
+  // If an X.509 version 1 certificate is not a trust anchor, we will
+  // encounter an overridable error.
+  add_cert_override_test("end-entity-issued-by-v1-cert.example.com",
+                         Ci.nsICertOverrideService.ERROR_UNTRUSTED,
+                         getXPCOMStatusFromNSS(MOZILLA_PKIX_ERROR_V1_CERT_USED_AS_CA));
+  // If we make that certificate a trust anchor, the connection will succeed.
+  add_test(function() {
+    certOverrideService.clearValidityOverride("end-entity-issued-by-v1-cert.example.com", 8443);
+    let v1Cert = constructCertFromFile("tlsserver/v1Cert.der");
+    setCertTrust(v1Cert, "CTu,,");
+    clearSessionCache();
+    run_next_test();
+  });
+  add_connection_test("end-entity-issued-by-v1-cert.example.com", Cr.NS_OK);
+  // Reset the trust for that certificate.
+  add_test(function() {
+    let v1Cert = constructCertFromFile("tlsserver/v1Cert.der");
+    setCertTrust(v1Cert, ",,");
+    clearSessionCache();
+    run_next_test();
+  });
 }
 
 function add_combo_tests() {
   add_cert_override_test("mismatch-expired.example.com",
                          Ci.nsICertOverrideService.ERROR_MISMATCH |
                          Ci.nsICertOverrideService.ERROR_TIME,
                          getXPCOMStatusFromNSS(SSL_ERROR_BAD_CERT_DOMAIN));
   add_cert_override_test("mismatch-untrusted.example.com",
--- a/security/manager/ssl/tests/unit/test_cert_version.js
+++ b/security/manager/ssl/tests/unit/test_cert_version.js
@@ -54,157 +54,143 @@ function run_test() {
 
   check_ok_ca(cert_from_file('v1_ca.der'));
   check_ok_ca(cert_from_file('v1_ca_bc.der'));
   check_ca_err(cert_from_file('v2_ca.der'), SEC_ERROR_CA_CERT_INVALID);
   check_ok_ca(cert_from_file('v2_ca_bc.der'));
   check_ok_ca(cert_from_file('v3_ca.der'));
   check_ca_err(cert_from_file('v3_ca_missing_bc.der'), SEC_ERROR_CA_CERT_INVALID);
 
-  // Classic allows v1 and v2 certs to be CA certs in trust anchor positions and
-  // intermediates when they have a v3 basic constraints extenstion (which
-  // makes them invalid certs). Insanity only allows v1 certs to be CA in
-  // anchor position (even if they have invalid encodings), v2 certs are not
-  // considered CAs in any position.
-  // Note that currently there are no change of behavior based on the
-  // version of the end entity.
-
-  let ee_error = 0;
-  let ca_error = 0;
+  // A v1 certificate may be a CA if it has a basic constraints extension with
+  // CA: TRUE or if it is a trust anchor.
 
   //////////////
   // v1 CA supersection
   //////////////////
 
   // v1 intermediate with v1 trust anchor
-  ca_error = SEC_ERROR_CA_CERT_INVALID;
-  ee_error = SEC_ERROR_CA_CERT_INVALID;
-  check_ca_err(cert_from_file('v1_int-v1_ca.der'), ca_error);
-  check_cert_err(cert_from_file('v1_ee-v1_int-v1_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v2_ee-v1_int-v1_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v3_missing_bc_ee-v1_int-v1_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v3_bc_ee-v1_int-v1_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v1_bc_ee-v1_int-v1_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v2_bc_ee-v1_int-v1_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v4_bc_ee-v1_int-v1_ca.der'), ee_error);
+  let error = MOZILLA_PKIX_ERROR_V1_CERT_USED_AS_CA;
+  check_ca_err(cert_from_file('v1_int-v1_ca.der'), error);
+  check_cert_err(cert_from_file('v1_ee-v1_int-v1_ca.der'), error);
+  check_cert_err(cert_from_file('v2_ee-v1_int-v1_ca.der'), error);
+  check_cert_err(cert_from_file('v3_missing_bc_ee-v1_int-v1_ca.der'), error);
+  check_cert_err(cert_from_file('v3_bc_ee-v1_int-v1_ca.der'), error);
+  check_cert_err(cert_from_file('v1_bc_ee-v1_int-v1_ca.der'), error);
+  check_cert_err(cert_from_file('v2_bc_ee-v1_int-v1_ca.der'), error);
+  check_cert_err(cert_from_file('v4_bc_ee-v1_int-v1_ca.der'), error);
 
   // v1 intermediate with v3 extensions.
   check_ok_ca(cert_from_file('v1_int_bc-v1_ca.der'));
   check_ok(cert_from_file('v1_ee-v1_int_bc-v1_ca.der'));
   check_ok(cert_from_file('v1_bc_ee-v1_int_bc-v1_ca.der'));
   check_ok(cert_from_file('v2_ee-v1_int_bc-v1_ca.der'));
   check_ok(cert_from_file('v2_bc_ee-v1_int_bc-v1_ca.der'));
   check_ok(cert_from_file('v3_missing_bc_ee-v1_int_bc-v1_ca.der'));
   check_ok(cert_from_file('v3_bc_ee-v1_int_bc-v1_ca.der'));
   check_ok(cert_from_file('v4_bc_ee-v1_int_bc-v1_ca.der'));
 
   // A v2 intermediate with a v1 CA
-  ca_error = SEC_ERROR_CA_CERT_INVALID;
-  ee_error = SEC_ERROR_CA_CERT_INVALID;
-  check_ca_err(cert_from_file('v2_int-v1_ca.der'), ca_error);
-  check_cert_err(cert_from_file('v1_ee-v2_int-v1_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v2_ee-v2_int-v1_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v3_missing_bc_ee-v2_int-v1_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v3_bc_ee-v2_int-v1_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v1_bc_ee-v2_int-v1_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v2_bc_ee-v2_int-v1_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v4_bc_ee-v2_int-v1_ca.der'), ee_error);
+  error = SEC_ERROR_CA_CERT_INVALID;
+  check_ca_err(cert_from_file('v2_int-v1_ca.der'), error);
+  check_cert_err(cert_from_file('v1_ee-v2_int-v1_ca.der'), error);
+  check_cert_err(cert_from_file('v2_ee-v2_int-v1_ca.der'), error);
+  check_cert_err(cert_from_file('v3_missing_bc_ee-v2_int-v1_ca.der'), error);
+  check_cert_err(cert_from_file('v3_bc_ee-v2_int-v1_ca.der'), error);
+  check_cert_err(cert_from_file('v1_bc_ee-v2_int-v1_ca.der'), error);
+  check_cert_err(cert_from_file('v2_bc_ee-v2_int-v1_ca.der'), error);
+  check_cert_err(cert_from_file('v4_bc_ee-v2_int-v1_ca.der'), error);
 
   // A v2 intermediate with basic constraints
   check_ok_ca(cert_from_file('v2_int_bc-v1_ca.der'));
   check_ok(cert_from_file('v1_ee-v2_int_bc-v1_ca.der'));
   check_ok(cert_from_file('v1_bc_ee-v2_int_bc-v1_ca.der'));
   check_ok(cert_from_file('v2_ee-v2_int_bc-v1_ca.der'));
   check_ok(cert_from_file('v2_bc_ee-v2_int_bc-v1_ca.der'));
   check_ok(cert_from_file('v3_missing_bc_ee-v2_int_bc-v1_ca.der'));
   check_ok(cert_from_file('v3_bc_ee-v2_int_bc-v1_ca.der'));
   check_ok(cert_from_file('v4_bc_ee-v2_int_bc-v1_ca.der'));
 
   // Section is OK. A x509 v3 CA MUST have bc
   // http://tools.ietf.org/html/rfc5280#section-4.2.1.9
-  ca_error = SEC_ERROR_CA_CERT_INVALID;
-  ee_error = SEC_ERROR_CA_CERT_INVALID;
-  check_ca_err(cert_from_file('v3_int_missing_bc-v1_ca.der'), ca_error);
-  check_cert_err(cert_from_file('v1_ee-v3_int_missing_bc-v1_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v2_ee-v3_int_missing_bc-v1_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v3_missing_bc_ee-v3_int_missing_bc-v1_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v3_bc_ee-v3_int_missing_bc-v1_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v1_bc_ee-v3_int_missing_bc-v1_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v2_bc_ee-v3_int_missing_bc-v1_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v4_bc_ee-v3_int_missing_bc-v1_ca.der'), ee_error);
+  error = SEC_ERROR_CA_CERT_INVALID;
+  check_ca_err(cert_from_file('v3_int_missing_bc-v1_ca.der'), error);
+  check_cert_err(cert_from_file('v1_ee-v3_int_missing_bc-v1_ca.der'), error);
+  check_cert_err(cert_from_file('v2_ee-v3_int_missing_bc-v1_ca.der'), error);
+  check_cert_err(cert_from_file('v3_missing_bc_ee-v3_int_missing_bc-v1_ca.der'), error);
+  check_cert_err(cert_from_file('v3_bc_ee-v3_int_missing_bc-v1_ca.der'), error);
+  check_cert_err(cert_from_file('v1_bc_ee-v3_int_missing_bc-v1_ca.der'), error);
+  check_cert_err(cert_from_file('v2_bc_ee-v3_int_missing_bc-v1_ca.der'), error);
+  check_cert_err(cert_from_file('v4_bc_ee-v3_int_missing_bc-v1_ca.der'), error);
 
   // It is valid for a v1 ca to sign a v3 intemediate.
   check_ok_ca(cert_from_file('v3_int-v1_ca.der'));
   check_ok(cert_from_file('v1_ee-v3_int-v1_ca.der'));
   check_ok(cert_from_file('v2_ee-v3_int-v1_ca.der'));
   check_ok(cert_from_file('v3_missing_bc_ee-v3_int-v1_ca.der'));
   check_ok(cert_from_file('v3_bc_ee-v3_int-v1_ca.der'));
   check_ok(cert_from_file('v1_bc_ee-v3_int-v1_ca.der'));
   check_ok(cert_from_file('v2_bc_ee-v3_int-v1_ca.der'));
   check_ok(cert_from_file('v4_bc_ee-v3_int-v1_ca.der'));
 
   // The next groups change the v1 ca for a v1 ca with base constraints
   // (invalid trust anchor). The error pattern is the same as the groups
   // above
 
   // Using A v1 intermediate
-  ca_error = SEC_ERROR_CA_CERT_INVALID;
-  ee_error = SEC_ERROR_CA_CERT_INVALID;
-  check_ca_err(cert_from_file('v1_int-v1_ca_bc.der'), ca_error);
-  check_cert_err(cert_from_file('v1_ee-v1_int-v1_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v2_ee-v1_int-v1_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v3_missing_bc_ee-v1_int-v1_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v3_bc_ee-v1_int-v1_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v1_bc_ee-v1_int-v1_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v2_bc_ee-v1_int-v1_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v4_bc_ee-v1_int-v1_ca_bc.der'), ee_error);
+  error = MOZILLA_PKIX_ERROR_V1_CERT_USED_AS_CA;
+  check_ca_err(cert_from_file('v1_int-v1_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v1_ee-v1_int-v1_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v2_ee-v1_int-v1_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v3_missing_bc_ee-v1_int-v1_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v3_bc_ee-v1_int-v1_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v1_bc_ee-v1_int-v1_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v2_bc_ee-v1_int-v1_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v4_bc_ee-v1_int-v1_ca_bc.der'), error);
 
   // Using a v1 intermediate with v3 extenstions
   check_ok_ca(cert_from_file('v1_int_bc-v1_ca_bc.der'));
   check_ok(cert_from_file('v1_ee-v1_int_bc-v1_ca_bc.der'));
   check_ok(cert_from_file('v1_bc_ee-v1_int_bc-v1_ca_bc.der'));
   check_ok(cert_from_file('v2_ee-v1_int_bc-v1_ca_bc.der'));
   check_ok(cert_from_file('v2_bc_ee-v1_int_bc-v1_ca_bc.der'));
   check_ok(cert_from_file('v3_missing_bc_ee-v1_int_bc-v1_ca_bc.der'));
   check_ok(cert_from_file('v3_bc_ee-v1_int_bc-v1_ca_bc.der'));
   check_ok(cert_from_file('v4_bc_ee-v1_int_bc-v1_ca_bc.der'));
 
   // Using v2 intermediate
-  ca_error = SEC_ERROR_CA_CERT_INVALID;
-  ee_error = SEC_ERROR_CA_CERT_INVALID;
-  check_ca_err(cert_from_file('v2_int-v1_ca_bc.der'), ca_error);
-  check_cert_err(cert_from_file('v1_ee-v2_int-v1_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v2_ee-v2_int-v1_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v3_missing_bc_ee-v2_int-v1_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v3_bc_ee-v2_int-v1_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v1_bc_ee-v2_int-v1_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v2_bc_ee-v2_int-v1_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v4_bc_ee-v2_int-v1_ca_bc.der'), ee_error);
+  error = SEC_ERROR_CA_CERT_INVALID;
+  check_ca_err(cert_from_file('v2_int-v1_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v1_ee-v2_int-v1_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v2_ee-v2_int-v1_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v3_missing_bc_ee-v2_int-v1_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v3_bc_ee-v2_int-v1_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v1_bc_ee-v2_int-v1_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v2_bc_ee-v2_int-v1_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v4_bc_ee-v2_int-v1_ca_bc.der'), error);
 
   // Using a v2 intermediate with basic constraints 
   check_ok_ca(cert_from_file('v2_int_bc-v1_ca_bc.der'));
   check_ok(cert_from_file('v1_ee-v2_int_bc-v1_ca_bc.der'));
   check_ok(cert_from_file('v1_bc_ee-v2_int_bc-v1_ca_bc.der'));
   check_ok(cert_from_file('v2_ee-v2_int_bc-v1_ca_bc.der'));
   check_ok(cert_from_file('v2_bc_ee-v2_int_bc-v1_ca_bc.der'));
   check_ok(cert_from_file('v3_missing_bc_ee-v2_int_bc-v1_ca_bc.der'));
   check_ok(cert_from_file('v3_bc_ee-v2_int_bc-v1_ca_bc.der'));
   check_ok(cert_from_file('v4_bc_ee-v2_int_bc-v1_ca_bc.der'));
 
   // Using a v3 intermediate that is missing basic constraints (invalid)
-  ca_error = SEC_ERROR_CA_CERT_INVALID;
-  ee_error = SEC_ERROR_CA_CERT_INVALID;
-  check_ca_err(cert_from_file('v3_int_missing_bc-v1_ca_bc.der'), ca_error);
-  check_cert_err(cert_from_file('v1_ee-v3_int_missing_bc-v1_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v2_ee-v3_int_missing_bc-v1_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v3_missing_bc_ee-v3_int_missing_bc-v1_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v3_bc_ee-v3_int_missing_bc-v1_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v1_bc_ee-v3_int_missing_bc-v1_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v2_bc_ee-v3_int_missing_bc-v1_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v4_bc_ee-v3_int_missing_bc-v1_ca_bc.der'), ee_error);
+  error = SEC_ERROR_CA_CERT_INVALID;
+  check_ca_err(cert_from_file('v3_int_missing_bc-v1_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v1_ee-v3_int_missing_bc-v1_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v2_ee-v3_int_missing_bc-v1_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v3_missing_bc_ee-v3_int_missing_bc-v1_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v3_bc_ee-v3_int_missing_bc-v1_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v1_bc_ee-v3_int_missing_bc-v1_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v2_bc_ee-v3_int_missing_bc-v1_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v4_bc_ee-v3_int_missing_bc-v1_ca_bc.der'), error);
 
   // these should pass assuming we are OK with v1 ca signing v3 intermediates
   check_ok_ca(cert_from_file('v3_int-v1_ca_bc.der'));
   check_ok(cert_from_file('v1_ee-v3_int-v1_ca_bc.der'));
   check_ok(cert_from_file('v1_bc_ee-v3_int-v1_ca_bc.der'));
   check_ok(cert_from_file('v2_ee-v3_int-v1_ca_bc.der'));
   check_ok(cert_from_file('v2_bc_ee-v3_int-v1_ca_bc.der'));
   check_ok(cert_from_file('v3_missing_bc_ee-v3_int-v1_ca_bc.der'));
@@ -212,294 +198,276 @@ function run_test() {
   check_ok(cert_from_file('v4_bc_ee-v3_int-v1_ca_bc.der'));
 
 
   //////////////
   // v2 CA supersection
   //////////////////
 
   // v2 ca, v1 intermediate
-  ca_error = SEC_ERROR_CA_CERT_INVALID;
-  ee_error = SEC_ERROR_CA_CERT_INVALID;
-  check_ca_err(cert_from_file('v1_int-v2_ca.der'), ca_error);
-  check_cert_err(cert_from_file('v1_ee-v1_int-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v2_ee-v1_int-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v3_missing_bc_ee-v1_int-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v3_bc_ee-v1_int-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v1_bc_ee-v1_int-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v2_bc_ee-v1_int-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v4_bc_ee-v1_int-v2_ca.der'), ee_error);
+  error = MOZILLA_PKIX_ERROR_V1_CERT_USED_AS_CA;
+  check_ca_err(cert_from_file('v1_int-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v1_ee-v1_int-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v2_ee-v1_int-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v3_missing_bc_ee-v1_int-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v3_bc_ee-v1_int-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v1_bc_ee-v1_int-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v2_bc_ee-v1_int-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v4_bc_ee-v1_int-v2_ca.der'), error);
 
   // v2 ca, v1 intermediate with basic constraints (invalid)
-  ca_error = SEC_ERROR_CA_CERT_INVALID;
-  ee_error = SEC_ERROR_CA_CERT_INVALID;
-  check_ca_err(cert_from_file('v1_int_bc-v2_ca.der'), ca_error);
-  check_cert_err(cert_from_file('v1_ee-v1_int_bc-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v1_bc_ee-v1_int_bc-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v2_ee-v1_int_bc-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v2_bc_ee-v1_int_bc-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v3_missing_bc_ee-v1_int_bc-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v3_bc_ee-v1_int_bc-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v4_bc_ee-v1_int_bc-v2_ca.der'), ee_error);
+  error = SEC_ERROR_CA_CERT_INVALID;
+  check_ca_err(cert_from_file('v1_int_bc-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v1_ee-v1_int_bc-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v1_bc_ee-v1_int_bc-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v2_ee-v1_int_bc-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v2_bc_ee-v1_int_bc-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v3_missing_bc_ee-v1_int_bc-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v3_bc_ee-v1_int_bc-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v4_bc_ee-v1_int_bc-v2_ca.der'), error);
 
   // v2 ca, v2 intermediate
-  ca_error = SEC_ERROR_CA_CERT_INVALID;
-  ee_error = SEC_ERROR_CA_CERT_INVALID;
-  check_ca_err(cert_from_file('v2_int-v2_ca.der'), ca_error);
-  check_cert_err(cert_from_file('v1_ee-v2_int-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v2_ee-v2_int-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v3_missing_bc_ee-v2_int-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v3_bc_ee-v2_int-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v1_bc_ee-v2_int-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v2_bc_ee-v2_int-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v4_bc_ee-v2_int-v2_ca.der'), ee_error);
+  error = SEC_ERROR_CA_CERT_INVALID;
+  check_ca_err(cert_from_file('v2_int-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v1_ee-v2_int-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v2_ee-v2_int-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v3_missing_bc_ee-v2_int-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v3_bc_ee-v2_int-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v1_bc_ee-v2_int-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v2_bc_ee-v2_int-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v4_bc_ee-v2_int-v2_ca.der'), error);
 
   // v2 ca, v2 intermediate with basic constraints (invalid)
-  ca_error = SEC_ERROR_CA_CERT_INVALID;
-  ee_error = SEC_ERROR_CA_CERT_INVALID;
-  check_ca_err(cert_from_file('v1_int_bc-v2_ca.der'), ca_error);
-  check_cert_err(cert_from_file('v1_ee-v1_int_bc-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v1_bc_ee-v1_int_bc-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v2_ee-v1_int_bc-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v2_bc_ee-v1_int_bc-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v3_missing_bc_ee-v1_int_bc-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v3_bc_ee-v1_int_bc-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v4_bc_ee-v1_int_bc-v2_ca.der'), ee_error);
+  error = SEC_ERROR_CA_CERT_INVALID;
+  check_ca_err(cert_from_file('v1_int_bc-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v1_ee-v1_int_bc-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v1_bc_ee-v1_int_bc-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v2_ee-v1_int_bc-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v2_bc_ee-v1_int_bc-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v3_missing_bc_ee-v1_int_bc-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v3_bc_ee-v1_int_bc-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v4_bc_ee-v1_int_bc-v2_ca.der'), error);
 
   // v2 ca, v3 intermediate missing basic constraints
-  ca_error = SEC_ERROR_CA_CERT_INVALID;
-  ee_error = SEC_ERROR_CA_CERT_INVALID;
-  check_ca_err(cert_from_file('v3_int_missing_bc-v2_ca.der'), ca_error);
-  check_cert_err(cert_from_file('v1_ee-v3_int_missing_bc-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v2_ee-v3_int_missing_bc-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v3_missing_bc_ee-v3_int_missing_bc-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v3_bc_ee-v3_int_missing_bc-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v1_bc_ee-v3_int_missing_bc-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v2_bc_ee-v3_int_missing_bc-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v4_bc_ee-v3_int_missing_bc-v2_ca.der'), ee_error);
+  error = SEC_ERROR_CA_CERT_INVALID;
+  check_ca_err(cert_from_file('v3_int_missing_bc-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v1_ee-v3_int_missing_bc-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v2_ee-v3_int_missing_bc-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v3_missing_bc_ee-v3_int_missing_bc-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v3_bc_ee-v3_int_missing_bc-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v1_bc_ee-v3_int_missing_bc-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v2_bc_ee-v3_int_missing_bc-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v4_bc_ee-v3_int_missing_bc-v2_ca.der'), error);
 
   // v2 ca, v3 intermediate
-  ca_error = SEC_ERROR_CA_CERT_INVALID;
-  ee_error = SEC_ERROR_CA_CERT_INVALID;
-  check_ca_err(cert_from_file('v3_int-v2_ca.der'), ca_error);
-  check_cert_err(cert_from_file('v1_ee-v3_int-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v2_ee-v3_int-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v3_missing_bc_ee-v3_int-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v3_bc_ee-v3_int-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v1_bc_ee-v3_int-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v2_bc_ee-v3_int-v2_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v4_bc_ee-v3_int-v2_ca.der'), ee_error);
+  error = SEC_ERROR_CA_CERT_INVALID;
+  check_ca_err(cert_from_file('v3_int-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v1_ee-v3_int-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v2_ee-v3_int-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v3_missing_bc_ee-v3_int-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v3_bc_ee-v3_int-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v1_bc_ee-v3_int-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v2_bc_ee-v3_int-v2_ca.der'), error);
+  check_cert_err(cert_from_file('v4_bc_ee-v3_int-v2_ca.der'), error);
 
   // v2 ca, v1 intermediate
-  ca_error = SEC_ERROR_CA_CERT_INVALID;
-  ee_error = SEC_ERROR_CA_CERT_INVALID;
-  check_ca_err(cert_from_file('v1_int-v2_ca_bc.der'), ca_error);
-  check_cert_err(cert_from_file('v1_ee-v1_int-v2_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v2_ee-v1_int-v2_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v3_missing_bc_ee-v1_int-v2_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v3_bc_ee-v1_int-v2_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v1_bc_ee-v1_int-v2_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v2_bc_ee-v1_int-v2_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v4_bc_ee-v1_int-v2_ca_bc.der'), ee_error);
+  error = MOZILLA_PKIX_ERROR_V1_CERT_USED_AS_CA;
+  check_ca_err(cert_from_file('v1_int-v2_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v1_ee-v1_int-v2_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v2_ee-v1_int-v2_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v3_missing_bc_ee-v1_int-v2_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v3_bc_ee-v1_int-v2_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v1_bc_ee-v1_int-v2_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v2_bc_ee-v1_int-v2_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v4_bc_ee-v1_int-v2_ca_bc.der'), error);
 
   // v2 ca, v1 intermediate with bc
   check_ok_ca(cert_from_file('v1_int_bc-v2_ca_bc.der'));
   check_ok(cert_from_file('v1_ee-v1_int_bc-v2_ca_bc.der'));
   check_ok(cert_from_file('v1_bc_ee-v1_int_bc-v2_ca_bc.der'));
   check_ok(cert_from_file('v2_ee-v1_int_bc-v2_ca_bc.der'));
   check_ok(cert_from_file('v2_bc_ee-v1_int_bc-v2_ca_bc.der'));
   check_ok(cert_from_file('v3_missing_bc_ee-v1_int_bc-v2_ca_bc.der'));
   check_ok(cert_from_file('v3_bc_ee-v1_int_bc-v2_ca_bc.der'));
   check_ok(cert_from_file('v4_bc_ee-v1_int_bc-v2_ca_bc.der'));
 
   // v2 ca, v2 intermediate
-  ca_error = SEC_ERROR_CA_CERT_INVALID;
-  ee_error = SEC_ERROR_CA_CERT_INVALID;
-  check_ca_err(cert_from_file('v2_int-v2_ca_bc.der'), ca_error);
-  check_cert_err(cert_from_file('v1_ee-v2_int-v2_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v2_ee-v2_int-v2_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v3_missing_bc_ee-v2_int-v2_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v3_bc_ee-v2_int-v2_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v1_bc_ee-v2_int-v2_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v2_bc_ee-v2_int-v2_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v4_bc_ee-v2_int-v2_ca_bc.der'), ee_error);
+  error = SEC_ERROR_CA_CERT_INVALID;
+  check_ca_err(cert_from_file('v2_int-v2_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v1_ee-v2_int-v2_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v2_ee-v2_int-v2_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v3_missing_bc_ee-v2_int-v2_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v3_bc_ee-v2_int-v2_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v1_bc_ee-v2_int-v2_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v2_bc_ee-v2_int-v2_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v4_bc_ee-v2_int-v2_ca_bc.der'), error);
 
   // v2 ca, v2 intermediate with bc
   check_ok_ca(cert_from_file('v2_int_bc-v2_ca_bc.der'));
   check_ok(cert_from_file('v1_ee-v2_int_bc-v2_ca_bc.der'));
   check_ok(cert_from_file('v1_bc_ee-v2_int_bc-v2_ca_bc.der'));
   check_ok(cert_from_file('v2_ee-v2_int_bc-v2_ca_bc.der'));
   check_ok(cert_from_file('v2_bc_ee-v2_int_bc-v2_ca_bc.der'));
   check_ok(cert_from_file('v3_missing_bc_ee-v2_int_bc-v2_ca_bc.der'));
   check_ok(cert_from_file('v3_bc_ee-v2_int_bc-v2_ca_bc.der'));
   check_ok(cert_from_file('v4_bc_ee-v2_int_bc-v2_ca_bc.der'));
 
   // v2 ca, invalid v3 intermediate
-  ca_error = SEC_ERROR_CA_CERT_INVALID;
-  ee_error = SEC_ERROR_CA_CERT_INVALID;
-  check_ca_err(cert_from_file('v3_int_missing_bc-v2_ca_bc.der'), ca_error);
-  check_cert_err(cert_from_file('v1_ee-v3_int_missing_bc-v2_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v2_ee-v3_int_missing_bc-v2_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v3_missing_bc_ee-v3_int_missing_bc-v2_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v3_bc_ee-v3_int_missing_bc-v2_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v1_bc_ee-v3_int_missing_bc-v2_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v2_bc_ee-v3_int_missing_bc-v2_ca_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v4_bc_ee-v3_int_missing_bc-v2_ca_bc.der'), ee_error);
+  error = SEC_ERROR_CA_CERT_INVALID;
+  check_ca_err(cert_from_file('v3_int_missing_bc-v2_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v1_ee-v3_int_missing_bc-v2_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v2_ee-v3_int_missing_bc-v2_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v3_missing_bc_ee-v3_int_missing_bc-v2_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v3_bc_ee-v3_int_missing_bc-v2_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v1_bc_ee-v3_int_missing_bc-v2_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v2_bc_ee-v3_int_missing_bc-v2_ca_bc.der'), error);
+  check_cert_err(cert_from_file('v4_bc_ee-v3_int_missing_bc-v2_ca_bc.der'), error);
 
   // v2 ca, valid v3 intermediate
   check_ok_ca(cert_from_file('v3_int-v2_ca_bc.der'));
   check_ok(cert_from_file('v1_ee-v3_int-v2_ca_bc.der'));
   check_ok(cert_from_file('v1_bc_ee-v3_int-v2_ca_bc.der'));
   check_ok(cert_from_file('v2_ee-v3_int-v2_ca_bc.der'));
   check_ok(cert_from_file('v2_bc_ee-v3_int-v2_ca_bc.der'));
   check_ok(cert_from_file('v3_missing_bc_ee-v3_int-v2_ca_bc.der'));
   check_ok(cert_from_file('v3_bc_ee-v3_int-v2_ca_bc.der'));
   check_ok(cert_from_file('v4_bc_ee-v3_int-v2_ca_bc.der'));
 
   //////////////
   // v3 CA supersection
   //////////////////
 
   // v3 ca, v1 intermediate
-  ca_error = SEC_ERROR_CA_CERT_INVALID;
-  ee_error = SEC_ERROR_CA_CERT_INVALID;
-  check_ca_err(cert_from_file('v1_int-v3_ca.der'), ca_error);
-  check_cert_err(cert_from_file('v1_ee-v1_int-v3_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v2_ee-v1_int-v3_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v3_missing_bc_ee-v1_int-v3_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v3_bc_ee-v1_int-v3_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v1_bc_ee-v1_int-v3_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v2_bc_ee-v1_int-v3_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v4_bc_ee-v1_int-v3_ca.der'), ee_error);
+  error = MOZILLA_PKIX_ERROR_V1_CERT_USED_AS_CA;
+  check_ca_err(cert_from_file('v1_int-v3_ca.der'), error);
+  check_cert_err(cert_from_file('v1_ee-v1_int-v3_ca.der'), error);
+  check_cert_err(cert_from_file('v2_ee-v1_int-v3_ca.der'), error);
+  check_cert_err(cert_from_file('v3_missing_bc_ee-v1_int-v3_ca.der'), error);
+  check_cert_err(cert_from_file('v3_bc_ee-v1_int-v3_ca.der'), error);
+  check_cert_err(cert_from_file('v1_bc_ee-v1_int-v3_ca.der'), error);
+  check_cert_err(cert_from_file('v2_bc_ee-v1_int-v3_ca.der'), error);
+  check_cert_err(cert_from_file('v4_bc_ee-v1_int-v3_ca.der'), error);
 
   // A v1 intermediate with v3 extensions
   check_ok_ca(cert_from_file('v1_int_bc-v3_ca.der'));
   check_ok(cert_from_file('v1_ee-v1_int_bc-v3_ca.der'));
   check_ok(cert_from_file('v1_bc_ee-v1_int_bc-v3_ca.der'));
   check_ok(cert_from_file('v2_ee-v1_int_bc-v3_ca.der'));
   check_ok(cert_from_file('v2_bc_ee-v1_int_bc-v3_ca.der'));
   check_ok(cert_from_file('v3_missing_bc_ee-v1_int_bc-v3_ca.der'));
   check_ok(cert_from_file('v3_bc_ee-v1_int_bc-v3_ca.der'));
   check_ok(cert_from_file('v4_bc_ee-v1_int_bc-v3_ca.der'));
 
   // reject a v2 cert as intermediate
-  ca_error = SEC_ERROR_CA_CERT_INVALID;
-  ee_error = SEC_ERROR_CA_CERT_INVALID;
-  check_ca_err(cert_from_file('v2_int-v3_ca.der'), ca_error);
-  check_cert_err(cert_from_file('v1_ee-v2_int-v3_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v2_ee-v2_int-v3_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v3_missing_bc_ee-v2_int-v3_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v3_bc_ee-v2_int-v3_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v1_bc_ee-v2_int-v3_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v2_bc_ee-v2_int-v3_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v4_bc_ee-v2_int-v3_ca.der'), ee_error);
+  error = SEC_ERROR_CA_CERT_INVALID;
+  check_ca_err(cert_from_file('v2_int-v3_ca.der'), error);
+  check_cert_err(cert_from_file('v1_ee-v2_int-v3_ca.der'), error);
+  check_cert_err(cert_from_file('v2_ee-v2_int-v3_ca.der'), error);
+  check_cert_err(cert_from_file('v3_missing_bc_ee-v2_int-v3_ca.der'), error);
+  check_cert_err(cert_from_file('v3_bc_ee-v2_int-v3_ca.der'), error);
+  check_cert_err(cert_from_file('v1_bc_ee-v2_int-v3_ca.der'), error);
+  check_cert_err(cert_from_file('v2_bc_ee-v2_int-v3_ca.der'), error);
+  check_cert_err(cert_from_file('v4_bc_ee-v2_int-v3_ca.der'), error);
 
   // v2 intermediate with bc (invalid)
   check_ok_ca(cert_from_file('v2_int_bc-v3_ca.der'));
   check_ok(cert_from_file('v1_ee-v2_int_bc-v3_ca.der'));
   check_ok(cert_from_file('v1_bc_ee-v2_int_bc-v3_ca.der'));
   check_ok(cert_from_file('v2_ee-v2_int_bc-v3_ca.der'));
   check_ok(cert_from_file('v2_bc_ee-v2_int_bc-v3_ca.der'));
   check_ok(cert_from_file('v3_missing_bc_ee-v2_int_bc-v3_ca.der'));
   check_ok(cert_from_file('v3_bc_ee-v2_int_bc-v3_ca.der'));
   check_ok(cert_from_file('v4_bc_ee-v2_int_bc-v3_ca.der'));
 
   // invalid v3 intermediate
-  ca_error = SEC_ERROR_CA_CERT_INVALID;
-  ee_error = SEC_ERROR_CA_CERT_INVALID;
-  check_ca_err(cert_from_file('v3_int_missing_bc-v3_ca.der'), ca_error);
-  check_cert_err(cert_from_file('v1_ee-v3_int_missing_bc-v3_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v2_ee-v3_int_missing_bc-v3_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v3_missing_bc_ee-v3_int_missing_bc-v3_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v3_bc_ee-v3_int_missing_bc-v3_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v1_bc_ee-v3_int_missing_bc-v3_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v2_bc_ee-v3_int_missing_bc-v3_ca.der'), ee_error);
-  check_cert_err(cert_from_file('v4_bc_ee-v3_int_missing_bc-v3_ca.der'), ee_error);
+  error = SEC_ERROR_CA_CERT_INVALID;
+  check_ca_err(cert_from_file('v3_int_missing_bc-v3_ca.der'), error);
+  check_cert_err(cert_from_file('v1_ee-v3_int_missing_bc-v3_ca.der'), error);
+  check_cert_err(cert_from_file('v2_ee-v3_int_missing_bc-v3_ca.der'), error);
+  check_cert_err(cert_from_file('v3_missing_bc_ee-v3_int_missing_bc-v3_ca.der'), error);
+  check_cert_err(cert_from_file('v3_bc_ee-v3_int_missing_bc-v3_ca.der'), error);
+  check_cert_err(cert_from_file('v1_bc_ee-v3_int_missing_bc-v3_ca.der'), error);
+  check_cert_err(cert_from_file('v2_bc_ee-v3_int_missing_bc-v3_ca.der'), error);
+  check_cert_err(cert_from_file('v4_bc_ee-v3_int_missing_bc-v3_ca.der'), error);
 
   // v1/v2 end entity, v3 intermediate
   check_ok_ca(cert_from_file('v3_int-v3_ca.der'));
   check_ok(cert_from_file('v1_ee-v3_int-v3_ca.der'));
   check_ok(cert_from_file('v2_ee-v3_int-v3_ca.der'));
   check_ok(cert_from_file('v3_missing_bc_ee-v3_int-v3_ca.der'));
   check_ok(cert_from_file('v3_bc_ee-v3_int-v3_ca.der'));
   check_ok(cert_from_file('v1_bc_ee-v3_int-v3_ca.der'));
   check_ok(cert_from_file('v2_bc_ee-v3_int-v3_ca.der'));
   check_ok(cert_from_file('v4_bc_ee-v3_int-v3_ca.der'));
 
   // v3 CA, invalid v3 intermediate
-  ca_error = SEC_ERROR_CA_CERT_INVALID;
-  ee_error = SEC_ERROR_CA_CERT_INVALID;
-  check_ca_err(cert_from_file('v1_int-v3_ca_missing_bc.der'), ca_error);
-  check_cert_err(cert_from_file('v1_ee-v1_int-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v2_ee-v1_int-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v3_missing_bc_ee-v1_int-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v3_bc_ee-v1_int-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v1_bc_ee-v1_int-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v2_bc_ee-v1_int-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v4_bc_ee-v1_int-v3_ca_missing_bc.der'), ee_error);
+  error = MOZILLA_PKIX_ERROR_V1_CERT_USED_AS_CA;
+  check_ca_err(cert_from_file('v1_int-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v1_ee-v1_int-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v2_ee-v1_int-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v3_missing_bc_ee-v1_int-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v3_bc_ee-v1_int-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v1_bc_ee-v1_int-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v2_bc_ee-v1_int-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v4_bc_ee-v1_int-v3_ca_missing_bc.der'), error);
 
   // Int v1 with BC that is just invalid
-  ca_error = SEC_ERROR_CA_CERT_INVALID;
-  ee_error = SEC_ERROR_CA_CERT_INVALID;
-  check_ca_err(cert_from_file('v1_int_bc-v3_ca_missing_bc.der'), ca_error);
-  check_cert_err(cert_from_file('v1_ee-v1_int_bc-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v1_bc_ee-v1_int_bc-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v2_ee-v1_int_bc-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v2_bc_ee-v1_int_bc-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v3_missing_bc_ee-v1_int_bc-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v3_bc_ee-v1_int_bc-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v4_bc_ee-v1_int_bc-v3_ca_missing_bc.der'), ee_error);
+  error = SEC_ERROR_CA_CERT_INVALID;
+  check_ca_err(cert_from_file('v1_int_bc-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v1_ee-v1_int_bc-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v1_bc_ee-v1_int_bc-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v2_ee-v1_int_bc-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v2_bc_ee-v1_int_bc-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v3_missing_bc_ee-v1_int_bc-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v3_bc_ee-v1_int_bc-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v4_bc_ee-v1_int_bc-v3_ca_missing_bc.der'), error);
 
   // Good section (all fail)
-  ca_error = SEC_ERROR_CA_CERT_INVALID;
-  ee_error = SEC_ERROR_CA_CERT_INVALID;
-  check_ca_err(cert_from_file('v2_int-v3_ca_missing_bc.der'), ca_error);
-  check_cert_err(cert_from_file('v1_ee-v2_int-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v2_ee-v2_int-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v3_missing_bc_ee-v2_int-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v3_bc_ee-v2_int-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v1_bc_ee-v2_int-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v2_bc_ee-v2_int-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v4_bc_ee-v2_int-v3_ca_missing_bc.der'), ee_error);
+  error = SEC_ERROR_CA_CERT_INVALID;
+  check_ca_err(cert_from_file('v2_int-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v1_ee-v2_int-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v2_ee-v2_int-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v3_missing_bc_ee-v2_int-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v3_bc_ee-v2_int-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v1_bc_ee-v2_int-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v2_bc_ee-v2_int-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v4_bc_ee-v2_int-v3_ca_missing_bc.der'), error);
 
   // v3 intermediate missing basic constraints is invalid
-  ca_error = SEC_ERROR_CA_CERT_INVALID;
-  ee_error = SEC_ERROR_CA_CERT_INVALID;
-  check_ca_err(cert_from_file('v2_int_bc-v3_ca_missing_bc.der'), ca_error);
-  check_cert_err(cert_from_file('v1_ee-v2_int_bc-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v1_bc_ee-v2_int_bc-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v2_ee-v2_int_bc-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v2_bc_ee-v2_int_bc-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v3_missing_bc_ee-v2_int_bc-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v3_bc_ee-v2_int_bc-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v4_bc_ee-v2_int_bc-v3_ca_missing_bc.der'), ee_error);
+  error = SEC_ERROR_CA_CERT_INVALID;
+  check_ca_err(cert_from_file('v2_int_bc-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v1_ee-v2_int_bc-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v1_bc_ee-v2_int_bc-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v2_ee-v2_int_bc-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v2_bc_ee-v2_int_bc-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v3_missing_bc_ee-v2_int_bc-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v3_bc_ee-v2_int_bc-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v4_bc_ee-v2_int_bc-v3_ca_missing_bc.der'), error);
 
   // v3 intermediate missing basic constraints is invalid
-  ca_error = SEC_ERROR_CA_CERT_INVALID;
-  ee_error = SEC_ERROR_CA_CERT_INVALID;
-  check_ca_err(cert_from_file('v3_int_missing_bc-v3_ca_missing_bc.der'), ca_error);
-  check_cert_err(cert_from_file('v1_ee-v3_int_missing_bc-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v2_ee-v3_int_missing_bc-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v3_missing_bc_ee-v3_int_missing_bc-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v3_bc_ee-v3_int_missing_bc-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v1_bc_ee-v3_int_missing_bc-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v2_bc_ee-v3_int_missing_bc-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v4_bc_ee-v3_int_missing_bc-v3_ca_missing_bc.der'), ee_error);
+  error = SEC_ERROR_CA_CERT_INVALID;
+  check_ca_err(cert_from_file('v3_int_missing_bc-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v1_ee-v3_int_missing_bc-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v2_ee-v3_int_missing_bc-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v3_missing_bc_ee-v3_int_missing_bc-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v3_bc_ee-v3_int_missing_bc-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v1_bc_ee-v3_int_missing_bc-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v2_bc_ee-v3_int_missing_bc-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v4_bc_ee-v3_int_missing_bc-v3_ca_missing_bc.der'), error);
 
   // With a v3 root missing bc and valid v3 intermediate
-  ca_error = SEC_ERROR_CA_CERT_INVALID;
-  ee_error = SEC_ERROR_CA_CERT_INVALID;
-  check_ca_err(cert_from_file('v3_int-v3_ca_missing_bc.der'), ca_error);
-  check_cert_err(cert_from_file('v1_ee-v3_int-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v2_ee-v3_int-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v3_missing_bc_ee-v3_int-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v3_bc_ee-v3_int-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v1_bc_ee-v3_int-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v2_bc_ee-v3_int-v3_ca_missing_bc.der'), ee_error);
-  check_cert_err(cert_from_file('v4_bc_ee-v3_int-v3_ca_missing_bc.der'), ee_error);
+  error = SEC_ERROR_CA_CERT_INVALID;
+  check_ca_err(cert_from_file('v3_int-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v1_ee-v3_int-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v2_ee-v3_int-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v3_missing_bc_ee-v3_int-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v3_bc_ee-v3_int-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v1_bc_ee-v3_int-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v2_bc_ee-v3_int-v3_ca_missing_bc.der'), error);
+  check_cert_err(cert_from_file('v4_bc_ee-v3_int-v3_ca_missing_bc.der'), error);
 
   // self-signed
   check_cert_err(cert_from_file('v1_self_signed.der'), SEC_ERROR_UNKNOWN_ISSUER);
   check_cert_err(cert_from_file('v1_self_signed_bc.der'), SEC_ERROR_UNKNOWN_ISSUER);
   check_cert_err(cert_from_file('v2_self_signed.der'), SEC_ERROR_UNKNOWN_ISSUER);
   check_cert_err(cert_from_file('v2_self_signed_bc.der'), SEC_ERROR_UNKNOWN_ISSUER);
   check_cert_err(cert_from_file('v3_self_signed.der'), SEC_ERROR_UNKNOWN_ISSUER);
   check_cert_err(cert_from_file('v3_self_signed_bc.der'), SEC_ERROR_UNKNOWN_ISSUER);
index fe22bc496350c880eacd0b1ebb0b44a3f3e3136c..950173131fdae19995ae53ed3fce3eee3d037ac7
GIT binary patch
literal 294912
zc%1B=1wa&C+xK@_LO{BENoi*3ltvH%DQP5j=}=f;*#wlZ16vX6#_lc@yA@ke5ykE<
z)Nf~Z6a?0|-^Yjd`@ZXU-^_KE>s)8focPaimYE3;9g<0<5YzGta+9e<8(bL<kH>is
zi8vhY1ouZA*NF)CN4U#pJnq+=z**cCmEv^ZL>c{XOa;zS#u>&~#$fIT0000000000
z00000000000000000000000000000000000000000000000000000000000000000
z00000000000000000000000000000000000007{BH6Eg(Dk?hon9Mvfg_fF~oJr0r
zEF4;tl9QP#<{jqi8R1I|2=?)fCh~m5kYM6>KhZdugjkyl6ycQ+$txizIfat*J%{KI
zCGdRRORzEV5f)X^(7`A0;tPvXvM8z4?>R(%C;{{KtOd!$lOU?1_U$+_3k!=V1>ds>
z|4<0u*}V)$l1a4<UQ9(t2S3q{nw*kD`R@Im5W>od@bntu+clcoFhj!vf;_`wh=IN_
z#K_=)&`4i&58ffcenSGhBZ!_}Az=~b#AJl~L*o8ebAN2mH18MaZ%F8`9MO-C=toE1
zM>LD0ExNHoH}>ep0o^#F8z*#=jBZl68z){-2!G2f5wYfN`TMcuZS8nld*0T8w{_%g
zop{@1-Zq7|P32XLUp;>Pcxh{Xnpd(luViap$=1A*t$8I|^Gdenm2AU{vf)M9@S<#Z
zQ8v6Nd!E;x=e6f~?Rj2%zL!^~J+Dj$UQS2;me+#3Beh2OX*AZFS6f?zi#4yxSd!P)
zyxcat+%~-2wg^8rKO_G)HoUDZZ)?ZfqWiYx?bVjIS6g1c*zscRc(HZ}|2JrCD#gym
z*2a$1nY8XqcFADdnY8On+IJ=$I+KpyllGlq_MKt&oniK!VfNp`>^rMt-&q~|&g$5A
zR>!`xI`*B_vG1&oeP?yJNvF<aa%VE7Gnv|%BzGn$oyoNCN!~!<CsR7BlY&-<Y?q9X
zQ+O@zi16raUwbDLl8~s1uMQr^myeM-nN-T~<RWT5@AL5QlXN)gdy>GFJz){<2G99~
zN}xF3000000000000000000000000000000000000000000000000000000000000
z0000000000000000000000000000000000000000000000000000000006-MZ}dYX
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
--- a/security/manager/ssl/tests/unit/tlsserver/cmd/BadCertServer.cpp
+++ b/security/manager/ssl/tests/unit/tlsserver/cmd/BadCertServer.cpp
@@ -54,16 +54,17 @@ const BadCertHost sBadCertHosts[] =
   { "bad.include-subdomains.pinning.example.com", "otherIssuerEE" },
   { "exclude-subdomains.pinning.example.com", "localhostAndExampleCom" },
   { "sub.exclude-subdomains.pinning.example.com", "otherIssuerEE" },
   { "test-mode.pinning.example.com", "otherIssuerEE" },
   { "unknownissuer.include-subdomains.pinning.example.com", "unknownissuer" },
   { "nsCertTypeNotCritical.example.com", "nsCertTypeNotCritical" },
   { "nsCertTypeCriticalWithExtKeyUsage.example.com", "nsCertTypeCriticalWithExtKeyUsage" },
   { "nsCertTypeCritical.example.com", "nsCertTypeCritical" },
+  { "end-entity-issued-by-v1-cert.example.com", "eeIssuedByV1Cert" },
   { nullptr, nullptr }
 };
 
 int32_t
 DoSNISocketConfig(PRFileDesc *aFd, const SECItem *aSrvNameArr,
                   uint32_t aSrvNameArrSize, void *aArg)
 {
   const BadCertHost *host = GetHostForSNI(aSrvNameArr, aSrvNameArrSize,
--- a/security/manager/ssl/tests/unit/tlsserver/generate_certs.sh
+++ b/security/manager/ssl/tests/unit/tlsserver/generate_certs.sh
@@ -140,16 +140,41 @@ function make_INT {
                                                     -t ",," \
                                                     -m $SERIALNO \
                                                     --extAIA \
                                                     $COMMON_ARGS \
                                                     $EXTRA_ARGS
   SERIALNO=$(($SERIALNO + 1))
 }
 
+# This creates an X.509 version 1 certificate (note --certVersion 1 and a lack
+# of extensions).
+function make_V1 {
+  NICKNAME="${1}"
+  SUBJECT="${2}"
+  CA="${3}"
+
+  cert_already_exists $NICKNAME
+  if [ $ALREADY_EXISTS -eq 1 ]; then
+    echo "cert \"$NICKNAME\" already exists - not regenerating it (use --clobber to force regeneration)"
+    return
+  fi
+
+  $RUN_MOZILLA $CERTUTIL -d $DB_ARGUMENT -S \
+                         -n $NICKNAME \
+                         -s "$SUBJECT" \
+                         -c $CA \
+                         -t ",," \
+                         -m $SERIALNO \
+                         --certVersion 1 \
+                         -v 360 -w -1 -z $NOISE_FILE
+
+  SERIALNO=$(($SERIALNO + 1))
+}
+
 function make_EE {
   CERT_RESPONSES="n\n\ny\n2\n7\nhttp://localhost:8080/\n\nn\nn\n"
   NICKNAME="${1}"
   SUBJECT="${2}"
   CA="${3}"
   SUBJECT_ALT_NAME="${4}"
   EXTRA_ARGS="${5} ${6}"
 
@@ -282,9 +307,16 @@ make_INT self-signed-EE-with-cA-true 'CN
 make_INT ca-used-as-end-entity 'CN=Test Intermediate used as End-Entity' testCA "-8 ca-used-as-end-entity.example.com"
 
 make_delegated badKeysizeDelegatedSigner 'CN=Bad Keysize Delegated Responder' testCA "--extKeyUsage ocspResponder -g 1008"
 
 make_EE_with_nsCertType nsCertTypeCritical 'CN=nsCertType Critical' testCA "localhost,*.example.com" "y"
 make_EE_with_nsCertType nsCertTypeNotCritical 'CN=nsCertType Not Critical' testCA "localhost,*.example.com" "n"
 make_EE_with_nsCertType nsCertTypeCriticalWithExtKeyUsage 'CN=nsCertType Critical With extKeyUsage' testCA "localhost,*.example.com" "y" "--extKeyUsage serverAuth"
 
+# Make an X.509 version 1 certificate that will issue another certificate.
+# By default, this causes an error in verification that we allow overrides for.
+# However, if the v1 certificate is a trust anchor, then verification succeeds.
+make_V1 v1Cert 'CN=V1 Cert' testCA
+export_cert v1Cert v1Cert.der
+make_EE eeIssuedByV1Cert 'CN=EE Issued by V1 Cert' v1Cert "localhost,*.example.com"
+
 cleanup
index 9d6453d125c50d86bf079d3ecd276263fa697309..02ac22e5a984dbf33325e6cd572444c92c07dde6
GIT binary patch
literal 458752
zc%1Cr2UJsQw>SEP-h1x^q=+Rzz<_{&Qk0G~=?P7G?`07M1Qf9%Hn0OKC|2y)8!Ffl
zMG;X!MZ^L&_!2hfMA>{#@{T*kJ>%Xpe`D<REd4Xro_l7SCnO;*baRYM2~!J?Pl~0a
zs2Sq&ad<q=QcVqq!(FETBZ6b%q5s46$FK1?)-L0wzvdCfe&P7C{Bb!V*wyUo*|h9A
zSwFM<vu?0a4*&oF00000000000000000000000000000000000000000000000000
z000000000000000000000000000000000000002+|0^-Pyt2y5c$!`cg&GqU8<s+u
zM@gal*UC57-NwqpM$N;@+R;YszkXLuCo)vc)qTE`mHQ$!2b)D|p3d{#JZ;omoYm&K
zINLhTpX;IKZsY1`HP>dET4YLCto}cXf$mH`9@)9dcwA&$Xjn#aVhsIvgD9yf@ngRZ
z`mgH;>HpUmzcmk!tgJfTZ|n;~qA8J~ammT9Ns(!klrY}$=H@%kv++?I3mGjizd%ig
zqE9r?wd5YVhWFStVkp$G80MGo{B@17@L$(3)V1Z}kyTX32mRA_Dm5xBB!&4U+<#qT
zJf5Tzecid7JhJlt^<NX2oSYh##QYkrzb^An`md{y^>vpS<9TJ()$uE5jooC-n0dzW
z*Uk3l1z6v3R@N@=9@Eq)MEXDU+l^vC|HqJVKK2`o-_d9M7Mbx&GUJ!zv0pO2giK-_
zj2H)F#$guYKxQ0F7zYaDK&2l{#x6zt=QwsnqQThlpMMW&>}WK0G#)$78atB5jwWMA
z%Gi-Qb_^M7?4S1j>2K`Z;GgrcD;tbm*<kF-24hz?7`w8;*p&^&u536~WjI!4I96pi
zR%JL=WjvM|kEO<Asqt89{7*V|P2;g^&Kmnl@;}G136A}j8W8_EXVe;ubxR`B8H}|&
zemXYmv9C59`)b3nuO<=y`RaeZ@Soo?96OT6jz(ig#=o01_HQMP{aZ<6w~NtOt<hMm
z5%HhjVbq3%85xocjr5tP2F%kxzJSC$HDaC`Gf!tRPs#s%YRoJ%W|kQ<%Z!<2#{X4j
z%xuS)*^V)@9b;xY#>{q%ne7-e+c9RgLq9cPo>G{nROV?2^E8xs8pb>g|L@bW{}KK<
zr83*0GTI3>q7Xx=V-qJ6$1vw>Y@%z(!6R#@{(rmkWBw@((r2D?((j_VxakKx_LFgU
zE&R^{000000000000000000000000000000000000000000000000000000000000
z00000000000000000000000000000000000008`NBcvceKWgWl!eQUBPgpP3g|%aC
z*mdkYb^>d}>agwDMr<`!g3+){ED?*uDA*#*4V#ZyVI~+6)5cUVX-p{ZR^Fw&Qy6F7
zkGxNLZ}Xn#J^Y{k?*ae-000000000000000000000000000000000000000000000
z000000000000000000000000000000000000000000000004mhRrol$@Era21KMLJ
zuZTHXV<(p{S50A@h=1z{(;PeL=rGV=oQU3U6D5qDT)!QuK6cWql&Cg#vg1I6D&qvV
z%6pH>*vX37x0T0Eiu)y%#!d>Bge#7n(8Ojd@N#nEbINYYGuBL-Q*w+oRoP3Hu_n$o
zm0_$g;+@irb#YFM6k`poeksXVgZG$7FjoJ^kHi_P&#h81#_BoGSCp~3xxN))tWIb1
zgc+-Sk%bUro!8VX$XG3_9|<s4a}N`K#!8-lo{zDTx{7!iD{+@F4`ZEfUCYf_b(V&3
zF;>l<d``xyR``yChm(_ENzqGyK1glM0*C#=hOj~G1NIi{#yYWf>^^n}yMbNCnz2*Z
zF{}~WkJVs1u&r1nwia87m0$%JhGk)?SOOM}g<}-VAM?iCF(=F(n@hhO0000000000
z00000000000000000000000000000000000000000000000000000000000000000
z000000000000000000000D%8hxHxfmZN@>1ahSq5Xfh5Oj01sjP-h&}7zb6xL4|Qp
zW*n3l2Svs~fpL&$9OM`WS;j$zagb&lq!<TD#zBH{5N9037za_tL4<J-W*meV2SLU`
zfN|hw9QYUqUdDlkao}bgxEKdc#({&A6UQ$=|F6)_yN<)YW1p~ItP5+$+OX@`dF%w%
zh}B`+v5nYjtOTQBnOGtgiBYgcm>V`9v%*X;eM}cq$K)|_j32}2eb4)p*PGXs*Pho#
zzZ?Jn000000000000000000000000000000000000000000000000000000000000
z0000000000000000000000000000000001h|0%qj68POXU+wW#YkZwDzG{xI8sjTr
zd{rM`)y7xV@l|DfRUTiJ##hDhRbhOUA7AChSK0AZW_*<%U!}%Z$?;WUd=(#G#l~0B
z@l|Ae6&_!O##h1dRbYJOA7A;#SKjfJXME)zU%AFt&heFlhf{)|aUJ^TwDYdxu<zI>
ztQYIT+Oan5I(8mAfi+@v*mi6qwi+wJXjmqeh(%%)Y!T*$&Bv@T6HFh|#ndr*OdR9K
z@Oj_!KIQf1b>+3^wb3sJ000000000000000000000000000000000000000000000
z000000000000000000000000000000000000000000000000000N{Vh_}^=<J-%v<
zuT#cX&GA)Zd?k#p>f@{0_^LX-s*JD7<Ezs6syMzXjIZ+JtK9f1JHE<{uhQeI)c7hn
zzDkU*;^V8>_$oTSij1$q<Ezm4DmcChjIaFTE8qCaJHGOauiWD+*Z9ggzH;zzO7JtT
zLm!=XjsY$=J?BU6v|P#Dy4*mFH^%`hz})jn^B&|Jz~1Hw=XT^?$V<%qlD8APgKf>z
z%DI;3gQ;OAxi)$I*s+|@oC+*D#~|-?-khA=+*LVU|I`0700000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z0000000000@c$M$P7?ld&I#vSvdt_?q~0rs*f8@SpFHEW8Nt-s62G1uwY?x5?kVhJ
zMUvT*l$EB%2#y7MQx5gKSTg5ob*SjZGJ#Ni{~J>nK~L>@@tw<6b5-vZT6&URjC}j<
z{9BU|oDF@amfbmxbSm^^Oi|~nl!z|1cnwBir7_Fv_#A8pkHglb?sKEh9BA+yCNP3x
zeQK~_mxy}*#VZ7@Z6^8mY!!B@GlEa~x7=#YHr!fy{IvKnqW-0rZCl@~F#@p_Z%XSv
zQfpE-Dwwp*$E7!mTYIT80-45V+Z;U4Z+hT#UF6u2wOcZjtyNVRfz-zmmFn}N+Y5?L
zY3_|O5xkmvd%H3tSp8yW|60rMs{PkAxwal}FTHPE?x@5FG<&&PUbS>uzc#Sn=<ltf
z)h+$gQIQdFJiFG?Zh7qF_klc%b9&J$@Lq9s3XGs{$-WrUZw{@MhjvZb{LEwSDp8t%
zJR?v_(3d-V#^vOOMLWZ?wF2jUs4wS`V+4_}ZJbiAHB6dr;GHa<PTPUMnPec#2&j2i
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
--- a/security/manager/ssl/tests/unit/tlsserver/lib/TLSServer.cpp
+++ b/security/manager/ssl/tests/unit/tlsserver/lib/TLSServer.cpp
@@ -192,26 +192,68 @@ ConfigSecureServerWithNamedCert(PRFileDe
                                 /*optional*/ ScopedCERTCertificate *certOut,
                                 /*optional*/ SSLKEAType *keaOut)
 {
   ScopedCERTCertificate cert(PK11_FindCertFromNickname(certName, nullptr));
   if (!cert) {
     PrintPRError("PK11_FindCertFromNickname failed");
     return SECFailure;
   }
+  // If an intermediate certificate issued the server certificate (rather than
+  // directly by a trust anchor), we want to send it along in the handshake so
+  // we don't encounter unknown issuer errors when that's not what we're
+  // testing.
+  ScopedCERTCertificateList certList;
+  ScopedCERTCertificate issuerCert(
+    CERT_FindCertByName(CERT_GetDefaultCertDB(), &cert->derIssuer));
+  // If we can't find the issuer cert, continue without it.
+  if (issuerCert) {
+    // Sadly, CERTCertificateList does not have a CERT_NewCertificateList
+    // utility function, so we must create it ourselves. This consists
+    // of creating an arena, allocating space for the CERTCertificateList,
+    // and then transferring ownership of the arena to that list.
+    ScopedPLArenaPool arena(PORT_NewArena(DER_DEFAULT_CHUNKSIZE));
+    if (!arena) {
+      PrintPRError("PORT_NewArena failed");
+      return SECFailure;
+    }
+    certList = reinterpret_cast<CERTCertificateList*>(
+      PORT_ArenaAlloc(arena, sizeof(CERTCertificateList)));
+    if (!certList) {
+      PrintPRError("PORT_ArenaAlloc failed");
+      return SECFailure;
+    }
+    certList->arena = arena.forget();
+    // We also have to manually copy the certificates we care about to the
+    // list, because there aren't any utility functions for that either.
+    certList->certs = reinterpret_cast<SECItem*>(
+      PORT_ArenaAlloc(certList->arena, 2 * sizeof(SECItem)));
+    if (SECITEM_CopyItem(certList->arena, certList->certs, &cert->derCert)
+          != SECSuccess) {
+      PrintPRError("SECITEM_CopyItem failed");
+      return SECFailure;
+    }
+    if (SECITEM_CopyItem(certList->arena, certList->certs + 1,
+                         &issuerCert->derCert) != SECSuccess) {
+      PrintPRError("SECITEM_CopyItem failed");
+      return SECFailure;
+    }
+    certList->len = 2;
+  }
 
   ScopedSECKEYPrivateKey key(PK11_FindKeyByAnyCert(cert, nullptr));
   if (!key) {
     PrintPRError("PK11_FindKeyByAnyCert failed");
     return SECFailure;
   }
 
   SSLKEAType certKEA = NSS_FindCertKEAType(cert);
 
-  if (SSL_ConfigSecureServer(fd, cert, key, certKEA) != SECSuccess) {
+  if (SSL_ConfigSecureServerWithCertChain(fd, cert, certList, key, certKEA)
+        != SECSuccess) {
     PrintPRError("SSL_ConfigSecureServer failed");
     return SECFailure;
   }
 
   if (certOut) {
     *certOut = cert.forget();
   }
 
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..84b9f7273073576696a0dac087ff7a43a50adaa6
GIT binary patch
literal 407
zc$_n6Vw`Ny_?L+()Wd+6jZ>@5qwPB{BO^B}gMpBtfB_#Hb0`b5FndU9afyPnqk)__
zuc3*7rJ;$Dp`odvNt8IR2{IQ&Pne;Cb81nELF0U6lNnhVm>YW;3>rI`8XFmo?V7Ve
zEhPWP&n#<0<H^>^;S1^-xK@8~-e33HC5p%XY2dHGy7O0_t#x?7)F9GY;-O!+{D%D!
z;hsI!SH4ZnR#|RyV8cWGP49hAGj_J#pVFBb<iF;3-S0l8N3Z`!DqB7IU2*De)O8!f
zg-^UruF2_ku2f>INlTA8GijDqZ}-NjqVt)U85tPSJkAVsSIG=UPU}ro78l}bR>xI6
z`}|jFu3X5cJ5n(fN@ut2erVYkzEa60no)gAkL#%vLDv@>y_CKcB}kj}#BbU6r`7A$
z7mdW#&q7*C{qm9nveR~?9G|%?Z8!VA4L#BqESL`ZEjeOj9T}UtU;b&-<(;`Rd(J7z
T1geyasuk^u{iGWCf+-3B6oH-m