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/crypto/rsa_private_key.h" | |
6 #include "base/file_path.h" | 5 #include "base/file_path.h" |
7 #include "base/file_util.h" | 6 #include "base/file_util.h" |
8 #include "base/path_service.h" | 7 #include "base/path_service.h" |
9 #include "base/pickle.h" | 8 #include "base/pickle.h" |
10 #include "base/string_split.h" | 9 #include "base/string_split.h" |
| 10 #include "crypto/rsa_private_key.h" |
11 #include "net/base/cert_status_flags.h" | 11 #include "net/base/cert_status_flags.h" |
12 #include "net/base/cert_test_util.h" | 12 #include "net/base/cert_test_util.h" |
13 #include "net/base/cert_verify_result.h" | 13 #include "net/base/cert_verify_result.h" |
14 #include "net/base/net_errors.h" | 14 #include "net/base/net_errors.h" |
15 #include "net/base/test_certificate_data.h" | 15 #include "net/base/test_certificate_data.h" |
16 #include "net/base/test_root_certs.h" | 16 #include "net/base/test_root_certs.h" |
17 #include "net/base/x509_certificate.h" | 17 #include "net/base/x509_certificate.h" |
18 #include "testing/gtest/include/gtest/gtest.h" | 18 #include "testing/gtest/include/gtest/gtest.h" |
19 | 19 |
20 // Unit tests aren't allowed to access external resources. Unfortunately, to | 20 // Unit tests aren't allowed to access external resources. Unfortunately, to |
(...skipping 707 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
728 EXPECT_TRUE(mit_davidben_cert->IsIssuedBy(both_issuers)); | 728 EXPECT_TRUE(mit_davidben_cert->IsIssuedBy(both_issuers)); |
729 EXPECT_FALSE(foaf_me_chromium_test_cert->IsIssuedBy(mit_issuers)); | 729 EXPECT_FALSE(foaf_me_chromium_test_cert->IsIssuedBy(mit_issuers)); |
730 EXPECT_FALSE(mit_davidben_cert->IsIssuedBy(foaf_issuers)); | 730 EXPECT_FALSE(mit_davidben_cert->IsIssuedBy(foaf_issuers)); |
731 } | 731 } |
732 #endif // defined(OS_MACOSX) | 732 #endif // defined(OS_MACOSX) |
733 | 733 |
734 #if defined(USE_NSS) || defined(OS_WIN) || defined(OS_MACOSX) | 734 #if defined(USE_NSS) || defined(OS_WIN) || defined(OS_MACOSX) |
735 // This test creates a self-signed cert from a private key and then verify the | 735 // This test creates a self-signed cert from a private key and then verify the |
736 // content of the certificate. | 736 // content of the certificate. |
737 TEST(X509CertificateTest, CreateSelfSigned) { | 737 TEST(X509CertificateTest, CreateSelfSigned) { |
738 scoped_ptr<base::RSAPrivateKey> private_key( | 738 scoped_ptr<crypto::RSAPrivateKey> private_key( |
739 base::RSAPrivateKey::Create(1024)); | 739 crypto::RSAPrivateKey::Create(1024)); |
740 scoped_refptr<X509Certificate> cert = | 740 scoped_refptr<X509Certificate> cert = |
741 X509Certificate::CreateSelfSigned( | 741 X509Certificate::CreateSelfSigned( |
742 private_key.get(), "CN=subject", 1, base::TimeDelta::FromDays(1)); | 742 private_key.get(), "CN=subject", 1, base::TimeDelta::FromDays(1)); |
743 | 743 |
744 EXPECT_EQ("subject", cert->subject().GetDisplayName()); | 744 EXPECT_EQ("subject", cert->subject().GetDisplayName()); |
745 EXPECT_FALSE(cert->HasExpired()); | 745 EXPECT_FALSE(cert->HasExpired()); |
746 | 746 |
747 const uint8 private_key_info[] = { | 747 const uint8 private_key_info[] = { |
748 0x30, 0x82, 0x02, 0x78, 0x02, 0x01, 0x00, 0x30, | 748 0x30, 0x82, 0x02, 0x78, 0x02, 0x01, 0x00, 0x30, |
749 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, | 749 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
824 0xc6, 0xa4, 0x92, 0xd1, 0xce, 0x6c, 0x72, 0xfb, | 824 0xc6, 0xa4, 0x92, 0xd1, 0xce, 0x6c, 0x72, 0xfb, |
825 0x21, 0xb3, 0x02, 0x87, 0xe4, 0xfd, 0x61, 0xca, | 825 0x21, 0xb3, 0x02, 0x87, 0xe4, 0xfd, 0x61, 0xca, |
826 0x00, 0x42, 0x19, 0xf0, 0xda, 0x5a, 0x53, 0xe3, | 826 0x00, 0x42, 0x19, 0xf0, 0xda, 0x5a, 0x53, 0xe3, |
827 0xb1, 0xc5, 0x15, 0xf3 | 827 0xb1, 0xc5, 0x15, 0xf3 |
828 }; | 828 }; |
829 | 829 |
830 std::vector<uint8> input; | 830 std::vector<uint8> input; |
831 input.resize(sizeof(private_key_info)); | 831 input.resize(sizeof(private_key_info)); |
832 memcpy(&input.front(), private_key_info, sizeof(private_key_info)); | 832 memcpy(&input.front(), private_key_info, sizeof(private_key_info)); |
833 | 833 |
834 private_key.reset(base::RSAPrivateKey::CreateFromPrivateKeyInfo(input)); | 834 private_key.reset(crypto::RSAPrivateKey::CreateFromPrivateKeyInfo(input)); |
835 ASSERT_TRUE(private_key.get()); | 835 ASSERT_TRUE(private_key.get()); |
836 | 836 |
837 cert = X509Certificate::CreateSelfSigned( | 837 cert = X509Certificate::CreateSelfSigned( |
838 private_key.get(), "CN=subject", 1, base::TimeDelta::FromDays(1)); | 838 private_key.get(), "CN=subject", 1, base::TimeDelta::FromDays(1)); |
839 | 839 |
840 EXPECT_EQ("subject", cert->subject().GetDisplayName()); | 840 EXPECT_EQ("subject", cert->subject().GetDisplayName()); |
841 EXPECT_FALSE(cert->HasExpired()); | 841 EXPECT_FALSE(cert->HasExpired()); |
842 } | 842 } |
843 | 843 |
844 TEST(X509CertificateTest, GetDEREncoded) { | 844 TEST(X509CertificateTest, GetDEREncoded) { |
845 scoped_ptr<base::RSAPrivateKey> private_key( | 845 scoped_ptr<crypto::RSAPrivateKey> private_key( |
846 base::RSAPrivateKey::Create(1024)); | 846 crypto::RSAPrivateKey::Create(1024)); |
847 scoped_refptr<X509Certificate> cert = | 847 scoped_refptr<X509Certificate> cert = |
848 X509Certificate::CreateSelfSigned( | 848 X509Certificate::CreateSelfSigned( |
849 private_key.get(), "CN=subject", 0, base::TimeDelta::FromDays(1)); | 849 private_key.get(), "CN=subject", 0, base::TimeDelta::FromDays(1)); |
850 | 850 |
851 std::string der_cert; | 851 std::string der_cert; |
852 EXPECT_TRUE(cert->GetDEREncoded(&der_cert)); | 852 EXPECT_TRUE(cert->GetDEREncoded(&der_cert)); |
853 EXPECT_FALSE(der_cert.empty()); | 853 EXPECT_FALSE(der_cert.empty()); |
854 } | 854 } |
855 #endif | 855 #endif |
856 | 856 |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
993 EXPECT_EQ(test_data.expected, | 993 EXPECT_EQ(test_data.expected, |
994 X509Certificate::VerifyHostname(test_data.hostname, cert_names)) | 994 X509Certificate::VerifyHostname(test_data.hostname, cert_names)) |
995 << "Host [" << test_data.hostname | 995 << "Host [" << test_data.hostname |
996 << "], cert name [" << test_data.cert_names << "]"; | 996 << "], cert name [" << test_data.cert_names << "]"; |
997 } | 997 } |
998 | 998 |
999 INSTANTIATE_TEST_CASE_P(, X509CertificateNameVerifyTest, | 999 INSTANTIATE_TEST_CASE_P(, X509CertificateNameVerifyTest, |
1000 testing::ValuesIn(kNameVerifyTestData)); | 1000 testing::ValuesIn(kNameVerifyTestData)); |
1001 | 1001 |
1002 } // namespace net | 1002 } // namespace net |
OLD | NEW |