OLD | NEW |
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 <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" |
(...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
533 EXPECT_EQ("www.google.com", goog_cert->subject().common_name); | 533 EXPECT_EQ("www.google.com", goog_cert->subject().common_name); |
534 EXPECT_EQ("Thawte SGC CA", thawte_cert->subject().common_name); | 534 EXPECT_EQ("Thawte SGC CA", thawte_cert->subject().common_name); |
535 | 535 |
536 EXPECT_EQ(CertDatabase::UNTRUSTED, | 536 EXPECT_EQ(CertDatabase::UNTRUSTED, |
537 cert_db_.GetCertTrust(goog_cert.get(), SERVER_CERT)); | 537 cert_db_.GetCertTrust(goog_cert.get(), SERVER_CERT)); |
538 psm::nsNSSCertTrust goog_trust(goog_cert->os_cert_handle()->trust); | 538 psm::nsNSSCertTrust goog_trust(goog_cert->os_cert_handle()->trust); |
539 EXPECT_TRUE(goog_trust.HasPeer(PR_TRUE, PR_TRUE, PR_TRUE)); | 539 EXPECT_TRUE(goog_trust.HasPeer(PR_TRUE, PR_TRUE, PR_TRUE)); |
540 | 540 |
541 int flags = 0; | 541 int flags = 0; |
542 CertVerifyResult verify_result; | 542 CertVerifyResult verify_result; |
543 int error = goog_cert->Verify("www.google.com", flags, &verify_result); | 543 int error = goog_cert->Verify("www.google.com", flags, NULL, &verify_result); |
544 EXPECT_EQ(OK, error); | 544 EXPECT_EQ(OK, error); |
545 EXPECT_EQ(0U, verify_result.cert_status); | 545 EXPECT_EQ(0U, verify_result.cert_status); |
546 } | 546 } |
547 | 547 |
548 TEST_F(CertDatabaseNSSTest, ImportServerCert_SelfSigned) { | 548 TEST_F(CertDatabaseNSSTest, ImportServerCert_SelfSigned) { |
549 CertificateList certs; | 549 CertificateList certs; |
550 ASSERT_TRUE(ReadCertIntoList("punycodetest.der", &certs)); | 550 ASSERT_TRUE(ReadCertIntoList("punycodetest.der", &certs)); |
551 | 551 |
552 CertDatabase::ImportCertFailureList failed; | 552 CertDatabase::ImportCertFailureList failed; |
553 EXPECT_TRUE(cert_db_.ImportServerCert(certs, &failed)); | 553 EXPECT_TRUE(cert_db_.ImportServerCert(certs, &failed)); |
554 | 554 |
555 EXPECT_EQ(0U, failed.size()); | 555 EXPECT_EQ(0U, failed.size()); |
556 | 556 |
557 CertificateList cert_list = ListCertsInSlot(slot_->os_module_handle()); | 557 CertificateList cert_list = ListCertsInSlot(slot_->os_module_handle()); |
558 ASSERT_EQ(1U, cert_list.size()); | 558 ASSERT_EQ(1U, cert_list.size()); |
559 scoped_refptr<X509Certificate> puny_cert(cert_list[0]); | 559 scoped_refptr<X509Certificate> puny_cert(cert_list[0]); |
560 | 560 |
561 EXPECT_EQ(CertDatabase::UNTRUSTED, | 561 EXPECT_EQ(CertDatabase::UNTRUSTED, |
562 cert_db_.GetCertTrust(puny_cert.get(), SERVER_CERT)); | 562 cert_db_.GetCertTrust(puny_cert.get(), SERVER_CERT)); |
563 psm::nsNSSCertTrust puny_trust(puny_cert->os_cert_handle()->trust); | 563 psm::nsNSSCertTrust puny_trust(puny_cert->os_cert_handle()->trust); |
564 EXPECT_TRUE(puny_trust.HasPeer(PR_TRUE, PR_TRUE, PR_TRUE)); | 564 EXPECT_TRUE(puny_trust.HasPeer(PR_TRUE, PR_TRUE, PR_TRUE)); |
565 | 565 |
566 int flags = 0; | 566 int flags = 0; |
567 CertVerifyResult verify_result; | 567 CertVerifyResult verify_result; |
568 int error = puny_cert->Verify("xn--wgv71a119e.com", flags, &verify_result); | 568 int error = puny_cert->Verify("xn--wgv71a119e.com", flags, NULL, |
| 569 &verify_result); |
569 EXPECT_EQ(ERR_CERT_AUTHORITY_INVALID, error); | 570 EXPECT_EQ(ERR_CERT_AUTHORITY_INVALID, error); |
570 EXPECT_EQ(CERT_STATUS_AUTHORITY_INVALID, verify_result.cert_status); | 571 EXPECT_EQ(CERT_STATUS_AUTHORITY_INVALID, verify_result.cert_status); |
571 | 572 |
572 // TODO(mattm): this should be SERVER_CERT, not CA_CERT, but that does not | 573 // TODO(mattm): this should be SERVER_CERT, not CA_CERT, but that does not |
573 // work due to NSS bug: https://bugzilla.mozilla.org/show_bug.cgi?id=531160 | 574 // work due to NSS bug: https://bugzilla.mozilla.org/show_bug.cgi?id=531160 |
574 EXPECT_TRUE(cert_db_.SetCertTrust( | 575 EXPECT_TRUE(cert_db_.SetCertTrust( |
575 puny_cert.get(), CA_CERT, | 576 puny_cert.get(), CA_CERT, |
576 CertDatabase::TRUSTED_SSL | CertDatabase::TRUSTED_EMAIL)); | 577 CertDatabase::TRUSTED_SSL | CertDatabase::TRUSTED_EMAIL)); |
577 | 578 |
578 verify_result.Reset(); | 579 verify_result.Reset(); |
579 error = puny_cert->Verify("xn--wgv71a119e.com", flags, &verify_result); | 580 error = puny_cert->Verify("xn--wgv71a119e.com", flags, NULL, &verify_result); |
580 EXPECT_EQ(OK, error); | 581 EXPECT_EQ(OK, error); |
581 EXPECT_EQ(0U, verify_result.cert_status); | 582 EXPECT_EQ(0U, verify_result.cert_status); |
582 } | 583 } |
583 | 584 |
584 } // namespace net | 585 } // namespace net |
OLD | NEW |