Index: net/cert/x509_certificate_unittest.cc |
diff --git a/net/cert/x509_certificate_unittest.cc b/net/cert/x509_certificate_unittest.cc |
index a45753866bd252cea964b70d9ee3fef226aa9f8b..5bceb215f30ba29998f3218a8875058be684dd27 100644 |
--- a/net/cert/x509_certificate_unittest.cc |
+++ b/net/cert/x509_certificate_unittest.cc |
@@ -724,58 +724,63 @@ TEST(X509CertificateTest, IsIssuedByEncoded) { |
} |
TEST(X509CertificateTest, IsIssuedByEncodedWithIntermediates) { |
+ static const unsigned char kPolicyRootDN[] = { |
+ 0x30, 0x1e, 0x31, 0x1c, 0x30, 0x1a, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, |
+ 0x13, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x20, 0x54, 0x65, 0x73, 0x74, |
+ 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41 |
+ }; |
+ static const unsigned char kPolicyIntermediateDN[] = { |
+ 0x30, 0x26, 0x31, 0x24, 0x30, 0x22, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, |
+ 0x1b, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x20, 0x54, 0x65, 0x73, 0x74, |
+ 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, |
+ 0x65, 0x20, 0x43, 0x41 |
+ }; |
+ |
base::FilePath certs_dir = GetTestCertsDirectory(); |
- scoped_refptr<X509Certificate> server_cert = |
- ImportCertFromFile(certs_dir, "www_us_army_mil_cert.der"); |
- ASSERT_NE(static_cast<X509Certificate*>(NULL), server_cert); |
+ CertificateList policy_chain = CreateCertificateListFromFile( |
+ certs_dir, "explicit-policy-chain.pem", X509Certificate::FORMAT_AUTO); |
+ ASSERT_EQ(3u, policy_chain.size()); |
// The intermediate CA certificate's policyConstraints extension has a |
// requireExplicitPolicy field with SkipCerts=0. |
- scoped_refptr<X509Certificate> intermediate_cert = |
- ImportCertFromFile(certs_dir, "dod_ca_17_cert.der"); |
- ASSERT_NE(static_cast<X509Certificate*>(NULL), intermediate_cert); |
- |
- std::string dod_ca_17_issuer(reinterpret_cast<const char*>(DodCA17DN), |
- sizeof(DodCA17DN)); |
- |
- scoped_refptr<X509Certificate> root_cert = |
- ImportCertFromFile(certs_dir, "dod_root_ca_2_cert.der"); |
- |
- std::string dod_root_ca_2_issuer( |
- reinterpret_cast<const char*>(DodRootCA2DN), sizeof(DodRootCA2DN)); |
+ std::string policy_intermediate_dn( |
+ reinterpret_cast<const char*>(kPolicyIntermediateDN), |
+ sizeof(kPolicyIntermediateDN)); |
+ std::string policy_root_dn(reinterpret_cast<const char*>(kPolicyRootDN), |
+ sizeof(kPolicyRootDN)); |
X509Certificate::OSCertHandles intermediates; |
- intermediates.push_back(intermediate_cert->os_cert_handle()); |
+ intermediates.push_back(policy_chain[1]->os_cert_handle()); |
scoped_refptr<X509Certificate> cert_chain = |
- X509Certificate::CreateFromHandle(server_cert->os_cert_handle(), |
+ X509Certificate::CreateFromHandle(policy_chain[0]->os_cert_handle(), |
intermediates); |
std::vector<std::string> issuers; |
- // Check that the chain is issued by DOD CA-17. |
+ // Check that the chain is issued by the intermediate. |
issuers.clear(); |
- issuers.push_back(dod_ca_17_issuer); |
+ issuers.push_back(policy_intermediate_dn); |
EXPECT_TRUE(cert_chain->IsIssuedByEncoded(issuers)); |
- // Check that the chain is also issued by DoD Root CA 2. |
+ // Check that the chain is also issued by the root. |
issuers.clear(); |
- issuers.push_back(dod_root_ca_2_issuer); |
+ issuers.push_back(policy_root_dn); |
EXPECT_TRUE(cert_chain->IsIssuedByEncoded(issuers)); |
- // Check that the chain is issued by either one of the two DOD issuers. |
+ // Check that the chain is issued by either the intermediate or the root. |
issuers.clear(); |
- issuers.push_back(dod_ca_17_issuer); |
- issuers.push_back(dod_root_ca_2_issuer); |
+ issuers.push_back(policy_intermediate_dn); |
+ issuers.push_back(policy_root_dn); |
EXPECT_TRUE(cert_chain->IsIssuedByEncoded(issuers)); |
// Check that an empty issuers list returns false. |
issuers.clear(); |
EXPECT_FALSE(cert_chain->IsIssuedByEncoded(issuers)); |
- // Check that the chain is not issued by MIT |
- std::string mit_issuer(reinterpret_cast<const char*>(MITDN), |
- sizeof(MITDN)); |
+ // Check that the chain is not issued by Verisign |
+ std::string mit_issuer(reinterpret_cast<const char*>(VerisignDN), |
+ sizeof(VerisignDN)); |
issuers.clear(); |
issuers.push_back(mit_issuer); |
EXPECT_FALSE(cert_chain->IsIssuedByEncoded(issuers)); |