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

Side by Side Diff: net/cert/x509_util_unittest.cc

Issue 17265013: Remove platform-specific implementations of RSAPrivateKey and SignatureCreator (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 6 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "net/cert/x509_util.h" 5 #include "net/cert/x509_util.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/memory/scoped_ptr.h"
9 #include "base/time.h" 10 #include "base/time.h"
11 #include "crypto/rsa_private_key.h"
10 #include "net/cert/x509_certificate.h" 12 #include "net/cert/x509_certificate.h"
11 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
12 14
13 namespace net { 15 namespace net {
14 16
15 namespace x509_util { 17 namespace x509_util {
16 18
17 TEST(X509UtilTest, SortClientCertificates) { 19 TEST(X509UtilTest, SortClientCertificates) {
18 CertificateList certs; 20 CertificateList certs;
19 21
(...skipping 22 matching lines...) Expand all
42 ASSERT_TRUE(certs[1].get()); 44 ASSERT_TRUE(certs[1].get());
43 EXPECT_EQ("older cert", certs[1]->subject().common_name); 45 EXPECT_EQ("older cert", certs[1]->subject().common_name);
44 ASSERT_TRUE(certs[2].get()); 46 ASSERT_TRUE(certs[2].get());
45 EXPECT_EQ("not yet valid", certs[2]->subject().common_name); 47 EXPECT_EQ("not yet valid", certs[2]->subject().common_name);
46 ASSERT_TRUE(certs[3].get()); 48 ASSERT_TRUE(certs[3].get());
47 EXPECT_EQ("expired", certs[3]->subject().common_name); 49 EXPECT_EQ("expired", certs[3]->subject().common_name);
48 ASSERT_FALSE(certs[4].get()); 50 ASSERT_FALSE(certs[4].get());
49 ASSERT_FALSE(certs[5].get()); 51 ASSERT_FALSE(certs[5].get());
50 } 52 }
51 53
54 #if defined(USE_NSS) || defined(OS_WIN) || defined(OS_MACOSX)
55 // This test creates a self-signed cert from a private key and then verify the
56 // content of the certificate.
57 TEST(X509UtilTest, CreateSelfSigned) {
58 scoped_ptr<crypto::RSAPrivateKey> private_key(
59 crypto::RSAPrivateKey::Create(1024));
60
61 std::string der_cert;
62 ASSERT_TRUE(x509_util::CreateSelfSignedCert(
63 private_key.get(),
64 "CN=subject",
65 1,
66 base::Time::Now(),
67 base::Time::Now() + base::TimeDelta::FromDays(1),
68 &der_cert));
69
70 scoped_refptr<X509Certificate> cert(X509Certificate::CreateFromBytes(
71 der_cert.data(), der_cert.size()));
72 ASSERT_TRUE(cert.get());
73
74 EXPECT_EQ("subject", cert->subject().GetDisplayName());
75 EXPECT_FALSE(cert->HasExpired());
76
77 const uint8 private_key_info[] = {
78 0x30, 0x82, 0x02, 0x78, 0x02, 0x01, 0x00, 0x30,
79 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
80 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x04, 0x82,
81 0x02, 0x62, 0x30, 0x82, 0x02, 0x5e, 0x02, 0x01,
82 0x00, 0x02, 0x81, 0x81, 0x00, 0xb8, 0x7f, 0x2b,
83 0x20, 0xdc, 0x7c, 0x9b, 0x0c, 0xdc, 0x51, 0x61,
84 0x99, 0x0d, 0x36, 0x0f, 0xd4, 0x66, 0x88, 0x08,
85 0x55, 0x84, 0xd5, 0x3a, 0xbf, 0x2b, 0xa4, 0x64,
86 0x85, 0x7b, 0x0c, 0x04, 0x13, 0x3f, 0x8d, 0xf4,
87 0xbc, 0x38, 0x0d, 0x49, 0xfe, 0x6b, 0xc4, 0x5a,
88 0xb0, 0x40, 0x53, 0x3a, 0xd7, 0x66, 0x09, 0x0f,
89 0x9e, 0x36, 0x74, 0x30, 0xda, 0x8a, 0x31, 0x4f,
90 0x1f, 0x14, 0x50, 0xd7, 0xc7, 0x20, 0x94, 0x17,
91 0xde, 0x4e, 0xb9, 0x57, 0x5e, 0x7e, 0x0a, 0xe5,
92 0xb2, 0x65, 0x7a, 0x89, 0x4e, 0xb6, 0x47, 0xff,
93 0x1c, 0xbd, 0xb7, 0x38, 0x13, 0xaf, 0x47, 0x85,
94 0x84, 0x32, 0x33, 0xf3, 0x17, 0x49, 0xbf, 0xe9,
95 0x96, 0xd0, 0xd6, 0x14, 0x6f, 0x13, 0x8d, 0xc5,
96 0xfc, 0x2c, 0x72, 0xba, 0xac, 0xea, 0x7e, 0x18,
97 0x53, 0x56, 0xa6, 0x83, 0xa2, 0xce, 0x93, 0x93,
98 0xe7, 0x1f, 0x0f, 0xe6, 0x0f, 0x02, 0x03, 0x01,
99 0x00, 0x01, 0x02, 0x81, 0x80, 0x03, 0x61, 0x89,
100 0x37, 0xcb, 0xf2, 0x98, 0xa0, 0xce, 0xb4, 0xcb,
101 0x16, 0x13, 0xf0, 0xe6, 0xaf, 0x5c, 0xc5, 0xa7,
102 0x69, 0x71, 0xca, 0xba, 0x8d, 0xe0, 0x4d, 0xdd,
103 0xed, 0xb8, 0x48, 0x8b, 0x16, 0x93, 0x36, 0x95,
104 0xc2, 0x91, 0x40, 0x65, 0x17, 0xbd, 0x7f, 0xd6,
105 0xad, 0x9e, 0x30, 0x28, 0x46, 0xe4, 0x3e, 0xcc,
106 0x43, 0x78, 0xf9, 0xfe, 0x1f, 0x33, 0x23, 0x1e,
107 0x31, 0x12, 0x9d, 0x3c, 0xa7, 0x08, 0x82, 0x7b,
108 0x7d, 0x25, 0x4e, 0x5e, 0x19, 0xa8, 0x9b, 0xed,
109 0x86, 0xb2, 0xcb, 0x3c, 0xfe, 0x4e, 0xa1, 0xfa,
110 0x62, 0x87, 0x3a, 0x17, 0xf7, 0x60, 0xec, 0x38,
111 0x29, 0xe8, 0x4f, 0x34, 0x9f, 0x76, 0x9d, 0xee,
112 0xa3, 0xf6, 0x85, 0x6b, 0x84, 0x43, 0xc9, 0x1e,
113 0x01, 0xff, 0xfd, 0xd0, 0x29, 0x4c, 0xfa, 0x8e,
114 0x57, 0x0c, 0xc0, 0x71, 0xa5, 0xbb, 0x88, 0x46,
115 0x29, 0x5c, 0xc0, 0x4f, 0x01, 0x02, 0x41, 0x00,
116 0xf5, 0x83, 0xa4, 0x64, 0x4a, 0xf2, 0xdd, 0x8c,
117 0x2c, 0xed, 0xa8, 0xd5, 0x60, 0x5a, 0xe4, 0xc7,
118 0xcc, 0x61, 0xcd, 0x38, 0x42, 0x20, 0xd3, 0x82,
119 0x18, 0xf2, 0x35, 0x00, 0x72, 0x2d, 0xf7, 0x89,
120 0x80, 0x67, 0xb5, 0x93, 0x05, 0x5f, 0xdd, 0x42,
121 0xba, 0x16, 0x1a, 0xea, 0x15, 0xc6, 0xf0, 0xb8,
122 0x8c, 0xbc, 0xbf, 0x54, 0x9e, 0xf1, 0xc1, 0xb2,
123 0xb3, 0x8b, 0xb6, 0x26, 0x02, 0x30, 0xc4, 0x81,
124 0x02, 0x41, 0x00, 0xc0, 0x60, 0x62, 0x80, 0xe1,
125 0x22, 0x78, 0xf6, 0x9d, 0x83, 0x18, 0xeb, 0x72,
126 0x45, 0xd7, 0xc8, 0x01, 0x7f, 0xa9, 0xca, 0x8f,
127 0x7d, 0xd6, 0xb8, 0x31, 0x2b, 0x84, 0x7f, 0x62,
128 0xd9, 0xa9, 0x22, 0x17, 0x7d, 0x06, 0x35, 0x6c,
129 0xf3, 0xc1, 0x94, 0x17, 0x85, 0x5a, 0xaf, 0x9c,
130 0x5c, 0x09, 0x3c, 0xcf, 0x2f, 0x44, 0x9d, 0xb6,
131 0x52, 0x68, 0x5f, 0xf9, 0x59, 0xc8, 0x84, 0x2b,
132 0x39, 0x22, 0x8f, 0x02, 0x41, 0x00, 0xb2, 0x04,
133 0xe2, 0x0e, 0x56, 0xca, 0x03, 0x1a, 0xc0, 0xf9,
134 0x12, 0x92, 0xa5, 0x6b, 0x42, 0xb8, 0x1c, 0xda,
135 0x4d, 0x93, 0x9d, 0x5f, 0x6f, 0xfd, 0xc5, 0x58,
136 0xda, 0x55, 0x98, 0x74, 0xfc, 0x28, 0x17, 0x93,
137 0x1b, 0x75, 0x9f, 0x50, 0x03, 0x7f, 0x7e, 0xae,
138 0xc8, 0x95, 0x33, 0x75, 0x2c, 0xd6, 0xa4, 0x35,
139 0xb8, 0x06, 0x03, 0xba, 0x08, 0x59, 0x2b, 0x17,
140 0x02, 0xdc, 0x4c, 0x7a, 0x50, 0x01, 0x02, 0x41,
141 0x00, 0x9d, 0xdb, 0x39, 0x59, 0x09, 0xe4, 0x30,
142 0xa0, 0x24, 0xf5, 0xdb, 0x2f, 0xf0, 0x2f, 0xf1,
143 0x75, 0x74, 0x0d, 0x5e, 0xb5, 0x11, 0x73, 0xb0,
144 0x0a, 0xaa, 0x86, 0x4c, 0x0d, 0xff, 0x7e, 0x1d,
145 0xb4, 0x14, 0xd4, 0x09, 0x91, 0x33, 0x5a, 0xfd,
146 0xa0, 0x58, 0x80, 0x9b, 0xbe, 0x78, 0x2e, 0x69,
147 0x82, 0x15, 0x7c, 0x72, 0xf0, 0x7b, 0x18, 0x39,
148 0xff, 0x6e, 0xeb, 0xc6, 0x86, 0xf5, 0xb4, 0xc7,
149 0x6f, 0x02, 0x41, 0x00, 0x8d, 0x1a, 0x37, 0x0f,
150 0x76, 0xc4, 0x82, 0xfa, 0x5c, 0xc3, 0x79, 0x35,
151 0x3e, 0x70, 0x8a, 0xbf, 0x27, 0x49, 0xb0, 0x99,
152 0x63, 0xcb, 0x77, 0x5f, 0xa8, 0x82, 0x65, 0xf6,
153 0x03, 0x52, 0x51, 0xf1, 0xae, 0x2e, 0x05, 0xb3,
154 0xc6, 0xa4, 0x92, 0xd1, 0xce, 0x6c, 0x72, 0xfb,
155 0x21, 0xb3, 0x02, 0x87, 0xe4, 0xfd, 0x61, 0xca,
156 0x00, 0x42, 0x19, 0xf0, 0xda, 0x5a, 0x53, 0xe3,
157 0xb1, 0xc5, 0x15, 0xf3
158 };
159
160 std::vector<uint8> input;
161 input.resize(sizeof(private_key_info));
162 memcpy(&input.front(), private_key_info, sizeof(private_key_info));
163
164 private_key.reset(crypto::RSAPrivateKey::CreateFromPrivateKeyInfo(input));
165 ASSERT_TRUE(private_key.get());
166
167 ASSERT_TRUE(x509_util::CreateSelfSignedCert(
168 private_key.get(),
169 "CN=subject",
170 1,
171 base::Time::Now(),
172 base::Time::Now() + base::TimeDelta::FromDays(1),
173 &der_cert));
174
175 cert = X509Certificate::CreateFromBytes(der_cert.data(), der_cert.size());
176 ASSERT_TRUE(cert.get());
177
178 EXPECT_EQ("subject", cert->subject().GetDisplayName());
179 EXPECT_FALSE(cert->HasExpired());
180 }
181 #endif
182
52 } // namespace x509_util 183 } // namespace x509_util
53 184
54 } // namespace net 185 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698