OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/file_path.h" | 5 #include "base/file_path.h" |
6 #include "base/file_util.h" | 6 #include "base/file_util.h" |
7 #include "base/path_service.h" | 7 #include "base/path_service.h" |
8 #include "base/pickle.h" | 8 #include "base/pickle.h" |
9 #include "base/sha1.h" | 9 #include "base/sha1.h" |
10 #include "base/string_number_conversions.h" | 10 #include "base/string_number_conversions.h" |
(...skipping 577 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
588 "diginotar_pkioverheid_g2.pem", | 588 "diginotar_pkioverheid_g2.pem", |
589 NULL, | 589 NULL, |
590 }; | 590 }; |
591 | 591 |
592 FilePath certs_dir = GetTestCertsDirectory(); | 592 FilePath certs_dir = GetTestCertsDirectory(); |
593 | 593 |
594 for (size_t i = 0; kDigiNotarFilenames[i]; i++) { | 594 for (size_t i = 0; kDigiNotarFilenames[i]; i++) { |
595 scoped_refptr<X509Certificate> diginotar_cert = | 595 scoped_refptr<X509Certificate> diginotar_cert = |
596 ImportCertFromFile(certs_dir, kDigiNotarFilenames[i]); | 596 ImportCertFromFile(certs_dir, kDigiNotarFilenames[i]); |
597 std::string der_bytes; | 597 std::string der_bytes; |
598 ASSERT_TRUE(diginotar_cert->GetDEREncoded(&der_bytes)); | 598 ASSERT_TRUE(X509Certificate::GetDEREncoded( |
| 599 diginotar_cert->os_cert_handle(), &der_bytes)); |
599 | 600 |
600 base::StringPiece spki; | 601 base::StringPiece spki; |
601 ASSERT_TRUE(asn1::ExtractSPKIFromDERCert(der_bytes, &spki)); | 602 ASSERT_TRUE(asn1::ExtractSPKIFromDERCert(der_bytes, &spki)); |
602 | 603 |
603 std::string spki_sha1 = base::SHA1HashString(spki.as_string()); | 604 std::string spki_sha1 = base::SHA1HashString(spki.as_string()); |
604 | 605 |
605 std::vector<SHA1Fingerprint> public_keys; | 606 std::vector<SHA1Fingerprint> public_keys; |
606 SHA1Fingerprint fingerprint; | 607 SHA1Fingerprint fingerprint; |
607 ASSERT_EQ(sizeof(fingerprint.data), spki_sha1.size()); | 608 ASSERT_EQ(sizeof(fingerprint.data), spki_sha1.size()); |
608 memcpy(fingerprint.data, spki_sha1.data(), spki_sha1.size()); | 609 memcpy(fingerprint.data, spki_sha1.data(), spki_sha1.size()); |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
646 "\x15\x60\xde\x65\x4e\x03\x9f\xd0\x08\x82" | 647 "\x15\x60\xde\x65\x4e\x03\x9f\xd0\x08\x82" |
647 "\xa9\x6a\xc4\x65\x8e\x6f\x92\x06\x84\x35"; | 648 "\xa9\x6a\xc4\x65\x8e\x6f\x92\x06\x84\x35"; |
648 | 649 |
649 TEST(X509CertificateTest, ExtractSPKIFromDERCert) { | 650 TEST(X509CertificateTest, ExtractSPKIFromDERCert) { |
650 FilePath certs_dir = GetTestCertsDirectory(); | 651 FilePath certs_dir = GetTestCertsDirectory(); |
651 scoped_refptr<X509Certificate> cert = | 652 scoped_refptr<X509Certificate> cert = |
652 ImportCertFromFile(certs_dir, "nist.der"); | 653 ImportCertFromFile(certs_dir, "nist.der"); |
653 ASSERT_NE(static_cast<X509Certificate*>(NULL), cert); | 654 ASSERT_NE(static_cast<X509Certificate*>(NULL), cert); |
654 | 655 |
655 std::string derBytes; | 656 std::string derBytes; |
656 EXPECT_TRUE(cert->GetDEREncoded(&derBytes)); | 657 EXPECT_TRUE(X509Certificate::GetDEREncoded(cert->os_cert_handle(), |
| 658 &derBytes)); |
657 | 659 |
658 base::StringPiece spkiBytes; | 660 base::StringPiece spkiBytes; |
659 EXPECT_TRUE(asn1::ExtractSPKIFromDERCert(derBytes, &spkiBytes)); | 661 EXPECT_TRUE(asn1::ExtractSPKIFromDERCert(derBytes, &spkiBytes)); |
660 | 662 |
661 uint8 hash[base::kSHA1Length]; | 663 uint8 hash[base::kSHA1Length]; |
662 base::SHA1HashBytes(reinterpret_cast<const uint8*>(spkiBytes.data()), | 664 base::SHA1HashBytes(reinterpret_cast<const uint8*>(spkiBytes.data()), |
663 spkiBytes.size(), hash); | 665 spkiBytes.size(), hash); |
664 | 666 |
665 EXPECT_TRUE(0 == memcmp(hash, nistSPKIHash, sizeof(hash))); | 667 EXPECT_TRUE(0 == memcmp(hash, nistSPKIHash, sizeof(hash))); |
666 } | 668 } |
667 | 669 |
668 TEST(X509CertificateTest, ExtractCRLURLsFromDERCert) { | 670 TEST(X509CertificateTest, ExtractCRLURLsFromDERCert) { |
669 FilePath certs_dir = GetTestCertsDirectory(); | 671 FilePath certs_dir = GetTestCertsDirectory(); |
670 scoped_refptr<X509Certificate> cert = | 672 scoped_refptr<X509Certificate> cert = |
671 ImportCertFromFile(certs_dir, "nist.der"); | 673 ImportCertFromFile(certs_dir, "nist.der"); |
672 ASSERT_NE(static_cast<X509Certificate*>(NULL), cert); | 674 ASSERT_NE(static_cast<X509Certificate*>(NULL), cert); |
673 | 675 |
674 std::string derBytes; | 676 std::string derBytes; |
675 EXPECT_TRUE(cert->GetDEREncoded(&derBytes)); | 677 EXPECT_TRUE(X509Certificate::GetDEREncoded(cert->os_cert_handle(), |
| 678 &derBytes)); |
676 | 679 |
677 std::vector<base::StringPiece> crl_urls; | 680 std::vector<base::StringPiece> crl_urls; |
678 EXPECT_TRUE(asn1::ExtractCRLURLsFromDERCert(derBytes, &crl_urls)); | 681 EXPECT_TRUE(asn1::ExtractCRLURLsFromDERCert(derBytes, &crl_urls)); |
679 | 682 |
680 EXPECT_EQ(1u, crl_urls.size()); | 683 EXPECT_EQ(1u, crl_urls.size()); |
681 if (crl_urls.size() > 0) { | 684 if (crl_urls.size() > 0) { |
682 EXPECT_EQ("http://SVRSecure-G3-crl.verisign.com/SVRSecureG3.crl", | 685 EXPECT_EQ("http://SVRSecure-G3-crl.verisign.com/SVRSecureG3.crl", |
683 crl_urls[0].as_string()); | 686 crl_urls[0].as_string()); |
684 } | 687 } |
685 } | 688 } |
(...skipping 527 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1213 } | 1216 } |
1214 | 1217 |
1215 TEST(X509CertificateTest, GetDEREncoded) { | 1218 TEST(X509CertificateTest, GetDEREncoded) { |
1216 scoped_ptr<crypto::RSAPrivateKey> private_key( | 1219 scoped_ptr<crypto::RSAPrivateKey> private_key( |
1217 crypto::RSAPrivateKey::Create(1024)); | 1220 crypto::RSAPrivateKey::Create(1024)); |
1218 scoped_refptr<X509Certificate> cert = | 1221 scoped_refptr<X509Certificate> cert = |
1219 X509Certificate::CreateSelfSigned( | 1222 X509Certificate::CreateSelfSigned( |
1220 private_key.get(), "CN=subject", 0, base::TimeDelta::FromDays(1)); | 1223 private_key.get(), "CN=subject", 0, base::TimeDelta::FromDays(1)); |
1221 | 1224 |
1222 std::string der_cert; | 1225 std::string der_cert; |
1223 EXPECT_TRUE(cert->GetDEREncoded(&der_cert)); | 1226 EXPECT_TRUE(X509Certificate::GetDEREncoded(cert->os_cert_handle(), |
| 1227 &der_cert)); |
1224 EXPECT_FALSE(der_cert.empty()); | 1228 EXPECT_FALSE(der_cert.empty()); |
1225 } | 1229 } |
1226 #endif | 1230 #endif |
1227 | 1231 |
1228 class X509CertificateParseTest | 1232 class X509CertificateParseTest |
1229 : public testing::TestWithParam<CertificateFormatTestData> { | 1233 : public testing::TestWithParam<CertificateFormatTestData> { |
1230 public: | 1234 public: |
1231 virtual ~X509CertificateParseTest() {} | 1235 virtual ~X509CertificateParseTest() {} |
1232 virtual void SetUp() { | 1236 virtual void SetUp() { |
1233 test_data_ = GetParam(); | 1237 test_data_ = GetParam(); |
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1495 } | 1499 } |
1496 | 1500 |
1497 EXPECT_EQ(test_data.expected, X509Certificate::VerifyHostname( | 1501 EXPECT_EQ(test_data.expected, X509Certificate::VerifyHostname( |
1498 test_data.hostname, common_name, dns_names, ip_addressses)); | 1502 test_data.hostname, common_name, dns_names, ip_addressses)); |
1499 } | 1503 } |
1500 | 1504 |
1501 INSTANTIATE_TEST_CASE_P(, X509CertificateNameVerifyTest, | 1505 INSTANTIATE_TEST_CASE_P(, X509CertificateNameVerifyTest, |
1502 testing::ValuesIn(kNameVerifyTestData)); | 1506 testing::ValuesIn(kNameVerifyTestData)); |
1503 | 1507 |
1504 } // namespace net | 1508 } // namespace net |
OLD | NEW |