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

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

Issue 8342054: net: enable CRL sets behind a command line flag. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ... Created 9 years, 1 month 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/base/x509_certificate_nss.cc ('k') | net/base/x509_certificate_win.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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "base/sha1.h" 9 #include "base/sha1.h"
10 #include "base/string_number_conversions.h" 10 #include "base/string_number_conversions.h"
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 std::vector<std::string> dns_names; 226 std::vector<std::string> dns_names;
227 google_cert->GetDNSNames(&dns_names); 227 google_cert->GetDNSNames(&dns_names);
228 ASSERT_EQ(1U, dns_names.size()); 228 ASSERT_EQ(1U, dns_names.size());
229 EXPECT_EQ("www.google.com", dns_names[0]); 229 EXPECT_EQ("www.google.com", dns_names[0]);
230 230
231 #if TEST_EV 231 #if TEST_EV
232 // TODO(avi): turn this on for the Mac once EV checking is implemented. 232 // TODO(avi): turn this on for the Mac once EV checking is implemented.
233 CertVerifyResult verify_result; 233 CertVerifyResult verify_result;
234 int flags = X509Certificate::VERIFY_REV_CHECKING_ENABLED | 234 int flags = X509Certificate::VERIFY_REV_CHECKING_ENABLED |
235 X509Certificate::VERIFY_EV_CERT; 235 X509Certificate::VERIFY_EV_CERT;
236 EXPECT_EQ(OK, google_cert->Verify("www.google.com", flags, &verify_result)); 236 EXPECT_EQ(OK, google_cert->Verify("www.google.com", flags, NULL,
237 &verify_result);
237 EXPECT_FALSE(verify_result.cert_status & CERT_STATUS_IS_EV); 238 EXPECT_FALSE(verify_result.cert_status & CERT_STATUS_IS_EV);
238 #endif 239 #endif
239 } 240 }
240 241
241 TEST(X509CertificateTest, GoogleCertParsing) { 242 TEST(X509CertificateTest, GoogleCertParsing) {
242 scoped_refptr<X509Certificate> google_cert( 243 scoped_refptr<X509Certificate> google_cert(
243 X509Certificate::CreateFromBytes( 244 X509Certificate::CreateFromBytes(
244 reinterpret_cast<const char*>(google_der), sizeof(google_der))); 245 reinterpret_cast<const char*>(google_der), sizeof(google_der)));
245 246
246 CheckGoogleCert(google_cert, google_fingerprint, 247 CheckGoogleCert(google_cert, google_fingerprint,
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 std::vector<std::string> dns_names; 293 std::vector<std::string> dns_names;
293 webkit_cert->GetDNSNames(&dns_names); 294 webkit_cert->GetDNSNames(&dns_names);
294 ASSERT_EQ(2U, dns_names.size()); 295 ASSERT_EQ(2U, dns_names.size());
295 EXPECT_EQ("*.webkit.org", dns_names[0]); 296 EXPECT_EQ("*.webkit.org", dns_names[0]);
296 EXPECT_EQ("webkit.org", dns_names[1]); 297 EXPECT_EQ("webkit.org", dns_names[1]);
297 298
298 #if TEST_EV 299 #if TEST_EV
299 int flags = X509Certificate::VERIFY_REV_CHECKING_ENABLED | 300 int flags = X509Certificate::VERIFY_REV_CHECKING_ENABLED |
300 X509Certificate::VERIFY_EV_CERT; 301 X509Certificate::VERIFY_EV_CERT;
301 CertVerifyResult verify_result; 302 CertVerifyResult verify_result;
302 EXPECT_EQ(OK, webkit_cert->Verify("webkit.org", flags, &verify_result)); 303 EXPECT_EQ(OK, webkit_cert->Verify("webkit.org", flags, NULL, &verify_result));
303 EXPECT_FALSE(verify_result.cert_status & CERT_STATUS_IS_EV); 304 EXPECT_FALSE(verify_result.cert_status & CERT_STATUS_IS_EV);
304 #endif 305 #endif
305 306
306 // Test that the wildcard cert matches properly. 307 // Test that the wildcard cert matches properly.
307 EXPECT_TRUE(webkit_cert->VerifyNameMatch("www.webkit.org")); 308 EXPECT_TRUE(webkit_cert->VerifyNameMatch("www.webkit.org"));
308 EXPECT_TRUE(webkit_cert->VerifyNameMatch("foo.webkit.org")); 309 EXPECT_TRUE(webkit_cert->VerifyNameMatch("foo.webkit.org"));
309 EXPECT_TRUE(webkit_cert->VerifyNameMatch("webkit.org")); 310 EXPECT_TRUE(webkit_cert->VerifyNameMatch("webkit.org"));
310 EXPECT_FALSE(webkit_cert->VerifyNameMatch("www.webkit.com")); 311 EXPECT_FALSE(webkit_cert->VerifyNameMatch("www.webkit.com"));
311 EXPECT_FALSE(webkit_cert->VerifyNameMatch("www.foo.webkit.com")); 312 EXPECT_FALSE(webkit_cert->VerifyNameMatch("www.foo.webkit.com"));
312 } 313 }
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 std::vector<std::string> dns_names; 356 std::vector<std::string> dns_names;
356 thawte_cert->GetDNSNames(&dns_names); 357 thawte_cert->GetDNSNames(&dns_names);
357 ASSERT_EQ(1U, dns_names.size()); 358 ASSERT_EQ(1U, dns_names.size());
358 EXPECT_EQ("www.thawte.com", dns_names[0]); 359 EXPECT_EQ("www.thawte.com", dns_names[0]);
359 360
360 #if TEST_EV 361 #if TEST_EV
361 int flags = X509Certificate::VERIFY_REV_CHECKING_ENABLED | 362 int flags = X509Certificate::VERIFY_REV_CHECKING_ENABLED |
362 X509Certificate::VERIFY_EV_CERT; 363 X509Certificate::VERIFY_EV_CERT;
363 CertVerifyResult verify_result; 364 CertVerifyResult verify_result;
364 // EV cert verification requires revocation checking. 365 // EV cert verification requires revocation checking.
365 EXPECT_EQ(OK, thawte_cert->Verify("www.thawte.com", flags, &verify_result)); 366 EXPECT_EQ(OK, thawte_cert->Verify("www.thawte.com", flags, NULL,
367 &verify_result);
366 EXPECT_TRUE(verify_result.cert_status & CERT_STATUS_IS_EV); 368 EXPECT_TRUE(verify_result.cert_status & CERT_STATUS_IS_EV);
367 // Consequently, if we don't have revocation checking enabled, we can't claim 369 // Consequently, if we don't have revocation checking enabled, we can't claim
368 // any cert is EV. 370 // any cert is EV.
369 flags = X509Certificate::VERIFY_EV_CERT; 371 flags = X509Certificate::VERIFY_EV_CERT;
370 EXPECT_EQ(OK, thawte_cert->Verify("www.thawte.com", flags, &verify_result)); 372 EXPECT_EQ(OK, thawte_cert->Verify("www.thawte.com", flags, NULL,
373 &verify_result));
371 EXPECT_FALSE(verify_result.cert_status & CERT_STATUS_IS_EV); 374 EXPECT_FALSE(verify_result.cert_status & CERT_STATUS_IS_EV);
372 #endif 375 #endif
373 } 376 }
374 377
375 TEST(X509CertificateTest, PaypalNullCertParsing) { 378 TEST(X509CertificateTest, PaypalNullCertParsing) {
376 scoped_refptr<X509Certificate> paypal_null_cert( 379 scoped_refptr<X509Certificate> paypal_null_cert(
377 X509Certificate::CreateFromBytes( 380 X509Certificate::CreateFromBytes(
378 reinterpret_cast<const char*>(paypal_null_der), 381 reinterpret_cast<const char*>(paypal_null_der),
379 sizeof(paypal_null_der))); 382 sizeof(paypal_null_der)));
380 383
381 ASSERT_NE(static_cast<X509Certificate*>(NULL), paypal_null_cert); 384 ASSERT_NE(static_cast<X509Certificate*>(NULL), paypal_null_cert);
382 385
383 const SHA1Fingerprint& fingerprint = 386 const SHA1Fingerprint& fingerprint =
384 paypal_null_cert->fingerprint(); 387 paypal_null_cert->fingerprint();
385 for (size_t i = 0; i < 20; ++i) 388 for (size_t i = 0; i < 20; ++i)
386 EXPECT_EQ(paypal_null_fingerprint[i], fingerprint.data[i]); 389 EXPECT_EQ(paypal_null_fingerprint[i], fingerprint.data[i]);
387 390
388 int flags = 0; 391 int flags = 0;
389 CertVerifyResult verify_result; 392 CertVerifyResult verify_result;
390 int error = paypal_null_cert->Verify("www.paypal.com", flags, 393 int error = paypal_null_cert->Verify("www.paypal.com", flags, NULL,
391 &verify_result); 394 &verify_result);
392 #if defined(USE_OPENSSL) || defined(OS_MACOSX) || defined(OS_WIN) 395 #if defined(USE_OPENSSL) || defined(OS_MACOSX) || defined(OS_WIN)
393 // TOOD(bulach): investigate why macosx and win aren't returning 396 // TOOD(bulach): investigate why macosx and win aren't returning
394 // ERR_CERT_INVALID or ERR_CERT_COMMON_NAME_INVALID. 397 // ERR_CERT_INVALID or ERR_CERT_COMMON_NAME_INVALID.
395 EXPECT_EQ(ERR_CERT_AUTHORITY_INVALID, error); 398 EXPECT_EQ(ERR_CERT_AUTHORITY_INVALID, error);
396 #else 399 #else
397 EXPECT_EQ(ERR_CERT_COMMON_NAME_INVALID, error); 400 EXPECT_EQ(ERR_CERT_COMMON_NAME_INVALID, error);
398 #endif 401 #endif
399 // Either the system crypto library should correctly report a certificate 402 // Either the system crypto library should correctly report a certificate
400 // name mismatch, or our certificate blacklist should cause us to report an 403 // name mismatch, or our certificate blacklist should cause us to report an
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
453 ASSERT_TRUE(root_certs->AddFromFile(root_cert_path)); 456 ASSERT_TRUE(root_certs->AddFromFile(root_cert_path));
454 457
455 X509Certificate::OSCertHandles intermediates; 458 X509Certificate::OSCertHandles intermediates;
456 intermediates.push_back(intermediate_cert->os_cert_handle()); 459 intermediates.push_back(intermediate_cert->os_cert_handle());
457 scoped_refptr<X509Certificate> cert_chain = 460 scoped_refptr<X509Certificate> cert_chain =
458 X509Certificate::CreateFromHandle(server_cert->os_cert_handle(), 461 X509Certificate::CreateFromHandle(server_cert->os_cert_handle(),
459 intermediates); 462 intermediates);
460 463
461 int flags = 0; 464 int flags = 0;
462 CertVerifyResult verify_result; 465 CertVerifyResult verify_result;
463 int error = cert_chain->Verify("www.us.army.mil", flags, &verify_result); 466 int error = cert_chain->Verify("www.us.army.mil", flags, NULL,
467 &verify_result);
464 EXPECT_EQ(OK, error); 468 EXPECT_EQ(OK, error);
465 EXPECT_EQ(0U, verify_result.cert_status); 469 EXPECT_EQ(0U, verify_result.cert_status);
466 root_certs->Clear(); 470 root_certs->Clear();
467 } 471 }
468 472
469 // Test for bug 58437. 473 // Test for bug 58437.
470 // This certificate will expire on 2011-12-21. The test will still 474 // This certificate will expire on 2011-12-21. The test will still
471 // pass if error == ERR_CERT_DATE_INVALID. 475 // pass if error == ERR_CERT_DATE_INVALID.
472 // This test is DISABLED because it appears that we cannot do 476 // This test is DISABLED because it appears that we cannot do
473 // certificate revocation checking when running all of the net unit tests. 477 // certificate revocation checking when running all of the net unit tests.
(...skipping 14 matching lines...) Expand all
488 492
489 X509Certificate::OSCertHandles intermediates; 493 X509Certificate::OSCertHandles intermediates;
490 intermediates.push_back(intermediate_cert->os_cert_handle()); 494 intermediates.push_back(intermediate_cert->os_cert_handle());
491 scoped_refptr<X509Certificate> cert_chain = 495 scoped_refptr<X509Certificate> cert_chain =
492 X509Certificate::CreateFromHandle(server_cert->os_cert_handle(), 496 X509Certificate::CreateFromHandle(server_cert->os_cert_handle(),
493 intermediates); 497 intermediates);
494 498
495 CertVerifyResult verify_result; 499 CertVerifyResult verify_result;
496 int flags = X509Certificate::VERIFY_REV_CHECKING_ENABLED | 500 int flags = X509Certificate::VERIFY_REV_CHECKING_ENABLED |
497 X509Certificate::VERIFY_EV_CERT; 501 X509Certificate::VERIFY_EV_CERT;
498 int error = cert_chain->Verify("2029.globalsign.com", flags, &verify_result); 502 int error = cert_chain->Verify("2029.globalsign.com", flags, NULL,
503 &verify_result);
499 if (error == OK) 504 if (error == OK)
500 EXPECT_TRUE(verify_result.cert_status & CERT_STATUS_IS_EV); 505 EXPECT_TRUE(verify_result.cert_status & CERT_STATUS_IS_EV);
501 else 506 else
502 EXPECT_EQ(ERR_CERT_DATE_INVALID, error); 507 EXPECT_EQ(ERR_CERT_DATE_INVALID, error);
503 } 508 }
504 509
505 // Test for bug 94673. 510 // Test for bug 94673.
506 TEST(X509CertificateTest, GoogleDigiNotarTest) { 511 TEST(X509CertificateTest, GoogleDigiNotarTest) {
507 FilePath certs_dir = GetTestCertsDirectory(); 512 FilePath certs_dir = GetTestCertsDirectory();
508 513
509 scoped_refptr<X509Certificate> server_cert = 514 scoped_refptr<X509Certificate> server_cert =
510 ImportCertFromFile(certs_dir, "google_diginotar.pem"); 515 ImportCertFromFile(certs_dir, "google_diginotar.pem");
511 ASSERT_NE(static_cast<X509Certificate*>(NULL), server_cert); 516 ASSERT_NE(static_cast<X509Certificate*>(NULL), server_cert);
512 517
513 scoped_refptr<X509Certificate> intermediate_cert = 518 scoped_refptr<X509Certificate> intermediate_cert =
514 ImportCertFromFile(certs_dir, "diginotar_public_ca_2025.pem"); 519 ImportCertFromFile(certs_dir, "diginotar_public_ca_2025.pem");
515 ASSERT_NE(static_cast<X509Certificate*>(NULL), intermediate_cert); 520 ASSERT_NE(static_cast<X509Certificate*>(NULL), intermediate_cert);
516 521
517 X509Certificate::OSCertHandles intermediates; 522 X509Certificate::OSCertHandles intermediates;
518 intermediates.push_back(intermediate_cert->os_cert_handle()); 523 intermediates.push_back(intermediate_cert->os_cert_handle());
519 scoped_refptr<X509Certificate> cert_chain = 524 scoped_refptr<X509Certificate> cert_chain =
520 X509Certificate::CreateFromHandle(server_cert->os_cert_handle(), 525 X509Certificate::CreateFromHandle(server_cert->os_cert_handle(),
521 intermediates); 526 intermediates);
522 527
523 CertVerifyResult verify_result; 528 CertVerifyResult verify_result;
524 int flags = X509Certificate::VERIFY_REV_CHECKING_ENABLED; 529 int flags = X509Certificate::VERIFY_REV_CHECKING_ENABLED;
525 int error = cert_chain->Verify("mail.google.com", flags, &verify_result); 530 int error = cert_chain->Verify("mail.google.com", flags, NULL,
531 &verify_result);
526 EXPECT_NE(OK, error); 532 EXPECT_NE(OK, error);
527 533
528 // Now turn off revocation checking. Certificate verification should still 534 // Now turn off revocation checking. Certificate verification should still
529 // fail. 535 // fail.
530 flags = 0; 536 flags = 0;
531 error = cert_chain->Verify("mail.google.com", flags, &verify_result); 537 error = cert_chain->Verify("mail.google.com", flags, NULL, &verify_result);
532 EXPECT_NE(OK, error); 538 EXPECT_NE(OK, error);
533 } 539 }
534 540
535 TEST(X509CertificateTest, DigiNotarCerts) { 541 TEST(X509CertificateTest, DigiNotarCerts) {
536 static const char* const kDigiNotarFilenames[] = { 542 static const char* const kDigiNotarFilenames[] = {
537 "diginotar_root_ca.pem", 543 "diginotar_root_ca.pem",
538 "diginotar_cyber_ca.pem", 544 "diginotar_cyber_ca.pem",
539 "diginotar_services_1024_ca.pem", 545 "diginotar_services_1024_ca.pem",
540 "diginotar_pkioverheid.pem", 546 "diginotar_pkioverheid.pem",
541 "diginotar_pkioverheid_g2.pem", 547 "diginotar_pkioverheid_g2.pem",
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
581 X509Certificate::OSCertHandles intermediates; 587 X509Certificate::OSCertHandles intermediates;
582 intermediates.push_back(intermediate_cert->os_cert_handle()); 588 intermediates.push_back(intermediate_cert->os_cert_handle());
583 scoped_refptr<X509Certificate> cert_chain = 589 scoped_refptr<X509Certificate> cert_chain =
584 X509Certificate::CreateFromHandle(cert->os_cert_handle(), 590 X509Certificate::CreateFromHandle(cert->os_cert_handle(),
585 intermediates); 591 intermediates);
586 592
587 int flags = 0; 593 int flags = 0;
588 CertVerifyResult verify_result; 594 CertVerifyResult verify_result;
589 // This is going to blow up in Feb 2012. Sorry! Disable and file a bug 595 // This is going to blow up in Feb 2012. Sorry! Disable and file a bug
590 // against agl. Also see PublicKeyHashes in this file. 596 // against agl. Also see PublicKeyHashes in this file.
591 int error = cert_chain->Verify("www.nist.gov", flags, &verify_result); 597 int error = cert_chain->Verify("www.nist.gov", flags, NULL, &verify_result);
592 EXPECT_EQ(OK, error); 598 EXPECT_EQ(OK, error);
593 EXPECT_EQ(0U, verify_result.cert_status); 599 EXPECT_EQ(0U, verify_result.cert_status);
594 EXPECT_TRUE(verify_result.is_issued_by_known_root); 600 EXPECT_TRUE(verify_result.is_issued_by_known_root);
595 } 601 }
596 602
597 // This is the SHA1 hash of the SubjectPublicKeyInfo of nist.der. 603 // This is the SHA1 hash of the SubjectPublicKeyInfo of nist.der.
598 static const char nistSPKIHash[] = 604 static const char nistSPKIHash[] =
599 "\x15\x60\xde\x65\x4e\x03\x9f\xd0\x08\x82" 605 "\x15\x60\xde\x65\x4e\x03\x9f\xd0\x08\x82"
600 "\xa9\x6a\xc4\x65\x8e\x6f\x92\x06\x84\x35"; 606 "\xa9\x6a\xc4\x65\x8e\x6f\x92\x06\x84\x35";
601 607
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
655 661
656 X509Certificate::OSCertHandles intermediates; 662 X509Certificate::OSCertHandles intermediates;
657 intermediates.push_back(intermediate_cert->os_cert_handle()); 663 intermediates.push_back(intermediate_cert->os_cert_handle());
658 scoped_refptr<X509Certificate> cert_chain = 664 scoped_refptr<X509Certificate> cert_chain =
659 X509Certificate::CreateFromHandle(cert->os_cert_handle(), 665 X509Certificate::CreateFromHandle(cert->os_cert_handle(),
660 intermediates); 666 intermediates);
661 667
662 int flags = 0; 668 int flags = 0;
663 CertVerifyResult verify_result; 669 CertVerifyResult verify_result;
664 670
665 int error = cert_chain->Verify("www.nist.gov", flags, &verify_result); 671 int error = cert_chain->Verify("www.nist.gov", flags, NULL, &verify_result);
666 EXPECT_EQ(OK, error); 672 EXPECT_EQ(OK, error);
667 EXPECT_EQ(0U, verify_result.cert_status); 673 EXPECT_EQ(0U, verify_result.cert_status);
668 ASSERT_LE(2u, verify_result.public_key_hashes.size()); 674 ASSERT_LE(2u, verify_result.public_key_hashes.size());
669 EXPECT_EQ(HexEncode(nistSPKIHash, base::kSHA1Length), 675 EXPECT_EQ(HexEncode(nistSPKIHash, base::kSHA1Length),
670 HexEncode(verify_result.public_key_hashes[0].data, base::kSHA1Length)); 676 HexEncode(verify_result.public_key_hashes[0].data, base::kSHA1Length));
671 EXPECT_EQ("83244223D6CBF0A26FC7DE27CEBCA4BDA32612AD", 677 EXPECT_EQ("83244223D6CBF0A26FC7DE27CEBCA4BDA32612AD",
672 HexEncode(verify_result.public_key_hashes[1].data, base::kSHA1Length)); 678 HexEncode(verify_result.public_key_hashes[1].data, base::kSHA1Length));
673 679
674 TestRootCerts::GetInstance()->Clear(); 680 TestRootCerts::GetInstance()->Clear();
675 } 681 }
676 682
677 // A regression test for http://crbug.com/70293. 683 // A regression test for http://crbug.com/70293.
678 // The Key Usage extension in this RSA SSL server certificate does not have 684 // The Key Usage extension in this RSA SSL server certificate does not have
679 // the keyEncipherment bit. 685 // the keyEncipherment bit.
680 TEST(X509CertificateTest, InvalidKeyUsage) { 686 TEST(X509CertificateTest, InvalidKeyUsage) {
681 FilePath certs_dir = GetTestCertsDirectory(); 687 FilePath certs_dir = GetTestCertsDirectory();
682 688
683 scoped_refptr<X509Certificate> server_cert = 689 scoped_refptr<X509Certificate> server_cert =
684 ImportCertFromFile(certs_dir, "invalid_key_usage_cert.der"); 690 ImportCertFromFile(certs_dir, "invalid_key_usage_cert.der");
685 ASSERT_NE(static_cast<X509Certificate*>(NULL), server_cert); 691 ASSERT_NE(static_cast<X509Certificate*>(NULL), server_cert);
686 692
687 int flags = 0; 693 int flags = 0;
688 CertVerifyResult verify_result; 694 CertVerifyResult verify_result;
689 int error = server_cert->Verify("jira.aquameta.com", flags, &verify_result); 695 int error = server_cert->Verify("jira.aquameta.com", flags, NULL,
696 &verify_result);
690 #if defined(USE_OPENSSL) 697 #if defined(USE_OPENSSL)
691 // This certificate has two errors: "invalid key usage" and "untrusted CA". 698 // This certificate has two errors: "invalid key usage" and "untrusted CA".
692 // However, OpenSSL returns only one (the latter), and we can't detect 699 // However, OpenSSL returns only one (the latter), and we can't detect
693 // the other errors. 700 // the other errors.
694 EXPECT_EQ(ERR_CERT_AUTHORITY_INVALID, error); 701 EXPECT_EQ(ERR_CERT_AUTHORITY_INVALID, error);
695 #else 702 #else
696 EXPECT_EQ(ERR_CERT_INVALID, error); 703 EXPECT_EQ(ERR_CERT_INVALID, error);
697 EXPECT_TRUE(verify_result.cert_status & CERT_STATUS_INVALID); 704 EXPECT_TRUE(verify_result.cert_status & CERT_STATUS_INVALID);
698 #endif 705 #endif
699 // TODO(wtc): fix http://crbug.com/75520 to get all the certificate errors 706 // TODO(wtc): fix http://crbug.com/75520 to get all the certificate errors
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
885 TestRootCerts::GetInstance()->Add(certs[2]); 892 TestRootCerts::GetInstance()->Add(certs[2]);
886 893
887 scoped_refptr<X509Certificate> google_full_chain = 894 scoped_refptr<X509Certificate> google_full_chain =
888 X509Certificate::CreateFromHandle(certs[0]->os_cert_handle(), 895 X509Certificate::CreateFromHandle(certs[0]->os_cert_handle(),
889 intermediates); 896 intermediates);
890 ASSERT_NE(static_cast<X509Certificate*>(NULL), google_full_chain); 897 ASSERT_NE(static_cast<X509Certificate*>(NULL), google_full_chain);
891 ASSERT_EQ(2U, google_full_chain->GetIntermediateCertificates().size()); 898 ASSERT_EQ(2U, google_full_chain->GetIntermediateCertificates().size());
892 899
893 CertVerifyResult verify_result; 900 CertVerifyResult verify_result;
894 EXPECT_EQ(static_cast<X509Certificate*>(NULL), verify_result.verified_cert); 901 EXPECT_EQ(static_cast<X509Certificate*>(NULL), verify_result.verified_cert);
895 int error = google_full_chain->Verify("127.0.0.1", 0, &verify_result); 902 int error = google_full_chain->Verify("127.0.0.1", 0, NULL, &verify_result);
896 EXPECT_EQ(OK, error); 903 EXPECT_EQ(OK, error);
897 ASSERT_NE(static_cast<X509Certificate*>(NULL), verify_result.verified_cert); 904 ASSERT_NE(static_cast<X509Certificate*>(NULL), verify_result.verified_cert);
898 905
899 EXPECT_NE(google_full_chain, verify_result.verified_cert); 906 EXPECT_NE(google_full_chain, verify_result.verified_cert);
900 EXPECT_TRUE(X509Certificate::IsSameOSCert( 907 EXPECT_TRUE(X509Certificate::IsSameOSCert(
901 google_full_chain->os_cert_handle(), 908 google_full_chain->os_cert_handle(),
902 verify_result.verified_cert->os_cert_handle())); 909 verify_result.verified_cert->os_cert_handle()));
903 const X509Certificate::OSCertHandles& return_intermediates = 910 const X509Certificate::OSCertHandles& return_intermediates =
904 verify_result.verified_cert->GetIntermediateCertificates(); 911 verify_result.verified_cert->GetIntermediateCertificates();
905 ASSERT_EQ(2U, return_intermediates.size()); 912 ASSERT_EQ(2U, return_intermediates.size());
(...skipping 25 matching lines...) Expand all
931 TestRootCerts::GetInstance()->Add(certs[2]); 938 TestRootCerts::GetInstance()->Add(certs[2]);
932 939
933 scoped_refptr<X509Certificate> google_full_chain = 940 scoped_refptr<X509Certificate> google_full_chain =
934 X509Certificate::CreateFromHandle(certs[0]->os_cert_handle(), 941 X509Certificate::CreateFromHandle(certs[0]->os_cert_handle(),
935 intermediates); 942 intermediates);
936 ASSERT_NE(static_cast<X509Certificate*>(NULL), google_full_chain); 943 ASSERT_NE(static_cast<X509Certificate*>(NULL), google_full_chain);
937 ASSERT_EQ(2U, google_full_chain->GetIntermediateCertificates().size()); 944 ASSERT_EQ(2U, google_full_chain->GetIntermediateCertificates().size());
938 945
939 CertVerifyResult verify_result; 946 CertVerifyResult verify_result;
940 EXPECT_EQ(static_cast<X509Certificate*>(NULL), verify_result.verified_cert); 947 EXPECT_EQ(static_cast<X509Certificate*>(NULL), verify_result.verified_cert);
941 int error = google_full_chain->Verify("127.0.0.1", 0, &verify_result); 948 int error = google_full_chain->Verify("127.0.0.1", 0, NULL, &verify_result);
942 EXPECT_EQ(OK, error); 949 EXPECT_EQ(OK, error);
943 ASSERT_NE(static_cast<X509Certificate*>(NULL), verify_result.verified_cert); 950 ASSERT_NE(static_cast<X509Certificate*>(NULL), verify_result.verified_cert);
944 951
945 EXPECT_NE(google_full_chain, verify_result.verified_cert); 952 EXPECT_NE(google_full_chain, verify_result.verified_cert);
946 EXPECT_TRUE(X509Certificate::IsSameOSCert( 953 EXPECT_TRUE(X509Certificate::IsSameOSCert(
947 google_full_chain->os_cert_handle(), 954 google_full_chain->os_cert_handle(),
948 verify_result.verified_cert->os_cert_handle())); 955 verify_result.verified_cert->os_cert_handle()));
949 const X509Certificate::OSCertHandles& return_intermediates = 956 const X509Certificate::OSCertHandles& return_intermediates =
950 verify_result.verified_cert->GetIntermediateCertificates(); 957 verify_result.verified_cert->GetIntermediateCertificates();
951 ASSERT_EQ(2U, return_intermediates.size()); 958 ASSERT_EQ(2U, return_intermediates.size());
(...skipping 30 matching lines...) Expand all
982 intermediates.push_back(certs[2]->os_cert_handle()); 989 intermediates.push_back(certs[2]->os_cert_handle());
983 990
984 scoped_refptr<X509Certificate> google_full_chain = 991 scoped_refptr<X509Certificate> google_full_chain =
985 X509Certificate::CreateFromHandle(certs[0]->os_cert_handle(), 992 X509Certificate::CreateFromHandle(certs[0]->os_cert_handle(),
986 intermediates); 993 intermediates);
987 ASSERT_NE(static_cast<X509Certificate*>(NULL), google_full_chain); 994 ASSERT_NE(static_cast<X509Certificate*>(NULL), google_full_chain);
988 ASSERT_EQ(4U, google_full_chain->GetIntermediateCertificates().size()); 995 ASSERT_EQ(4U, google_full_chain->GetIntermediateCertificates().size());
989 996
990 CertVerifyResult verify_result; 997 CertVerifyResult verify_result;
991 EXPECT_EQ(static_cast<X509Certificate*>(NULL), verify_result.verified_cert); 998 EXPECT_EQ(static_cast<X509Certificate*>(NULL), verify_result.verified_cert);
992 int error = google_full_chain->Verify("127.0.0.1", 0, &verify_result); 999 int error = google_full_chain->Verify("127.0.0.1", 0, NULL, &verify_result);
993 EXPECT_EQ(OK, error); 1000 EXPECT_EQ(OK, error);
994 ASSERT_NE(static_cast<X509Certificate*>(NULL), verify_result.verified_cert); 1001 ASSERT_NE(static_cast<X509Certificate*>(NULL), verify_result.verified_cert);
995 1002
996 EXPECT_NE(google_full_chain, verify_result.verified_cert); 1003 EXPECT_NE(google_full_chain, verify_result.verified_cert);
997 EXPECT_TRUE(X509Certificate::IsSameOSCert( 1004 EXPECT_TRUE(X509Certificate::IsSameOSCert(
998 google_full_chain->os_cert_handle(), 1005 google_full_chain->os_cert_handle(),
999 verify_result.verified_cert->os_cert_handle())); 1006 verify_result.verified_cert->os_cert_handle()));
1000 const X509Certificate::OSCertHandles& return_intermediates = 1007 const X509Certificate::OSCertHandles& return_intermediates =
1001 verify_result.verified_cert->GetIntermediateCertificates(); 1008 verify_result.verified_cert->GetIntermediateCertificates();
1002 ASSERT_EQ(2U, return_intermediates.size()); 1009 ASSERT_EQ(2U, return_intermediates.size());
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after
1436 } 1443 }
1437 1444
1438 EXPECT_EQ(test_data.expected, X509Certificate::VerifyHostname( 1445 EXPECT_EQ(test_data.expected, X509Certificate::VerifyHostname(
1439 test_data.hostname, common_name, dns_names, ip_addressses)); 1446 test_data.hostname, common_name, dns_names, ip_addressses));
1440 } 1447 }
1441 1448
1442 INSTANTIATE_TEST_CASE_P(, X509CertificateNameVerifyTest, 1449 INSTANTIATE_TEST_CASE_P(, X509CertificateNameVerifyTest,
1443 testing::ValuesIn(kNameVerifyTestData)); 1450 testing::ValuesIn(kNameVerifyTestData));
1444 1451
1445 } // namespace net 1452 } // namespace net
OLDNEW
« no previous file with comments | « net/base/x509_certificate_nss.cc ('k') | net/base/x509_certificate_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698