Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(214)

Side by Side Diff: net/base/x509_certificate_unittest.cc

Issue 6312157: Add ability to create self signed certs to mac. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: More code cleanup Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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" 5 #include "base/crypto/rsa_private_key.h"
6 #include "base/file_path.h" 6 #include "base/file_path.h"
7 #include "base/file_util.h" 7 #include "base/file_util.h"
8 #include "base/path_service.h" 8 #include "base/path_service.h"
9 #include "base/pickle.h" 9 #include "base/pickle.h"
10 #include "net/base/cert_status_flags.h" 10 #include "net/base/cert_status_flags.h"
(...skipping 641 matching lines...) Expand 10 before | Expand all | Expand 10 after
652 std::vector<CertPrincipal> both_issuers; 652 std::vector<CertPrincipal> both_issuers;
653 both_issuers.push_back(mit_issuer); 653 both_issuers.push_back(mit_issuer);
654 both_issuers.push_back(foaf_issuer); 654 both_issuers.push_back(foaf_issuer);
655 EXPECT_TRUE(foaf_me_chromium_test_cert->IsIssuedBy(both_issuers)); 655 EXPECT_TRUE(foaf_me_chromium_test_cert->IsIssuedBy(both_issuers));
656 EXPECT_TRUE(mit_davidben_cert->IsIssuedBy(both_issuers)); 656 EXPECT_TRUE(mit_davidben_cert->IsIssuedBy(both_issuers));
657 EXPECT_FALSE(foaf_me_chromium_test_cert->IsIssuedBy(mit_issuers)); 657 EXPECT_FALSE(foaf_me_chromium_test_cert->IsIssuedBy(mit_issuers));
658 EXPECT_FALSE(mit_davidben_cert->IsIssuedBy(foaf_issuers)); 658 EXPECT_FALSE(mit_davidben_cert->IsIssuedBy(foaf_issuers));
659 } 659 }
660 #endif // defined(OS_MACOSX) 660 #endif // defined(OS_MACOSX)
661 661
662 #if defined(USE_NSS) || defined(OS_WIN) 662 #if defined(USE_NSS) || defined(OS_WIN) || defined(OS_MACOSX)
663 // This test creates a self-signed cert from a private key and then verify the 663 // This test creates a self-signed cert from a private key and then verify the
664 // content of the certificate. 664 // content of the certificate.
665 TEST(X509CertificateTest, CreateSelfSigned) { 665 TEST(X509CertificateTest, CreateSelfSigned) {
666 scoped_ptr<base::RSAPrivateKey> private_key( 666 scoped_ptr<base::RSAPrivateKey> private_key(
667 base::RSAPrivateKey::Create(1024)); 667 base::RSAPrivateKey::Create(1024));
668 scoped_refptr<net::X509Certificate> cert = 668 scoped_refptr<net::X509Certificate> cert =
669 net::X509Certificate::CreateSelfSigned( 669 net::X509Certificate::CreateSelfSigned(
670 private_key.get(), "CN=subject", 1, base::TimeDelta::FromDays(1)); 670 private_key.get(), "CN=subject", 1, base::TimeDelta::FromDays(1));
671 671
672 EXPECT_EQ("subject", cert->subject().GetDisplayName()); 672 EXPECT_EQ("subject", cert->subject().GetDisplayName());
673 EXPECT_FALSE(cert->HasExpired()); 673 EXPECT_FALSE(cert->HasExpired());
674
675 const uint8 private_key_info[] = {
676 0x30, 0x82, 0x02, 0x78, 0x02, 0x01, 0x00, 0x30,
677 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
678 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x04, 0x82,
679 0x02, 0x62, 0x30, 0x82, 0x02, 0x5e, 0x02, 0x01,
680 0x00, 0x02, 0x81, 0x81, 0x00, 0xb8, 0x7f, 0x2b,
681 0x20, 0xdc, 0x7c, 0x9b, 0x0c, 0xdc, 0x51, 0x61,
682 0x99, 0x0d, 0x36, 0x0f, 0xd4, 0x66, 0x88, 0x08,
683 0x55, 0x84, 0xd5, 0x3a, 0xbf, 0x2b, 0xa4, 0x64,
684 0x85, 0x7b, 0x0c, 0x04, 0x13, 0x3f, 0x8d, 0xf4,
685 0xbc, 0x38, 0x0d, 0x49, 0xfe, 0x6b, 0xc4, 0x5a,
686 0xb0, 0x40, 0x53, 0x3a, 0xd7, 0x66, 0x09, 0x0f,
687 0x9e, 0x36, 0x74, 0x30, 0xda, 0x8a, 0x31, 0x4f,
688 0x1f, 0x14, 0x50, 0xd7, 0xc7, 0x20, 0x94, 0x17,
689 0xde, 0x4e, 0xb9, 0x57, 0x5e, 0x7e, 0x0a, 0xe5,
690 0xb2, 0x65, 0x7a, 0x89, 0x4e, 0xb6, 0x47, 0xff,
691 0x1c, 0xbd, 0xb7, 0x38, 0x13, 0xaf, 0x47, 0x85,
692 0x84, 0x32, 0x33, 0xf3, 0x17, 0x49, 0xbf, 0xe9,
693 0x96, 0xd0, 0xd6, 0x14, 0x6f, 0x13, 0x8d, 0xc5,
694 0xfc, 0x2c, 0x72, 0xba, 0xac, 0xea, 0x7e, 0x18,
695 0x53, 0x56, 0xa6, 0x83, 0xa2, 0xce, 0x93, 0x93,
696 0xe7, 0x1f, 0x0f, 0xe6, 0x0f, 0x02, 0x03, 0x01,
697 0x00, 0x01, 0x02, 0x81, 0x80, 0x03, 0x61, 0x89,
698 0x37, 0xcb, 0xf2, 0x98, 0xa0, 0xce, 0xb4, 0xcb,
699 0x16, 0x13, 0xf0, 0xe6, 0xaf, 0x5c, 0xc5, 0xa7,
700 0x69, 0x71, 0xca, 0xba, 0x8d, 0xe0, 0x4d, 0xdd,
701 0xed, 0xb8, 0x48, 0x8b, 0x16, 0x93, 0x36, 0x95,
702 0xc2, 0x91, 0x40, 0x65, 0x17, 0xbd, 0x7f, 0xd6,
703 0xad, 0x9e, 0x30, 0x28, 0x46, 0xe4, 0x3e, 0xcc,
704 0x43, 0x78, 0xf9, 0xfe, 0x1f, 0x33, 0x23, 0x1e,
705 0x31, 0x12, 0x9d, 0x3c, 0xa7, 0x08, 0x82, 0x7b,
706 0x7d, 0x25, 0x4e, 0x5e, 0x19, 0xa8, 0x9b, 0xed,
707 0x86, 0xb2, 0xcb, 0x3c, 0xfe, 0x4e, 0xa1, 0xfa,
708 0x62, 0x87, 0x3a, 0x17, 0xf7, 0x60, 0xec, 0x38,
709 0x29, 0xe8, 0x4f, 0x34, 0x9f, 0x76, 0x9d, 0xee,
710 0xa3, 0xf6, 0x85, 0x6b, 0x84, 0x43, 0xc9, 0x1e,
711 0x01, 0xff, 0xfd, 0xd0, 0x29, 0x4c, 0xfa, 0x8e,
712 0x57, 0x0c, 0xc0, 0x71, 0xa5, 0xbb, 0x88, 0x46,
713 0x29, 0x5c, 0xc0, 0x4f, 0x01, 0x02, 0x41, 0x00,
714 0xf5, 0x83, 0xa4, 0x64, 0x4a, 0xf2, 0xdd, 0x8c,
715 0x2c, 0xed, 0xa8, 0xd5, 0x60, 0x5a, 0xe4, 0xc7,
716 0xcc, 0x61, 0xcd, 0x38, 0x42, 0x20, 0xd3, 0x82,
717 0x18, 0xf2, 0x35, 0x00, 0x72, 0x2d, 0xf7, 0x89,
718 0x80, 0x67, 0xb5, 0x93, 0x05, 0x5f, 0xdd, 0x42,
719 0xba, 0x16, 0x1a, 0xea, 0x15, 0xc6, 0xf0, 0xb8,
720 0x8c, 0xbc, 0xbf, 0x54, 0x9e, 0xf1, 0xc1, 0xb2,
721 0xb3, 0x8b, 0xb6, 0x26, 0x02, 0x30, 0xc4, 0x81,
722 0x02, 0x41, 0x00, 0xc0, 0x60, 0x62, 0x80, 0xe1,
723 0x22, 0x78, 0xf6, 0x9d, 0x83, 0x18, 0xeb, 0x72,
724 0x45, 0xd7, 0xc8, 0x01, 0x7f, 0xa9, 0xca, 0x8f,
725 0x7d, 0xd6, 0xb8, 0x31, 0x2b, 0x84, 0x7f, 0x62,
726 0xd9, 0xa9, 0x22, 0x17, 0x7d, 0x06, 0x35, 0x6c,
727 0xf3, 0xc1, 0x94, 0x17, 0x85, 0x5a, 0xaf, 0x9c,
728 0x5c, 0x09, 0x3c, 0xcf, 0x2f, 0x44, 0x9d, 0xb6,
729 0x52, 0x68, 0x5f, 0xf9, 0x59, 0xc8, 0x84, 0x2b,
730 0x39, 0x22, 0x8f, 0x02, 0x41, 0x00, 0xb2, 0x04,
731 0xe2, 0x0e, 0x56, 0xca, 0x03, 0x1a, 0xc0, 0xf9,
732 0x12, 0x92, 0xa5, 0x6b, 0x42, 0xb8, 0x1c, 0xda,
733 0x4d, 0x93, 0x9d, 0x5f, 0x6f, 0xfd, 0xc5, 0x58,
734 0xda, 0x55, 0x98, 0x74, 0xfc, 0x28, 0x17, 0x93,
735 0x1b, 0x75, 0x9f, 0x50, 0x03, 0x7f, 0x7e, 0xae,
736 0xc8, 0x95, 0x33, 0x75, 0x2c, 0xd6, 0xa4, 0x35,
737 0xb8, 0x06, 0x03, 0xba, 0x08, 0x59, 0x2b, 0x17,
738 0x02, 0xdc, 0x4c, 0x7a, 0x50, 0x01, 0x02, 0x41,
739 0x00, 0x9d, 0xdb, 0x39, 0x59, 0x09, 0xe4, 0x30,
740 0xa0, 0x24, 0xf5, 0xdb, 0x2f, 0xf0, 0x2f, 0xf1,
741 0x75, 0x74, 0x0d, 0x5e, 0xb5, 0x11, 0x73, 0xb0,
742 0x0a, 0xaa, 0x86, 0x4c, 0x0d, 0xff, 0x7e, 0x1d,
743 0xb4, 0x14, 0xd4, 0x09, 0x91, 0x33, 0x5a, 0xfd,
744 0xa0, 0x58, 0x80, 0x9b, 0xbe, 0x78, 0x2e, 0x69,
745 0x82, 0x15, 0x7c, 0x72, 0xf0, 0x7b, 0x18, 0x39,
746 0xff, 0x6e, 0xeb, 0xc6, 0x86, 0xf5, 0xb4, 0xc7,
747 0x6f, 0x02, 0x41, 0x00, 0x8d, 0x1a, 0x37, 0x0f,
748 0x76, 0xc4, 0x82, 0xfa, 0x5c, 0xc3, 0x79, 0x35,
749 0x3e, 0x70, 0x8a, 0xbf, 0x27, 0x49, 0xb0, 0x99,
750 0x63, 0xcb, 0x77, 0x5f, 0xa8, 0x82, 0x65, 0xf6,
751 0x03, 0x52, 0x51, 0xf1, 0xae, 0x2e, 0x05, 0xb3,
752 0xc6, 0xa4, 0x92, 0xd1, 0xce, 0x6c, 0x72, 0xfb,
753 0x21, 0xb3, 0x02, 0x87, 0xe4, 0xfd, 0x61, 0xca,
754 0x00, 0x42, 0x19, 0xf0, 0xda, 0x5a, 0x53, 0xe3,
755 0xb1, 0xc5, 0x15, 0xf3
756 };
757
758 std::vector<uint8> input;
759 input.resize(sizeof(private_key_info));
760 memcpy(&input.front(), private_key_info, sizeof(private_key_info));
761
762 private_key.reset(base::RSAPrivateKey::CreateFromPrivateKeyInfo(input));
763 ASSERT_TRUE(private_key.get());
764
765 cert = net::X509Certificate::CreateSelfSigned(
766 private_key.get(), "CN=subject", 1, base::TimeDelta::FromDays(1));
767
768 EXPECT_EQ("subject", cert->subject().GetDisplayName());
769 EXPECT_FALSE(cert->HasExpired());
674 } 770 }
675 771
676 TEST(X509CertificateTest, GetDEREncoded) { 772 TEST(X509CertificateTest, GetDEREncoded) {
677 scoped_ptr<base::RSAPrivateKey> private_key( 773 scoped_ptr<base::RSAPrivateKey> private_key(
678 base::RSAPrivateKey::Create(1024)); 774 base::RSAPrivateKey::Create(1024));
679 scoped_refptr<net::X509Certificate> cert = 775 scoped_refptr<net::X509Certificate> cert =
680 net::X509Certificate::CreateSelfSigned( 776 net::X509Certificate::CreateSelfSigned(
681 private_key.get(), "CN=subject", 0, base::TimeDelta::FromDays(1)); 777 private_key.get(), "CN=subject", 0, base::TimeDelta::FromDays(1));
682 778
683 std::string der_cert; 779 std::string der_cert;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
728 824
729 for (size_t j = 0; j < 20; ++j) 825 for (size_t j = 0; j < 20; ++j)
730 EXPECT_EQ(expected_fingerprint[j], actual_fingerprint.data[j]); 826 EXPECT_EQ(expected_fingerprint[j], actual_fingerprint.data[j]);
731 } 827 }
732 } 828 }
733 829
734 INSTANTIATE_TEST_CASE_P(, X509CertificateParseTest, 830 INSTANTIATE_TEST_CASE_P(, X509CertificateParseTest,
735 testing::ValuesIn(FormatTestData)); 831 testing::ValuesIn(FormatTestData));
736 832
737 } // namespace net 833 } // namespace net
OLDNEW
« net/base/x509_certificate_mac.cc ('K') | « net/base/x509_certificate_mac.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698