OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 "net/base/cert_status_flags.h" | 9 #include "net/base/cert_status_flags.h" |
10 #include "net/base/cert_test_util.h" | 10 #include "net/base/cert_test_util.h" |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
101 } | 101 } |
102 | 102 |
103 } // namespace | 103 } // namespace |
104 | 104 |
105 TEST(X509CertificateTest, GoogleCertParsing) { | 105 TEST(X509CertificateTest, GoogleCertParsing) { |
106 scoped_refptr<X509Certificate> google_cert = X509Certificate::CreateFromBytes( | 106 scoped_refptr<X509Certificate> google_cert = X509Certificate::CreateFromBytes( |
107 reinterpret_cast<const char*>(google_der), sizeof(google_der)); | 107 reinterpret_cast<const char*>(google_der), sizeof(google_der)); |
108 | 108 |
109 ASSERT_NE(static_cast<X509Certificate*>(NULL), google_cert); | 109 ASSERT_NE(static_cast<X509Certificate*>(NULL), google_cert); |
110 | 110 |
111 const X509Certificate::Principal& subject = google_cert->subject(); | 111 const CertPrincipal& subject = google_cert->subject(); |
112 EXPECT_EQ("www.google.com", subject.common_name); | 112 EXPECT_EQ("www.google.com", subject.common_name); |
113 EXPECT_EQ("Mountain View", subject.locality_name); | 113 EXPECT_EQ("Mountain View", subject.locality_name); |
114 EXPECT_EQ("California", subject.state_or_province_name); | 114 EXPECT_EQ("California", subject.state_or_province_name); |
115 EXPECT_EQ("US", subject.country_name); | 115 EXPECT_EQ("US", subject.country_name); |
116 EXPECT_EQ(0U, subject.street_addresses.size()); | 116 EXPECT_EQ(0U, subject.street_addresses.size()); |
117 EXPECT_EQ(1U, subject.organization_names.size()); | 117 EXPECT_EQ(1U, subject.organization_names.size()); |
118 EXPECT_EQ("Google Inc", subject.organization_names[0]); | 118 EXPECT_EQ("Google Inc", subject.organization_names[0]); |
119 EXPECT_EQ(0U, subject.organization_unit_names.size()); | 119 EXPECT_EQ(0U, subject.organization_unit_names.size()); |
120 EXPECT_EQ(0U, subject.domain_components.size()); | 120 EXPECT_EQ(0U, subject.domain_components.size()); |
121 | 121 |
122 const X509Certificate::Principal& issuer = google_cert->issuer(); | 122 const CertPrincipal& issuer = google_cert->issuer(); |
123 EXPECT_EQ("Thawte SGC CA", issuer.common_name); | 123 EXPECT_EQ("Thawte SGC CA", issuer.common_name); |
124 EXPECT_EQ("", issuer.locality_name); | 124 EXPECT_EQ("", issuer.locality_name); |
125 EXPECT_EQ("", issuer.state_or_province_name); | 125 EXPECT_EQ("", issuer.state_or_province_name); |
126 EXPECT_EQ("ZA", issuer.country_name); | 126 EXPECT_EQ("ZA", issuer.country_name); |
127 EXPECT_EQ(0U, issuer.street_addresses.size()); | 127 EXPECT_EQ(0U, issuer.street_addresses.size()); |
128 EXPECT_EQ(1U, issuer.organization_names.size()); | 128 EXPECT_EQ(1U, issuer.organization_names.size()); |
129 EXPECT_EQ("Thawte Consulting (Pty) Ltd.", issuer.organization_names[0]); | 129 EXPECT_EQ("Thawte Consulting (Pty) Ltd.", issuer.organization_names[0]); |
130 EXPECT_EQ(0U, issuer.organization_unit_names.size()); | 130 EXPECT_EQ(0U, issuer.organization_unit_names.size()); |
131 EXPECT_EQ(0U, issuer.domain_components.size()); | 131 EXPECT_EQ(0U, issuer.domain_components.size()); |
132 | 132 |
133 // Use DoubleT because its epoch is the same on all platforms | 133 // Use DoubleT because its epoch is the same on all platforms |
134 const Time& valid_start = google_cert->valid_start(); | 134 const Time& valid_start = google_cert->valid_start(); |
135 EXPECT_EQ(1238192407, valid_start.ToDoubleT()); // Mar 27 22:20:07 2009 GMT | 135 EXPECT_EQ(1238192407, valid_start.ToDoubleT()); // Mar 27 22:20:07 2009 GMT |
136 | 136 |
137 const Time& valid_expiry = google_cert->valid_expiry(); | 137 const Time& valid_expiry = google_cert->valid_expiry(); |
138 EXPECT_EQ(1269728407, valid_expiry.ToDoubleT()); // Mar 27 22:20:07 2010 GMT | 138 EXPECT_EQ(1269728407, valid_expiry.ToDoubleT()); // Mar 27 22:20:07 2010 GMT |
139 | 139 |
140 const X509Certificate::Fingerprint& fingerprint = google_cert->fingerprint(); | 140 const SHA1Fingerprint& fingerprint = google_cert->fingerprint(); |
141 for (size_t i = 0; i < 20; ++i) | 141 for (size_t i = 0; i < 20; ++i) |
142 EXPECT_EQ(google_fingerprint[i], fingerprint.data[i]); | 142 EXPECT_EQ(google_fingerprint[i], fingerprint.data[i]); |
143 | 143 |
144 std::vector<std::string> dns_names; | 144 std::vector<std::string> dns_names; |
145 google_cert->GetDNSNames(&dns_names); | 145 google_cert->GetDNSNames(&dns_names); |
146 EXPECT_EQ(1U, dns_names.size()); | 146 EXPECT_EQ(1U, dns_names.size()); |
147 EXPECT_EQ("www.google.com", dns_names[0]); | 147 EXPECT_EQ("www.google.com", dns_names[0]); |
148 | 148 |
149 #if TEST_EV | 149 #if TEST_EV |
150 // TODO(avi): turn this on for the Mac once EV checking is implemented. | 150 // TODO(avi): turn this on for the Mac once EV checking is implemented. |
151 CertVerifyResult verify_result; | 151 CertVerifyResult verify_result; |
152 int flags = X509Certificate::VERIFY_REV_CHECKING_ENABLED | | 152 int flags = X509Certificate::VERIFY_REV_CHECKING_ENABLED | |
153 X509Certificate::VERIFY_EV_CERT; | 153 X509Certificate::VERIFY_EV_CERT; |
154 EXPECT_EQ(OK, google_cert->Verify("www.google.com", flags, &verify_result)); | 154 EXPECT_EQ(OK, google_cert->Verify("www.google.com", flags, &verify_result)); |
155 EXPECT_EQ(0, verify_result.cert_status & CERT_STATUS_IS_EV); | 155 EXPECT_EQ(0, verify_result.cert_status & CERT_STATUS_IS_EV); |
156 #endif | 156 #endif |
157 } | 157 } |
158 | 158 |
159 TEST(X509CertificateTest, WebkitCertParsing) { | 159 TEST(X509CertificateTest, WebkitCertParsing) { |
160 scoped_refptr<X509Certificate> webkit_cert = X509Certificate::CreateFromBytes( | 160 scoped_refptr<X509Certificate> webkit_cert = X509Certificate::CreateFromBytes( |
161 reinterpret_cast<const char*>(webkit_der), sizeof(webkit_der)); | 161 reinterpret_cast<const char*>(webkit_der), sizeof(webkit_der)); |
162 | 162 |
163 ASSERT_NE(static_cast<X509Certificate*>(NULL), webkit_cert); | 163 ASSERT_NE(static_cast<X509Certificate*>(NULL), webkit_cert); |
164 | 164 |
165 const X509Certificate::Principal& subject = webkit_cert->subject(); | 165 const CertPrincipal& subject = webkit_cert->subject(); |
166 EXPECT_EQ("Cupertino", subject.locality_name); | 166 EXPECT_EQ("Cupertino", subject.locality_name); |
167 EXPECT_EQ("California", subject.state_or_province_name); | 167 EXPECT_EQ("California", subject.state_or_province_name); |
168 EXPECT_EQ("US", subject.country_name); | 168 EXPECT_EQ("US", subject.country_name); |
169 EXPECT_EQ(0U, subject.street_addresses.size()); | 169 EXPECT_EQ(0U, subject.street_addresses.size()); |
170 EXPECT_EQ(1U, subject.organization_names.size()); | 170 EXPECT_EQ(1U, subject.organization_names.size()); |
171 EXPECT_EQ("Apple Inc.", subject.organization_names[0]); | 171 EXPECT_EQ("Apple Inc.", subject.organization_names[0]); |
172 EXPECT_EQ(1U, subject.organization_unit_names.size()); | 172 EXPECT_EQ(1U, subject.organization_unit_names.size()); |
173 EXPECT_EQ("Mac OS Forge", subject.organization_unit_names[0]); | 173 EXPECT_EQ("Mac OS Forge", subject.organization_unit_names[0]); |
174 EXPECT_EQ(0U, subject.domain_components.size()); | 174 EXPECT_EQ(0U, subject.domain_components.size()); |
175 | 175 |
176 const X509Certificate::Principal& issuer = webkit_cert->issuer(); | 176 const CertPrincipal& issuer = webkit_cert->issuer(); |
177 EXPECT_EQ("Go Daddy Secure Certification Authority", issuer.common_name); | 177 EXPECT_EQ("Go Daddy Secure Certification Authority", issuer.common_name); |
178 EXPECT_EQ("Scottsdale", issuer.locality_name); | 178 EXPECT_EQ("Scottsdale", issuer.locality_name); |
179 EXPECT_EQ("Arizona", issuer.state_or_province_name); | 179 EXPECT_EQ("Arizona", issuer.state_or_province_name); |
180 EXPECT_EQ("US", issuer.country_name); | 180 EXPECT_EQ("US", issuer.country_name); |
181 EXPECT_EQ(0U, issuer.street_addresses.size()); | 181 EXPECT_EQ(0U, issuer.street_addresses.size()); |
182 EXPECT_EQ(1U, issuer.organization_names.size()); | 182 EXPECT_EQ(1U, issuer.organization_names.size()); |
183 EXPECT_EQ("GoDaddy.com, Inc.", issuer.organization_names[0]); | 183 EXPECT_EQ("GoDaddy.com, Inc.", issuer.organization_names[0]); |
184 EXPECT_EQ(1U, issuer.organization_unit_names.size()); | 184 EXPECT_EQ(1U, issuer.organization_unit_names.size()); |
185 EXPECT_EQ("http://certificates.godaddy.com/repository", | 185 EXPECT_EQ("http://certificates.godaddy.com/repository", |
186 issuer.organization_unit_names[0]); | 186 issuer.organization_unit_names[0]); |
187 EXPECT_EQ(0U, issuer.domain_components.size()); | 187 EXPECT_EQ(0U, issuer.domain_components.size()); |
188 | 188 |
189 // Use DoubleT because its epoch is the same on all platforms | 189 // Use DoubleT because its epoch is the same on all platforms |
190 const Time& valid_start = webkit_cert->valid_start(); | 190 const Time& valid_start = webkit_cert->valid_start(); |
191 EXPECT_EQ(1205883319, valid_start.ToDoubleT()); // Mar 18 23:35:19 2008 GMT | 191 EXPECT_EQ(1205883319, valid_start.ToDoubleT()); // Mar 18 23:35:19 2008 GMT |
192 | 192 |
193 const Time& valid_expiry = webkit_cert->valid_expiry(); | 193 const Time& valid_expiry = webkit_cert->valid_expiry(); |
194 EXPECT_EQ(1300491319, valid_expiry.ToDoubleT()); // Mar 18 23:35:19 2011 GMT | 194 EXPECT_EQ(1300491319, valid_expiry.ToDoubleT()); // Mar 18 23:35:19 2011 GMT |
195 | 195 |
196 const X509Certificate::Fingerprint& fingerprint = webkit_cert->fingerprint(); | 196 const SHA1Fingerprint& fingerprint = webkit_cert->fingerprint(); |
197 for (size_t i = 0; i < 20; ++i) | 197 for (size_t i = 0; i < 20; ++i) |
198 EXPECT_EQ(webkit_fingerprint[i], fingerprint.data[i]); | 198 EXPECT_EQ(webkit_fingerprint[i], fingerprint.data[i]); |
199 | 199 |
200 std::vector<std::string> dns_names; | 200 std::vector<std::string> dns_names; |
201 webkit_cert->GetDNSNames(&dns_names); | 201 webkit_cert->GetDNSNames(&dns_names); |
202 EXPECT_EQ(2U, dns_names.size()); | 202 EXPECT_EQ(2U, dns_names.size()); |
203 EXPECT_EQ("*.webkit.org", dns_names[0]); | 203 EXPECT_EQ("*.webkit.org", dns_names[0]); |
204 EXPECT_EQ("webkit.org", dns_names[1]); | 204 EXPECT_EQ("webkit.org", dns_names[1]); |
205 | 205 |
206 #if TEST_EV | 206 #if TEST_EV |
207 int flags = X509Certificate::VERIFY_REV_CHECKING_ENABLED | | 207 int flags = X509Certificate::VERIFY_REV_CHECKING_ENABLED | |
208 X509Certificate::VERIFY_EV_CERT; | 208 X509Certificate::VERIFY_EV_CERT; |
209 CertVerifyResult verify_result; | 209 CertVerifyResult verify_result; |
210 EXPECT_EQ(OK, webkit_cert->Verify("webkit.org", flags, &verify_result)); | 210 EXPECT_EQ(OK, webkit_cert->Verify("webkit.org", flags, &verify_result)); |
211 EXPECT_EQ(0, verify_result.cert_status & CERT_STATUS_IS_EV); | 211 EXPECT_EQ(0, verify_result.cert_status & CERT_STATUS_IS_EV); |
212 #endif | 212 #endif |
213 } | 213 } |
214 | 214 |
215 TEST(X509CertificateTest, ThawteCertParsing) { | 215 TEST(X509CertificateTest, ThawteCertParsing) { |
216 scoped_refptr<X509Certificate> thawte_cert = X509Certificate::CreateFromBytes( | 216 scoped_refptr<X509Certificate> thawte_cert = X509Certificate::CreateFromBytes( |
217 reinterpret_cast<const char*>(thawte_der), sizeof(thawte_der)); | 217 reinterpret_cast<const char*>(thawte_der), sizeof(thawte_der)); |
218 | 218 |
219 ASSERT_NE(static_cast<X509Certificate*>(NULL), thawte_cert); | 219 ASSERT_NE(static_cast<X509Certificate*>(NULL), thawte_cert); |
220 | 220 |
221 const X509Certificate::Principal& subject = thawte_cert->subject(); | 221 const CertPrincipal& subject = thawte_cert->subject(); |
222 EXPECT_EQ("www.thawte.com", subject.common_name); | 222 EXPECT_EQ("www.thawte.com", subject.common_name); |
223 EXPECT_EQ("Mountain View", subject.locality_name); | 223 EXPECT_EQ("Mountain View", subject.locality_name); |
224 EXPECT_EQ("California", subject.state_or_province_name); | 224 EXPECT_EQ("California", subject.state_or_province_name); |
225 EXPECT_EQ("US", subject.country_name); | 225 EXPECT_EQ("US", subject.country_name); |
226 EXPECT_EQ(0U, subject.street_addresses.size()); | 226 EXPECT_EQ(0U, subject.street_addresses.size()); |
227 EXPECT_EQ(1U, subject.organization_names.size()); | 227 EXPECT_EQ(1U, subject.organization_names.size()); |
228 EXPECT_EQ("Thawte Inc", subject.organization_names[0]); | 228 EXPECT_EQ("Thawte Inc", subject.organization_names[0]); |
229 EXPECT_EQ(0U, subject.organization_unit_names.size()); | 229 EXPECT_EQ(0U, subject.organization_unit_names.size()); |
230 EXPECT_EQ(0U, subject.domain_components.size()); | 230 EXPECT_EQ(0U, subject.domain_components.size()); |
231 | 231 |
232 const X509Certificate::Principal& issuer = thawte_cert->issuer(); | 232 const CertPrincipal& issuer = thawte_cert->issuer(); |
233 EXPECT_EQ("thawte Extended Validation SSL CA", issuer.common_name); | 233 EXPECT_EQ("thawte Extended Validation SSL CA", issuer.common_name); |
234 EXPECT_EQ("", issuer.locality_name); | 234 EXPECT_EQ("", issuer.locality_name); |
235 EXPECT_EQ("", issuer.state_or_province_name); | 235 EXPECT_EQ("", issuer.state_or_province_name); |
236 EXPECT_EQ("US", issuer.country_name); | 236 EXPECT_EQ("US", issuer.country_name); |
237 EXPECT_EQ(0U, issuer.street_addresses.size()); | 237 EXPECT_EQ(0U, issuer.street_addresses.size()); |
238 EXPECT_EQ(1U, issuer.organization_names.size()); | 238 EXPECT_EQ(1U, issuer.organization_names.size()); |
239 EXPECT_EQ("thawte, Inc.", issuer.organization_names[0]); | 239 EXPECT_EQ("thawte, Inc.", issuer.organization_names[0]); |
240 EXPECT_EQ(1U, issuer.organization_unit_names.size()); | 240 EXPECT_EQ(1U, issuer.organization_unit_names.size()); |
241 EXPECT_EQ("Terms of use at https://www.thawte.com/cps (c)06", | 241 EXPECT_EQ("Terms of use at https://www.thawte.com/cps (c)06", |
242 issuer.organization_unit_names[0]); | 242 issuer.organization_unit_names[0]); |
243 EXPECT_EQ(0U, issuer.domain_components.size()); | 243 EXPECT_EQ(0U, issuer.domain_components.size()); |
244 | 244 |
245 // Use DoubleT because its epoch is the same on all platforms | 245 // Use DoubleT because its epoch is the same on all platforms |
246 const Time& valid_start = thawte_cert->valid_start(); | 246 const Time& valid_start = thawte_cert->valid_start(); |
247 EXPECT_EQ(1227052800, valid_start.ToDoubleT()); // Nov 19 00:00:00 2008 GMT | 247 EXPECT_EQ(1227052800, valid_start.ToDoubleT()); // Nov 19 00:00:00 2008 GMT |
248 | 248 |
249 const Time& valid_expiry = thawte_cert->valid_expiry(); | 249 const Time& valid_expiry = thawte_cert->valid_expiry(); |
250 EXPECT_EQ(1263772799, valid_expiry.ToDoubleT()); // Jan 17 23:59:59 2010 GMT | 250 EXPECT_EQ(1263772799, valid_expiry.ToDoubleT()); // Jan 17 23:59:59 2010 GMT |
251 | 251 |
252 const X509Certificate::Fingerprint& fingerprint = thawte_cert->fingerprint(); | 252 const SHA1Fingerprint& fingerprint = thawte_cert->fingerprint(); |
253 for (size_t i = 0; i < 20; ++i) | 253 for (size_t i = 0; i < 20; ++i) |
254 EXPECT_EQ(thawte_fingerprint[i], fingerprint.data[i]); | 254 EXPECT_EQ(thawte_fingerprint[i], fingerprint.data[i]); |
255 | 255 |
256 std::vector<std::string> dns_names; | 256 std::vector<std::string> dns_names; |
257 thawte_cert->GetDNSNames(&dns_names); | 257 thawte_cert->GetDNSNames(&dns_names); |
258 EXPECT_EQ(1U, dns_names.size()); | 258 EXPECT_EQ(1U, dns_names.size()); |
259 EXPECT_EQ("www.thawte.com", dns_names[0]); | 259 EXPECT_EQ("www.thawte.com", dns_names[0]); |
260 | 260 |
261 #if TEST_EV | 261 #if TEST_EV |
262 int flags = X509Certificate::VERIFY_REV_CHECKING_ENABLED | | 262 int flags = X509Certificate::VERIFY_REV_CHECKING_ENABLED | |
(...skipping 11 matching lines...) Expand all Loading... |
274 } | 274 } |
275 | 275 |
276 TEST(X509CertificateTest, PaypalNullCertParsing) { | 276 TEST(X509CertificateTest, PaypalNullCertParsing) { |
277 scoped_refptr<X509Certificate> paypal_null_cert = | 277 scoped_refptr<X509Certificate> paypal_null_cert = |
278 X509Certificate::CreateFromBytes( | 278 X509Certificate::CreateFromBytes( |
279 reinterpret_cast<const char*>(paypal_null_der), | 279 reinterpret_cast<const char*>(paypal_null_der), |
280 sizeof(paypal_null_der)); | 280 sizeof(paypal_null_der)); |
281 | 281 |
282 ASSERT_NE(static_cast<X509Certificate*>(NULL), paypal_null_cert); | 282 ASSERT_NE(static_cast<X509Certificate*>(NULL), paypal_null_cert); |
283 | 283 |
284 const X509Certificate::Fingerprint& fingerprint = | 284 const SHA1Fingerprint& fingerprint = |
285 paypal_null_cert->fingerprint(); | 285 paypal_null_cert->fingerprint(); |
286 for (size_t i = 0; i < 20; ++i) | 286 for (size_t i = 0; i < 20; ++i) |
287 EXPECT_EQ(paypal_null_fingerprint[i], fingerprint.data[i]); | 287 EXPECT_EQ(paypal_null_fingerprint[i], fingerprint.data[i]); |
288 | 288 |
289 int flags = 0; | 289 int flags = 0; |
290 CertVerifyResult verify_result; | 290 CertVerifyResult verify_result; |
291 int error = paypal_null_cert->Verify("www.paypal.com", flags, | 291 int error = paypal_null_cert->Verify("www.paypal.com", flags, |
292 &verify_result); | 292 &verify_result); |
293 EXPECT_NE(OK, error); | 293 EXPECT_NE(OK, error); |
294 // Either the system crypto library should correctly report a certificate | 294 // Either the system crypto library should correctly report a certificate |
295 // name mismatch, or our certificate blacklist should cause us to report an | 295 // name mismatch, or our certificate blacklist should cause us to report an |
296 // invalid certificate. | 296 // invalid certificate. |
297 #if !defined(OS_MACOSX) | 297 #if !defined(OS_MACOSX) |
298 EXPECT_NE(0, verify_result.cert_status & | 298 EXPECT_NE(0, verify_result.cert_status & |
299 (CERT_STATUS_COMMON_NAME_INVALID | CERT_STATUS_INVALID)); | 299 (CERT_STATUS_COMMON_NAME_INVALID | CERT_STATUS_INVALID)); |
300 #endif | 300 #endif |
301 } | 301 } |
302 | 302 |
303 // A certificate whose AIA extension contains an LDAP URL without a host name. | 303 // A certificate whose AIA extension contains an LDAP URL without a host name. |
304 // This certificate will expire on 2011-09-08. | 304 // This certificate will expire on 2011-09-08. |
305 TEST(X509CertificateTest, UnoSoftCertParsing) { | 305 TEST(X509CertificateTest, UnoSoftCertParsing) { |
306 FilePath certs_dir = GetTestCertsDirectory(); | 306 FilePath certs_dir = GetTestCertsDirectory(); |
307 scoped_refptr<X509Certificate> unosoft_hu_cert = | 307 scoped_refptr<X509Certificate> unosoft_hu_cert = |
308 ImportCertFromFile(certs_dir, "unosoft_hu_cert.der"); | 308 ImportCertFromFile(certs_dir, "unosoft_hu_cert.der"); |
309 | 309 |
310 ASSERT_NE(static_cast<X509Certificate*>(NULL), unosoft_hu_cert); | 310 ASSERT_NE(static_cast<X509Certificate*>(NULL), unosoft_hu_cert); |
311 | 311 |
312 const X509Certificate::Fingerprint& fingerprint = | 312 const SHA1Fingerprint& fingerprint = |
313 unosoft_hu_cert->fingerprint(); | 313 unosoft_hu_cert->fingerprint(); |
314 for (size_t i = 0; i < 20; ++i) | 314 for (size_t i = 0; i < 20; ++i) |
315 EXPECT_EQ(unosoft_hu_fingerprint[i], fingerprint.data[i]); | 315 EXPECT_EQ(unosoft_hu_fingerprint[i], fingerprint.data[i]); |
316 | 316 |
317 int flags = 0; | 317 int flags = 0; |
318 CertVerifyResult verify_result; | 318 CertVerifyResult verify_result; |
319 int error = unosoft_hu_cert->Verify("www.unosoft.hu", flags, | 319 int error = unosoft_hu_cert->Verify("www.unosoft.hu", flags, |
320 &verify_result); | 320 &verify_result); |
321 EXPECT_NE(OK, error); | 321 EXPECT_NE(OK, error); |
322 EXPECT_NE(0, verify_result.cert_status & CERT_STATUS_AUTHORITY_INVALID); | 322 EXPECT_NE(0, verify_result.cert_status & CERT_STATUS_AUTHORITY_INVALID); |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
431 EXPECT_EQ(cert1, cert2); | 431 EXPECT_EQ(cert1, cert2); |
432 } | 432 } |
433 | 433 |
434 TEST(X509CertificateTest, Policy) { | 434 TEST(X509CertificateTest, Policy) { |
435 scoped_refptr<X509Certificate> google_cert = X509Certificate::CreateFromBytes( | 435 scoped_refptr<X509Certificate> google_cert = X509Certificate::CreateFromBytes( |
436 reinterpret_cast<const char*>(google_der), sizeof(google_der)); | 436 reinterpret_cast<const char*>(google_der), sizeof(google_der)); |
437 | 437 |
438 scoped_refptr<X509Certificate> webkit_cert = X509Certificate::CreateFromBytes( | 438 scoped_refptr<X509Certificate> webkit_cert = X509Certificate::CreateFromBytes( |
439 reinterpret_cast<const char*>(webkit_der), sizeof(webkit_der)); | 439 reinterpret_cast<const char*>(webkit_der), sizeof(webkit_der)); |
440 | 440 |
441 X509Certificate::Policy policy; | 441 CertPolicy policy; |
442 | 442 |
443 EXPECT_EQ(policy.Check(google_cert.get()), X509Certificate::Policy::UNKNOWN); | 443 EXPECT_EQ(policy.Check(google_cert.get()), CertPolicy::UNKNOWN); |
444 EXPECT_EQ(policy.Check(webkit_cert.get()), X509Certificate::Policy::UNKNOWN); | 444 EXPECT_EQ(policy.Check(webkit_cert.get()), CertPolicy::UNKNOWN); |
445 EXPECT_FALSE(policy.HasAllowedCert()); | 445 EXPECT_FALSE(policy.HasAllowedCert()); |
446 EXPECT_FALSE(policy.HasDeniedCert()); | 446 EXPECT_FALSE(policy.HasDeniedCert()); |
447 | 447 |
448 policy.Allow(google_cert.get()); | 448 policy.Allow(google_cert.get()); |
449 | 449 |
450 EXPECT_EQ(policy.Check(google_cert.get()), X509Certificate::Policy::ALLOWED); | 450 EXPECT_EQ(policy.Check(google_cert.get()), CertPolicy::ALLOWED); |
451 EXPECT_EQ(policy.Check(webkit_cert.get()), X509Certificate::Policy::UNKNOWN); | 451 EXPECT_EQ(policy.Check(webkit_cert.get()), CertPolicy::UNKNOWN); |
452 EXPECT_TRUE(policy.HasAllowedCert()); | 452 EXPECT_TRUE(policy.HasAllowedCert()); |
453 EXPECT_FALSE(policy.HasDeniedCert()); | 453 EXPECT_FALSE(policy.HasDeniedCert()); |
454 | 454 |
455 policy.Deny(google_cert.get()); | 455 policy.Deny(google_cert.get()); |
456 | 456 |
457 EXPECT_EQ(policy.Check(google_cert.get()), X509Certificate::Policy::DENIED); | 457 EXPECT_EQ(policy.Check(google_cert.get()), CertPolicy::DENIED); |
458 EXPECT_EQ(policy.Check(webkit_cert.get()), X509Certificate::Policy::UNKNOWN); | 458 EXPECT_EQ(policy.Check(webkit_cert.get()), CertPolicy::UNKNOWN); |
459 EXPECT_FALSE(policy.HasAllowedCert()); | 459 EXPECT_FALSE(policy.HasAllowedCert()); |
460 EXPECT_TRUE(policy.HasDeniedCert()); | 460 EXPECT_TRUE(policy.HasDeniedCert()); |
461 | 461 |
462 policy.Allow(webkit_cert.get()); | 462 policy.Allow(webkit_cert.get()); |
463 | 463 |
464 EXPECT_EQ(policy.Check(google_cert.get()), X509Certificate::Policy::DENIED); | 464 EXPECT_EQ(policy.Check(google_cert.get()), CertPolicy::DENIED); |
465 EXPECT_EQ(policy.Check(webkit_cert.get()), X509Certificate::Policy::ALLOWED); | 465 EXPECT_EQ(policy.Check(webkit_cert.get()), CertPolicy::ALLOWED); |
466 EXPECT_TRUE(policy.HasAllowedCert()); | 466 EXPECT_TRUE(policy.HasAllowedCert()); |
467 EXPECT_TRUE(policy.HasDeniedCert()); | 467 EXPECT_TRUE(policy.HasDeniedCert()); |
468 } | 468 } |
469 | 469 |
470 #if defined(OS_MACOSX) || defined(OS_WIN) | 470 #if defined(OS_MACOSX) || defined(OS_WIN) |
471 TEST(X509CertificateTest, IntermediateCertificates) { | 471 TEST(X509CertificateTest, IntermediateCertificates) { |
472 scoped_refptr<X509Certificate> webkit_cert = | 472 scoped_refptr<X509Certificate> webkit_cert = |
473 X509Certificate::CreateFromBytes( | 473 X509Certificate::CreateFromBytes( |
474 reinterpret_cast<const char*>(webkit_der), sizeof(webkit_der)); | 474 reinterpret_cast<const char*>(webkit_der), sizeof(webkit_der)); |
475 | 475 |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
522 | 522 |
523 // The cache should have returned cert2 'cause it has more intermediates: | 523 // The cache should have returned cert2 'cause it has more intermediates: |
524 EXPECT_EQ(cert3, cert2); | 524 EXPECT_EQ(cert3, cert2); |
525 | 525 |
526 // Cleanup | 526 // Cleanup |
527 X509Certificate::FreeOSCertHandle(google_handle); | 527 X509Certificate::FreeOSCertHandle(google_handle); |
528 } | 528 } |
529 #endif | 529 #endif |
530 | 530 |
531 } // namespace net | 531 } // namespace net |
OLD | NEW |