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

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

Powered by Google App Engine
This is Rietveld 408576698