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

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

Issue 9960002: Make all the things use cert_test_util.h. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: nitfix Created 8 years, 8 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 <cert.h> 5 #include <cert.h>
6 #include <pk11pub.h> 6 #include <pk11pub.h>
7 7
8 #include <algorithm> 8 #include <algorithm>
9 9
10 #include "base/file_path.h" 10 #include "base/file_path.h"
11 #include "base/file_util.h" 11 #include "base/file_util.h"
12 #include "base/lazy_instance.h" 12 #include "base/lazy_instance.h"
13 #include "base/message_loop.h" 13 #include "base/message_loop.h"
14 #include "base/path_service.h" 14 #include "base/path_service.h"
15 #include "base/string16.h" 15 #include "base/string16.h"
16 #include "base/string_util.h" 16 #include "base/string_util.h"
17 #include "base/utf_string_conversions.h" 17 #include "base/utf_string_conversions.h"
18 #include "crypto/nss_util.h" 18 #include "crypto/nss_util.h"
19 #include "crypto/nss_util_internal.h" 19 #include "crypto/nss_util_internal.h"
20 #include "crypto/scoped_nss_types.h" 20 #include "crypto/scoped_nss_types.h"
21 #include "net/base/cert_database.h" 21 #include "net/base/cert_database.h"
22 #include "net/base/cert_status_flags.h" 22 #include "net/base/cert_status_flags.h"
23 #include "net/base/cert_test_util.h"
23 #include "net/base/cert_verify_proc.h" 24 #include "net/base/cert_verify_proc.h"
24 #include "net/base/cert_verify_result.h" 25 #include "net/base/cert_verify_result.h"
25 #include "net/base/crypto_module.h" 26 #include "net/base/crypto_module.h"
26 #include "net/base/net_errors.h" 27 #include "net/base/net_errors.h"
27 #include "net/base/x509_certificate.h" 28 #include "net/base/x509_certificate.h"
28 #include "net/third_party/mozilla_security_manager/nsNSSCertTrust.h" 29 #include "net/third_party/mozilla_security_manager/nsNSSCertTrust.h"
29 #include "net/third_party/mozilla_security_manager/nsNSSCertificateDB.h" 30 #include "net/third_party/mozilla_security_manager/nsNSSCertificateDB.h"
30 #include "testing/gtest/include/gtest/gtest.h" 31 #include "testing/gtest/include/gtest/gtest.h"
31 32
32 namespace psm = mozilla_security_manager; 33 namespace psm = mozilla_security_manager;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 protected: 71 protected:
71 static std::string ReadTestFile(const std::string& name) { 72 static std::string ReadTestFile(const std::string& name) {
72 std::string result; 73 std::string result;
73 FilePath cert_path = GetTestCertsDirectory().AppendASCII(name); 74 FilePath cert_path = GetTestCertsDirectory().AppendASCII(name);
74 EXPECT_TRUE(file_util::ReadFileToString(cert_path, &result)); 75 EXPECT_TRUE(file_util::ReadFileToString(cert_path, &result));
75 return result; 76 return result;
76 } 77 }
77 78
78 static bool ReadCertIntoList(const std::string& name, 79 static bool ReadCertIntoList(const std::string& name,
79 CertificateList* certs) { 80 CertificateList* certs) {
80 std::string cert_data = ReadTestFile(name); 81 scoped_refptr<X509Certificate> cert(
81 if (cert_data.empty()) 82 ImportCertFromFile(GetTestCertsDirectory(), name));
82 return false; 83 if (!cert.get())
83
84 X509Certificate* cert = X509Certificate::CreateFromBytes(
85 cert_data.data(), cert_data.size());
86 if (!cert)
87 return false; 84 return false;
88 85
89 certs->push_back(cert); 86 certs->push_back(cert);
90 return true; 87 return true;
91 } 88 }
92 89
93 static CertificateList ListCertsInSlot(PK11SlotInfo* slot) { 90 static CertificateList ListCertsInSlot(PK11SlotInfo* slot) {
94 CertificateList result; 91 CertificateList result;
95 CERTCertList* cert_list = PK11_ListCertsInSlot(slot); 92 CERTCertList* cert_list = PK11_ListCertsInSlot(slot);
96 for (CERTCertListNode* node = CERT_LIST_HEAD(cert_list); 93 for (CERTCertListNode* node = CERT_LIST_HEAD(cert_list);
97 !CERT_LIST_END(node, cert_list); 94 !CERT_LIST_END(node, cert_list);
98 node = CERT_LIST_NEXT(node)) { 95 node = CERT_LIST_NEXT(node)) {
99 result.push_back(X509Certificate::CreateFromHandle( 96 result.push_back(X509Certificate::CreateFromHandle(
100 node->cert, X509Certificate::OSCertHandles())); 97 node->cert, X509Certificate::OSCertHandles()));
101 } 98 }
102 CERT_DestroyCertList(cert_list); 99 CERT_DestroyCertList(cert_list);
103 100
104 // Sort the result so that test comparisons can be deterministic. 101 // Sort the result so that test comparisons can be deterministic.
105 std::sort(result.begin(), result.end(), X509Certificate::LessThan()); 102 std::sort(result.begin(), result.end(), X509Certificate::LessThan());
106 return result; 103 return result;
107 } 104 }
108 105
109 scoped_refptr<CryptoModule> slot_; 106 scoped_refptr<CryptoModule> slot_;
110 CertDatabase cert_db_; 107 CertDatabase cert_db_;
111 108
112 private: 109 private:
113 // Returns a FilePath object representing the src/net/data/ssl/certificates
114 // directory in the source tree.
115 static FilePath GetTestCertsDirectory() {
116 FilePath certs_dir;
117 PathService::Get(base::DIR_SOURCE_ROOT, &certs_dir);
118 certs_dir = certs_dir.AppendASCII("net");
119 certs_dir = certs_dir.AppendASCII("data");
120 certs_dir = certs_dir.AppendASCII("ssl");
121 certs_dir = certs_dir.AppendASCII("certificates");
122 return certs_dir;
123 }
124
125 static bool CleanupSlotContents(PK11SlotInfo* slot) { 110 static bool CleanupSlotContents(PK11SlotInfo* slot) {
126 CertDatabase cert_db; 111 CertDatabase cert_db;
127 bool ok = true; 112 bool ok = true;
128 CertificateList certs = ListCertsInSlot(slot); 113 CertificateList certs = ListCertsInSlot(slot);
129 for (size_t i = 0; i < certs.size(); ++i) { 114 for (size_t i = 0; i < certs.size(); ++i) {
130 if (!cert_db.DeleteCertAndKey(certs[i])) 115 if (!cert_db.DeleteCertAndKey(certs[i]))
131 ok = false; 116 ok = false;
132 } 117 }
133 return ok; 118 return ok;
134 } 119 }
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 pkcs12_data, 247 pkcs12_data,
263 string16(), 248 string16(),
264 true, // is_extractable 249 true, // is_extractable
265 NULL)); 250 NULL));
266 251
267 // Test db should still be empty. 252 // Test db should still be empty.
268 EXPECT_EQ(0U, ListCertsInSlot(slot_->os_module_handle()).size()); 253 EXPECT_EQ(0U, ListCertsInSlot(slot_->os_module_handle()).size());
269 } 254 }
270 255
271 TEST_F(CertDatabaseNSSTest, ImportCACert_SSLTrust) { 256 TEST_F(CertDatabaseNSSTest, ImportCACert_SSLTrust) {
272 std::string cert_data = ReadTestFile("root_ca_cert.crt"); 257 CertificateList certs = CreateCertificateListFromFile(
273 258 GetTestCertsDirectory(), "root_ca_cert.crt",
274 CertificateList certs = 259 X509Certificate::FORMAT_AUTO);
275 X509Certificate::CreateCertificateListFromBytes(
276 cert_data.data(), cert_data.size(), X509Certificate::FORMAT_AUTO);
277 ASSERT_EQ(1U, certs.size()); 260 ASSERT_EQ(1U, certs.size());
278 EXPECT_FALSE(certs[0]->os_cert_handle()->isperm); 261 EXPECT_FALSE(certs[0]->os_cert_handle()->isperm);
279 262
280 // Import it. 263 // Import it.
281 CertDatabase::ImportCertFailureList failed; 264 CertDatabase::ImportCertFailureList failed;
282 EXPECT_TRUE(cert_db_.ImportCACerts(certs, CertDatabase::TRUSTED_SSL, 265 EXPECT_TRUE(cert_db_.ImportCACerts(certs, CertDatabase::TRUSTED_SSL,
283 &failed)); 266 &failed));
284 267
285 EXPECT_EQ(0U, failed.size()); 268 EXPECT_EQ(0U, failed.size());
286 269
287 CertificateList cert_list = ListCertsInSlot(slot_->os_module_handle()); 270 CertificateList cert_list = ListCertsInSlot(slot_->os_module_handle());
288 ASSERT_EQ(1U, cert_list.size()); 271 ASSERT_EQ(1U, cert_list.size());
289 scoped_refptr<X509Certificate> cert(cert_list[0]); 272 scoped_refptr<X509Certificate> cert(cert_list[0]);
290 EXPECT_EQ("Test CA", cert->subject().common_name); 273 EXPECT_EQ("Test CA", cert->subject().common_name);
291 274
292 EXPECT_EQ(CertDatabase::TRUSTED_SSL, 275 EXPECT_EQ(CertDatabase::TRUSTED_SSL,
293 cert_db_.GetCertTrust(cert.get(), CA_CERT)); 276 cert_db_.GetCertTrust(cert.get(), CA_CERT));
294 277
295 psm::nsNSSCertTrust trust(cert->os_cert_handle()->trust); 278 psm::nsNSSCertTrust trust(cert->os_cert_handle()->trust);
296 EXPECT_TRUE(trust.HasTrustedCA(PR_TRUE, PR_FALSE, PR_FALSE)); 279 EXPECT_TRUE(trust.HasTrustedCA(PR_TRUE, PR_FALSE, PR_FALSE));
297 EXPECT_FALSE(trust.HasTrustedCA(PR_FALSE, PR_TRUE, PR_FALSE)); 280 EXPECT_FALSE(trust.HasTrustedCA(PR_FALSE, PR_TRUE, PR_FALSE));
298 EXPECT_FALSE(trust.HasTrustedCA(PR_FALSE, PR_FALSE, PR_TRUE)); 281 EXPECT_FALSE(trust.HasTrustedCA(PR_FALSE, PR_FALSE, PR_TRUE));
299 EXPECT_FALSE(trust.HasTrustedCA(PR_TRUE, PR_TRUE, PR_TRUE)); 282 EXPECT_FALSE(trust.HasTrustedCA(PR_TRUE, PR_TRUE, PR_TRUE));
300 EXPECT_TRUE(trust.HasCA(PR_TRUE, PR_TRUE, PR_TRUE)); 283 EXPECT_TRUE(trust.HasCA(PR_TRUE, PR_TRUE, PR_TRUE));
301 } 284 }
302 285
303 TEST_F(CertDatabaseNSSTest, ImportCACert_EmailTrust) { 286 TEST_F(CertDatabaseNSSTest, ImportCACert_EmailTrust) {
304 std::string cert_data = ReadTestFile("root_ca_cert.crt"); 287 CertificateList certs = CreateCertificateListFromFile(
305 288 GetTestCertsDirectory(), "root_ca_cert.crt",
306 CertificateList certs = 289 X509Certificate::FORMAT_AUTO);
307 X509Certificate::CreateCertificateListFromBytes(
308 cert_data.data(), cert_data.size(), X509Certificate::FORMAT_AUTO);
309 ASSERT_EQ(1U, certs.size()); 290 ASSERT_EQ(1U, certs.size());
310 EXPECT_FALSE(certs[0]->os_cert_handle()->isperm); 291 EXPECT_FALSE(certs[0]->os_cert_handle()->isperm);
311 292
312 // Import it. 293 // Import it.
313 CertDatabase::ImportCertFailureList failed; 294 CertDatabase::ImportCertFailureList failed;
314 EXPECT_TRUE(cert_db_.ImportCACerts(certs, CertDatabase::TRUSTED_EMAIL, 295 EXPECT_TRUE(cert_db_.ImportCACerts(certs, CertDatabase::TRUSTED_EMAIL,
315 &failed)); 296 &failed));
316 297
317 EXPECT_EQ(0U, failed.size()); 298 EXPECT_EQ(0U, failed.size());
318 299
319 CertificateList cert_list = ListCertsInSlot(slot_->os_module_handle()); 300 CertificateList cert_list = ListCertsInSlot(slot_->os_module_handle());
320 ASSERT_EQ(1U, cert_list.size()); 301 ASSERT_EQ(1U, cert_list.size());
321 scoped_refptr<X509Certificate> cert(cert_list[0]); 302 scoped_refptr<X509Certificate> cert(cert_list[0]);
322 EXPECT_EQ("Test CA", cert->subject().common_name); 303 EXPECT_EQ("Test CA", cert->subject().common_name);
323 304
324 EXPECT_EQ(CertDatabase::TRUSTED_EMAIL, 305 EXPECT_EQ(CertDatabase::TRUSTED_EMAIL,
325 cert_db_.GetCertTrust(cert.get(), CA_CERT)); 306 cert_db_.GetCertTrust(cert.get(), CA_CERT));
326 307
327 psm::nsNSSCertTrust trust(cert->os_cert_handle()->trust); 308 psm::nsNSSCertTrust trust(cert->os_cert_handle()->trust);
328 EXPECT_FALSE(trust.HasTrustedCA(PR_TRUE, PR_FALSE, PR_FALSE)); 309 EXPECT_FALSE(trust.HasTrustedCA(PR_TRUE, PR_FALSE, PR_FALSE));
329 EXPECT_TRUE(trust.HasTrustedCA(PR_FALSE, PR_TRUE, PR_FALSE)); 310 EXPECT_TRUE(trust.HasTrustedCA(PR_FALSE, PR_TRUE, PR_FALSE));
330 EXPECT_FALSE(trust.HasTrustedCA(PR_FALSE, PR_FALSE, PR_TRUE)); 311 EXPECT_FALSE(trust.HasTrustedCA(PR_FALSE, PR_FALSE, PR_TRUE));
331 EXPECT_TRUE(trust.HasCA(PR_TRUE, PR_TRUE, PR_TRUE)); 312 EXPECT_TRUE(trust.HasCA(PR_TRUE, PR_TRUE, PR_TRUE));
332 } 313 }
333 314
334 TEST_F(CertDatabaseNSSTest, ImportCACert_ObjSignTrust) { 315 TEST_F(CertDatabaseNSSTest, ImportCACert_ObjSignTrust) {
335 std::string cert_data = ReadTestFile("root_ca_cert.crt"); 316 CertificateList certs = CreateCertificateListFromFile(
336 317 GetTestCertsDirectory(), "root_ca_cert.crt",
337 CertificateList certs = 318 X509Certificate::FORMAT_AUTO);
338 X509Certificate::CreateCertificateListFromBytes(
339 cert_data.data(), cert_data.size(), X509Certificate::FORMAT_AUTO);
340 ASSERT_EQ(1U, certs.size()); 319 ASSERT_EQ(1U, certs.size());
341 EXPECT_FALSE(certs[0]->os_cert_handle()->isperm); 320 EXPECT_FALSE(certs[0]->os_cert_handle()->isperm);
342 321
343 // Import it. 322 // Import it.
344 CertDatabase::ImportCertFailureList failed; 323 CertDatabase::ImportCertFailureList failed;
345 EXPECT_TRUE(cert_db_.ImportCACerts(certs, CertDatabase::TRUSTED_OBJ_SIGN, 324 EXPECT_TRUE(cert_db_.ImportCACerts(certs, CertDatabase::TRUSTED_OBJ_SIGN,
346 &failed)); 325 &failed));
347 326
348 EXPECT_EQ(0U, failed.size()); 327 EXPECT_EQ(0U, failed.size());
349 328
350 CertificateList cert_list = ListCertsInSlot(slot_->os_module_handle()); 329 CertificateList cert_list = ListCertsInSlot(slot_->os_module_handle());
351 ASSERT_EQ(1U, cert_list.size()); 330 ASSERT_EQ(1U, cert_list.size());
352 scoped_refptr<X509Certificate> cert(cert_list[0]); 331 scoped_refptr<X509Certificate> cert(cert_list[0]);
353 EXPECT_EQ("Test CA", cert->subject().common_name); 332 EXPECT_EQ("Test CA", cert->subject().common_name);
354 333
355 EXPECT_EQ(CertDatabase::TRUSTED_OBJ_SIGN, 334 EXPECT_EQ(CertDatabase::TRUSTED_OBJ_SIGN,
356 cert_db_.GetCertTrust(cert.get(), CA_CERT)); 335 cert_db_.GetCertTrust(cert.get(), CA_CERT));
357 336
358 psm::nsNSSCertTrust trust(cert->os_cert_handle()->trust); 337 psm::nsNSSCertTrust trust(cert->os_cert_handle()->trust);
359 EXPECT_FALSE(trust.HasTrustedCA(PR_TRUE, PR_FALSE, PR_FALSE)); 338 EXPECT_FALSE(trust.HasTrustedCA(PR_TRUE, PR_FALSE, PR_FALSE));
360 EXPECT_FALSE(trust.HasTrustedCA(PR_FALSE, PR_TRUE, PR_FALSE)); 339 EXPECT_FALSE(trust.HasTrustedCA(PR_FALSE, PR_TRUE, PR_FALSE));
361 EXPECT_TRUE(trust.HasTrustedCA(PR_FALSE, PR_FALSE, PR_TRUE)); 340 EXPECT_TRUE(trust.HasTrustedCA(PR_FALSE, PR_FALSE, PR_TRUE));
362 EXPECT_TRUE(trust.HasCA(PR_TRUE, PR_TRUE, PR_TRUE)); 341 EXPECT_TRUE(trust.HasCA(PR_TRUE, PR_TRUE, PR_TRUE));
363 } 342 }
364 343
365 TEST_F(CertDatabaseNSSTest, ImportCA_NotCACert) { 344 TEST_F(CertDatabaseNSSTest, ImportCA_NotCACert) {
366 std::string cert_data = ReadTestFile("google.single.pem"); 345 CertificateList certs = CreateCertificateListFromFile(
367 346 GetTestCertsDirectory(), "google.single.pem",
368 CertificateList certs = 347 X509Certificate::FORMAT_AUTO);
369 X509Certificate::CreateCertificateListFromBytes(
370 cert_data.data(), cert_data.size(), X509Certificate::FORMAT_AUTO);
371 ASSERT_EQ(1U, certs.size()); 348 ASSERT_EQ(1U, certs.size());
372 EXPECT_FALSE(certs[0]->os_cert_handle()->isperm); 349 EXPECT_FALSE(certs[0]->os_cert_handle()->isperm);
373 350
374 // Import it. 351 // Import it.
375 CertDatabase::ImportCertFailureList failed; 352 CertDatabase::ImportCertFailureList failed;
376 EXPECT_TRUE(cert_db_.ImportCACerts(certs, CertDatabase::TRUSTED_SSL, 353 EXPECT_TRUE(cert_db_.ImportCACerts(certs, CertDatabase::TRUSTED_SSL,
377 &failed)); 354 &failed));
378 ASSERT_EQ(1U, failed.size()); 355 ASSERT_EQ(1U, failed.size());
379 // Note: this compares pointers directly. It's okay in this case because 356 // Note: this compares pointers directly. It's okay in this case because
380 // ImportCACerts returns the same pointers that were passed in. In the 357 // ImportCACerts returns the same pointers that were passed in. In the
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
488 // ASSERT_EQ(3U, cert_list.size()); 465 // ASSERT_EQ(3U, cert_list.size());
489 // EXPECT_EQ("DOD CA-13", cert_list[0]->subject().common_name); 466 // EXPECT_EQ("DOD CA-13", cert_list[0]->subject().common_name);
490 // EXPECT_EQ("DoD Root CA 2", cert_list[1]->subject().common_name); 467 // EXPECT_EQ("DoD Root CA 2", cert_list[1]->subject().common_name);
491 // EXPECT_EQ("DOD CA-17", cert_list[2]->subject().common_name); 468 // EXPECT_EQ("DOD CA-17", cert_list[2]->subject().common_name);
492 ASSERT_EQ(2U, cert_list.size()); 469 ASSERT_EQ(2U, cert_list.size());
493 EXPECT_EQ("DoD Root CA 2", cert_list[0]->subject().common_name); 470 EXPECT_EQ("DoD Root CA 2", cert_list[0]->subject().common_name);
494 EXPECT_EQ("DOD CA-17", cert_list[1]->subject().common_name); 471 EXPECT_EQ("DOD CA-17", cert_list[1]->subject().common_name);
495 } 472 }
496 473
497 TEST_F(CertDatabaseNSSTest, ImportCACertNotHierarchy) { 474 TEST_F(CertDatabaseNSSTest, ImportCACertNotHierarchy) {
498 std::string cert_data = ReadTestFile("root_ca_cert.crt"); 475 CertificateList certs = CreateCertificateListFromFile(
499 CertificateList certs = 476 GetTestCertsDirectory(), "root_ca_cert.crt",
500 X509Certificate::CreateCertificateListFromBytes( 477 X509Certificate::FORMAT_AUTO);
501 cert_data.data(), cert_data.size(), X509Certificate::FORMAT_AUTO);
502 ASSERT_EQ(1U, certs.size()); 478 ASSERT_EQ(1U, certs.size());
503 ASSERT_TRUE(ReadCertIntoList("dod_ca_13_cert.der", &certs)); 479 ASSERT_TRUE(ReadCertIntoList("dod_ca_13_cert.der", &certs));
504 ASSERT_TRUE(ReadCertIntoList("dod_ca_17_cert.der", &certs)); 480 ASSERT_TRUE(ReadCertIntoList("dod_ca_17_cert.der", &certs));
505 481
506 // Import it. 482 // Import it.
507 CertDatabase::ImportCertFailureList failed; 483 CertDatabase::ImportCertFailureList failed;
508 EXPECT_TRUE(cert_db_.ImportCACerts( 484 EXPECT_TRUE(cert_db_.ImportCACerts(
509 certs, CertDatabase::TRUSTED_SSL | CertDatabase::TRUSTED_EMAIL | 485 certs, CertDatabase::TRUSTED_SSL | CertDatabase::TRUSTED_EMAIL |
510 CertDatabase::TRUSTED_OBJ_SIGN, &failed)); 486 CertDatabase::TRUSTED_OBJ_SIGN, &failed));
511 487
512 ASSERT_EQ(2U, failed.size()); 488 ASSERT_EQ(2U, failed.size());
513 // TODO(mattm): should check for net error equivalent of 489 // TODO(mattm): should check for net error equivalent of
514 // SEC_ERROR_UNKNOWN_ISSUER 490 // SEC_ERROR_UNKNOWN_ISSUER
515 EXPECT_EQ("DOD CA-13", failed[0].certificate->subject().common_name); 491 EXPECT_EQ("DOD CA-13", failed[0].certificate->subject().common_name);
516 EXPECT_EQ(ERR_FAILED, failed[0].net_error); 492 EXPECT_EQ(ERR_FAILED, failed[0].net_error);
517 EXPECT_EQ("DOD CA-17", failed[1].certificate->subject().common_name); 493 EXPECT_EQ("DOD CA-17", failed[1].certificate->subject().common_name);
518 EXPECT_EQ(ERR_FAILED, failed[1].net_error); 494 EXPECT_EQ(ERR_FAILED, failed[1].net_error);
519 495
520 CertificateList cert_list = ListCertsInSlot(slot_->os_module_handle()); 496 CertificateList cert_list = ListCertsInSlot(slot_->os_module_handle());
521 ASSERT_EQ(1U, cert_list.size()); 497 ASSERT_EQ(1U, cert_list.size());
522 EXPECT_EQ("Test CA", cert_list[0]->subject().common_name); 498 EXPECT_EQ("Test CA", cert_list[0]->subject().common_name);
523 } 499 }
524 500
525 // http://crbug.com/108009 - Disabled, as google.chain.pem is an expired 501 // http://crbug.com/108009 - Disabled, as google.chain.pem is an expired
526 // certificate. 502 // certificate.
527 TEST_F(CertDatabaseNSSTest, DISABLED_ImportServerCert) { 503 TEST_F(CertDatabaseNSSTest, DISABLED_ImportServerCert) {
528 // Need to import intermediate cert for the verify of google cert, otherwise 504 // Need to import intermediate cert for the verify of google cert, otherwise
529 // it will try to fetch it automatically with cert_pi_useAIACertFetch, which 505 // it will try to fetch it automatically with cert_pi_useAIACertFetch, which
530 // will cause OCSPCreateSession on the main thread, which is not allowed. 506 // will cause OCSPCreateSession on the main thread, which is not allowed.
531 std::string cert_data = ReadTestFile("google.chain.pem"); 507 CertificateList certs = CreateCertificateListFromFile(
532 CertificateList certs = 508 GetTestCertsDirectory(), "google.chain.pem",
533 X509Certificate::CreateCertificateListFromBytes( 509 X509Certificate::FORMAT_AUTO);
534 cert_data.data(), cert_data.size(), X509Certificate::FORMAT_AUTO);
535 ASSERT_EQ(2U, certs.size()); 510 ASSERT_EQ(2U, certs.size());
536 511
537 CertDatabase::ImportCertFailureList failed; 512 CertDatabase::ImportCertFailureList failed;
538 EXPECT_TRUE(cert_db_.ImportServerCert(certs, &failed)); 513 EXPECT_TRUE(cert_db_.ImportServerCert(certs, &failed));
539 514
540 EXPECT_EQ(0U, failed.size()); 515 EXPECT_EQ(0U, failed.size());
541 516
542 CertificateList cert_list = ListCertsInSlot(slot_->os_module_handle()); 517 CertificateList cert_list = ListCertsInSlot(slot_->os_module_handle());
543 ASSERT_EQ(2U, cert_list.size()); 518 ASSERT_EQ(2U, cert_list.size());
544 scoped_refptr<X509Certificate> goog_cert(cert_list[0]); 519 scoped_refptr<X509Certificate> goog_cert(cert_list[0]);
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
593 CertDatabase::TRUSTED_SSL | CertDatabase::TRUSTED_EMAIL)); 568 CertDatabase::TRUSTED_SSL | CertDatabase::TRUSTED_EMAIL));
594 569
595 verify_result.Reset(); 570 verify_result.Reset();
596 error = verify_proc->Verify(puny_cert, "xn--wgv71a119e.com", flags, 571 error = verify_proc->Verify(puny_cert, "xn--wgv71a119e.com", flags,
597 NULL, &verify_result); 572 NULL, &verify_result);
598 EXPECT_EQ(OK, error); 573 EXPECT_EQ(OK, error);
599 EXPECT_EQ(0U, verify_result.cert_status); 574 EXPECT_EQ(0U, verify_result.cert_status);
600 } 575 }
601 576
602 } // namespace net 577 } // namespace net
OLDNEW
« no previous file with comments | « chrome/common/net/x509_certificate_model_unittest.cc ('k') | net/socket/ssl_server_socket_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698