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

Side by Side Diff: net/cert/nss_cert_database_unittest.cc

Issue 15829004: Update net/ to use scoped_refptr<T>::get() rather than implicit "operator T*" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: license twerk Created 7 years, 6 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/nss_cert_database.cc ('k') | net/cert/test_root_certs.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 <cert.h> 5 #include <cert.h>
6 #include <certdb.h> 6 #include <certdb.h>
7 #include <pk11pub.h> 7 #include <pk11pub.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 10
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 CertificateList certs = ListCertsInSlot(slot_->os_module_handle()); 109 CertificateList certs = ListCertsInSlot(slot_->os_module_handle());
110 CERTCertTrust default_trust = {0}; 110 CERTCertTrust default_trust = {0};
111 for (size_t i = 0; i < certs.size(); ++i) { 111 for (size_t i = 0; i < certs.size(); ++i) {
112 // Reset cert trust values to defaults before deleting. Otherwise NSS 112 // Reset cert trust values to defaults before deleting. Otherwise NSS
113 // somehow seems to remember the trust which can break following tests. 113 // somehow seems to remember the trust which can break following tests.
114 SECStatus srv = CERT_ChangeCertTrust( 114 SECStatus srv = CERT_ChangeCertTrust(
115 CERT_GetDefaultCertDB(), certs[i]->os_cert_handle(), &default_trust); 115 CERT_GetDefaultCertDB(), certs[i]->os_cert_handle(), &default_trust);
116 if (srv != SECSuccess) 116 if (srv != SECSuccess)
117 ok = false; 117 ok = false;
118 118
119 if (!cert_db_->DeleteCertAndKey(certs[i])) 119 if (!cert_db_->DeleteCertAndKey(certs[i].get()))
120 ok = false; 120 ok = false;
121 } 121 }
122 return ok; 122 return ok;
123 } 123 }
124 124
125 crypto::ScopedTestNSSDB test_nssdb_; 125 crypto::ScopedTestNSSDB test_nssdb_;
126 }; 126 };
127 127
128 TEST_F(CertDatabaseNSSTest, ListCerts) { 128 TEST_F(CertDatabaseNSSTest, ListCerts) {
129 // This test isn't terribly useful, though it will at least let valgrind test 129 // This test isn't terribly useful, though it will at least let valgrind test
130 // for leaks. 130 // for leaks.
131 CertificateList certs; 131 CertificateList certs;
132 cert_db_->ListCerts(&certs); 132 cert_db_->ListCerts(&certs);
133 // The test DB is empty, but let's assume there will always be something in 133 // The test DB is empty, but let's assume there will always be something in
134 // the other slots. 134 // the other slots.
135 EXPECT_LT(0U, certs.size()); 135 EXPECT_LT(0U, certs.size());
136 } 136 }
137 137
138 TEST_F(CertDatabaseNSSTest, ImportFromPKCS12WrongPassword) { 138 TEST_F(CertDatabaseNSSTest, ImportFromPKCS12WrongPassword) {
139 std::string pkcs12_data = ReadTestFile("client.p12"); 139 std::string pkcs12_data = ReadTestFile("client.p12");
140 140
141 EXPECT_EQ(ERR_PKCS12_IMPORT_BAD_PASSWORD, 141 EXPECT_EQ(ERR_PKCS12_IMPORT_BAD_PASSWORD,
142 cert_db_->ImportFromPKCS12(slot_, 142 cert_db_->ImportFromPKCS12(slot_.get(),
143 pkcs12_data, 143 pkcs12_data,
144 base::string16(), 144 base::string16(),
145 true, // is_extractable 145 true, // is_extractable
146 NULL)); 146 NULL));
147 147
148 // Test db should still be empty. 148 // Test db should still be empty.
149 EXPECT_EQ(0U, ListCertsInSlot(slot_->os_module_handle()).size()); 149 EXPECT_EQ(0U, ListCertsInSlot(slot_->os_module_handle()).size());
150 } 150 }
151 151
152 TEST_F(CertDatabaseNSSTest, ImportFromPKCS12AsExtractableAndExportAgain) { 152 TEST_F(CertDatabaseNSSTest, ImportFromPKCS12AsExtractableAndExportAgain) {
153 std::string pkcs12_data = ReadTestFile("client.p12"); 153 std::string pkcs12_data = ReadTestFile("client.p12");
154 154
155 EXPECT_EQ(OK, cert_db_->ImportFromPKCS12(slot_, 155 EXPECT_EQ(OK,
156 pkcs12_data, 156 cert_db_->ImportFromPKCS12(slot_.get(),
157 ASCIIToUTF16("12345"), 157 pkcs12_data,
158 true, // is_extractable 158 ASCIIToUTF16("12345"),
159 NULL)); 159 true, // is_extractable
160 NULL));
160 161
161 CertificateList cert_list = ListCertsInSlot(slot_->os_module_handle()); 162 CertificateList cert_list = ListCertsInSlot(slot_->os_module_handle());
162 ASSERT_EQ(1U, cert_list.size()); 163 ASSERT_EQ(1U, cert_list.size());
163 scoped_refptr<X509Certificate> cert(cert_list[0]); 164 scoped_refptr<X509Certificate> cert(cert_list[0]);
164 165
165 EXPECT_EQ("testusercert", 166 EXPECT_EQ("testusercert",
166 cert->subject().common_name); 167 cert->subject().common_name);
167 168
168 // TODO(mattm): move export test to separate test case? 169 // TODO(mattm): move export test to separate test case?
169 std::string exported_data; 170 std::string exported_data;
170 EXPECT_EQ(1, cert_db_->ExportToPKCS12(cert_list, ASCIIToUTF16("exportpw"), 171 EXPECT_EQ(1, cert_db_->ExportToPKCS12(cert_list, ASCIIToUTF16("exportpw"),
171 &exported_data)); 172 &exported_data));
172 ASSERT_LT(0U, exported_data.size()); 173 ASSERT_LT(0U, exported_data.size());
173 // TODO(mattm): further verification of exported data? 174 // TODO(mattm): further verification of exported data?
174 } 175 }
175 176
176 TEST_F(CertDatabaseNSSTest, ImportFromPKCS12Twice) { 177 TEST_F(CertDatabaseNSSTest, ImportFromPKCS12Twice) {
177 std::string pkcs12_data = ReadTestFile("client.p12"); 178 std::string pkcs12_data = ReadTestFile("client.p12");
178 179
179 EXPECT_EQ(OK, cert_db_->ImportFromPKCS12(slot_, 180 EXPECT_EQ(OK,
180 pkcs12_data, 181 cert_db_->ImportFromPKCS12(slot_.get(),
181 ASCIIToUTF16("12345"), 182 pkcs12_data,
182 true, // is_extractable 183 ASCIIToUTF16("12345"),
183 NULL)); 184 true, // is_extractable
185 NULL));
184 EXPECT_EQ(1U, ListCertsInSlot(slot_->os_module_handle()).size()); 186 EXPECT_EQ(1U, ListCertsInSlot(slot_->os_module_handle()).size());
185 187
186 // NSS has a SEC_ERROR_PKCS12_DUPLICATE_DATA error, but it doesn't look like 188 // NSS has a SEC_ERROR_PKCS12_DUPLICATE_DATA error, but it doesn't look like
187 // it's ever used. This test verifies that. 189 // it's ever used. This test verifies that.
188 EXPECT_EQ(OK, cert_db_->ImportFromPKCS12(slot_, 190 EXPECT_EQ(OK,
189 pkcs12_data, 191 cert_db_->ImportFromPKCS12(slot_.get(),
190 ASCIIToUTF16("12345"), 192 pkcs12_data,
191 true, // is_extractable 193 ASCIIToUTF16("12345"),
192 NULL)); 194 true, // is_extractable
195 NULL));
193 EXPECT_EQ(1U, ListCertsInSlot(slot_->os_module_handle()).size()); 196 EXPECT_EQ(1U, ListCertsInSlot(slot_->os_module_handle()).size());
194 } 197 }
195 198
196 TEST_F(CertDatabaseNSSTest, ImportFromPKCS12AsUnextractableAndExportAgain) { 199 TEST_F(CertDatabaseNSSTest, ImportFromPKCS12AsUnextractableAndExportAgain) {
197 std::string pkcs12_data = ReadTestFile("client.p12"); 200 std::string pkcs12_data = ReadTestFile("client.p12");
198 201
199 EXPECT_EQ(OK, cert_db_->ImportFromPKCS12(slot_, 202 EXPECT_EQ(OK,
200 pkcs12_data, 203 cert_db_->ImportFromPKCS12(slot_.get(),
201 ASCIIToUTF16("12345"), 204 pkcs12_data,
202 false, // is_extractable 205 ASCIIToUTF16("12345"),
203 NULL)); 206 false, // is_extractable
207 NULL));
204 208
205 CertificateList cert_list = ListCertsInSlot(slot_->os_module_handle()); 209 CertificateList cert_list = ListCertsInSlot(slot_->os_module_handle());
206 ASSERT_EQ(1U, cert_list.size()); 210 ASSERT_EQ(1U, cert_list.size());
207 scoped_refptr<X509Certificate> cert(cert_list[0]); 211 scoped_refptr<X509Certificate> cert(cert_list[0]);
208 212
209 EXPECT_EQ("testusercert", 213 EXPECT_EQ("testusercert",
210 cert->subject().common_name); 214 cert->subject().common_name);
211 215
212 std::string exported_data; 216 std::string exported_data;
213 EXPECT_EQ(0, cert_db_->ExportToPKCS12(cert_list, ASCIIToUTF16("exportpw"), 217 EXPECT_EQ(0, cert_db_->ExportToPKCS12(cert_list, ASCIIToUTF16("exportpw"),
214 &exported_data)); 218 &exported_data));
215 } 219 }
216 220
217 // Importing a PKCS#12 file with a certificate but no corresponding 221 // Importing a PKCS#12 file with a certificate but no corresponding
218 // private key should not mark an existing private key as unextractable. 222 // private key should not mark an existing private key as unextractable.
219 TEST_F(CertDatabaseNSSTest, ImportFromPKCS12OnlyMarkIncludedKey) { 223 TEST_F(CertDatabaseNSSTest, ImportFromPKCS12OnlyMarkIncludedKey) {
220 std::string pkcs12_data = ReadTestFile("client.p12"); 224 std::string pkcs12_data = ReadTestFile("client.p12");
221 EXPECT_EQ(OK, cert_db_->ImportFromPKCS12(slot_, 225 EXPECT_EQ(OK,
222 pkcs12_data, 226 cert_db_->ImportFromPKCS12(slot_.get(),
223 ASCIIToUTF16("12345"), 227 pkcs12_data,
224 true, // is_extractable 228 ASCIIToUTF16("12345"),
225 NULL)); 229 true, // is_extractable
230 NULL));
226 231
227 CertificateList cert_list = ListCertsInSlot(slot_->os_module_handle()); 232 CertificateList cert_list = ListCertsInSlot(slot_->os_module_handle());
228 ASSERT_EQ(1U, cert_list.size()); 233 ASSERT_EQ(1U, cert_list.size());
229 234
230 // Now import a PKCS#12 file with just a certificate but no private key. 235 // Now import a PKCS#12 file with just a certificate but no private key.
231 pkcs12_data = ReadTestFile("client-nokey.p12"); 236 pkcs12_data = ReadTestFile("client-nokey.p12");
232 EXPECT_EQ(OK, cert_db_->ImportFromPKCS12(slot_, 237 EXPECT_EQ(OK,
233 pkcs12_data, 238 cert_db_->ImportFromPKCS12(slot_.get(),
234 ASCIIToUTF16("12345"), 239 pkcs12_data,
235 false, // is_extractable 240 ASCIIToUTF16("12345"),
236 NULL)); 241 false, // is_extractable
242 NULL));
237 243
238 cert_list = ListCertsInSlot(slot_->os_module_handle()); 244 cert_list = ListCertsInSlot(slot_->os_module_handle());
239 ASSERT_EQ(1U, cert_list.size()); 245 ASSERT_EQ(1U, cert_list.size());
240 246
241 // Make sure the imported private key is still extractable. 247 // Make sure the imported private key is still extractable.
242 std::string exported_data; 248 std::string exported_data;
243 EXPECT_EQ(1, cert_db_->ExportToPKCS12(cert_list, ASCIIToUTF16("exportpw"), 249 EXPECT_EQ(1, cert_db_->ExportToPKCS12(cert_list, ASCIIToUTF16("exportpw"),
244 &exported_data)); 250 &exported_data));
245 ASSERT_LT(0U, exported_data.size()); 251 ASSERT_LT(0U, exported_data.size());
246 } 252 }
247 253
248 TEST_F(CertDatabaseNSSTest, ImportFromPKCS12InvalidFile) { 254 TEST_F(CertDatabaseNSSTest, ImportFromPKCS12InvalidFile) {
249 std::string pkcs12_data = "Foobarbaz"; 255 std::string pkcs12_data = "Foobarbaz";
250 256
251 EXPECT_EQ(ERR_PKCS12_IMPORT_INVALID_FILE, 257 EXPECT_EQ(ERR_PKCS12_IMPORT_INVALID_FILE,
252 cert_db_->ImportFromPKCS12(slot_, 258 cert_db_->ImportFromPKCS12(slot_.get(),
253 pkcs12_data, 259 pkcs12_data,
254 base::string16(), 260 base::string16(),
255 true, // is_extractable 261 true, // is_extractable
256 NULL)); 262 NULL));
257 263
258 // Test db should still be empty. 264 // Test db should still be empty.
259 EXPECT_EQ(0U, ListCertsInSlot(slot_->os_module_handle()).size()); 265 EXPECT_EQ(0U, ListCertsInSlot(slot_->os_module_handle()).size());
260 } 266 }
261 267
262 TEST_F(CertDatabaseNSSTest, ImportCACert_SSLTrust) { 268 TEST_F(CertDatabaseNSSTest, ImportCACert_SSLTrust) {
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after
534 EXPECT_EQ("Thawte SGC CA", thawte_cert->subject().common_name); 540 EXPECT_EQ("Thawte SGC CA", thawte_cert->subject().common_name);
535 541
536 EXPECT_EQ(NSSCertDatabase::TRUST_DEFAULT, 542 EXPECT_EQ(NSSCertDatabase::TRUST_DEFAULT,
537 cert_db_->GetCertTrust(goog_cert.get(), SERVER_CERT)); 543 cert_db_->GetCertTrust(goog_cert.get(), SERVER_CERT));
538 544
539 EXPECT_EQ(0U, goog_cert->os_cert_handle()->trust->sslFlags); 545 EXPECT_EQ(0U, goog_cert->os_cert_handle()->trust->sslFlags);
540 546
541 scoped_refptr<CertVerifyProc> verify_proc(new CertVerifyProcNSS()); 547 scoped_refptr<CertVerifyProc> verify_proc(new CertVerifyProcNSS());
542 int flags = 0; 548 int flags = 0;
543 CertVerifyResult verify_result; 549 CertVerifyResult verify_result;
544 int error = verify_proc->Verify(goog_cert, "www.google.com", flags, 550 int error = verify_proc->Verify(goog_cert.get(),
545 NULL, empty_cert_list_, &verify_result); 551 "www.google.com",
552 flags,
553 NULL,
554 empty_cert_list_,
555 &verify_result);
546 EXPECT_EQ(OK, error); 556 EXPECT_EQ(OK, error);
547 EXPECT_EQ(0U, verify_result.cert_status); 557 EXPECT_EQ(0U, verify_result.cert_status);
548 } 558 }
549 559
550 TEST_F(CertDatabaseNSSTest, ImportServerCert_SelfSigned) { 560 TEST_F(CertDatabaseNSSTest, ImportServerCert_SelfSigned) {
551 CertificateList certs; 561 CertificateList certs;
552 ASSERT_TRUE(ReadCertIntoList("punycodetest.der", &certs)); 562 ASSERT_TRUE(ReadCertIntoList("punycodetest.der", &certs));
553 563
554 NSSCertDatabase::ImportCertFailureList failed; 564 NSSCertDatabase::ImportCertFailureList failed;
555 EXPECT_TRUE(cert_db_->ImportServerCert(certs, NSSCertDatabase::TRUST_DEFAULT, 565 EXPECT_TRUE(cert_db_->ImportServerCert(certs, NSSCertDatabase::TRUST_DEFAULT,
556 &failed)); 566 &failed));
557 567
558 EXPECT_EQ(0U, failed.size()); 568 EXPECT_EQ(0U, failed.size());
559 569
560 CertificateList cert_list = ListCertsInSlot(slot_->os_module_handle()); 570 CertificateList cert_list = ListCertsInSlot(slot_->os_module_handle());
561 ASSERT_EQ(1U, cert_list.size()); 571 ASSERT_EQ(1U, cert_list.size());
562 scoped_refptr<X509Certificate> puny_cert(cert_list[0]); 572 scoped_refptr<X509Certificate> puny_cert(cert_list[0]);
563 573
564 EXPECT_EQ(NSSCertDatabase::TRUST_DEFAULT, 574 EXPECT_EQ(NSSCertDatabase::TRUST_DEFAULT,
565 cert_db_->GetCertTrust(puny_cert.get(), SERVER_CERT)); 575 cert_db_->GetCertTrust(puny_cert.get(), SERVER_CERT));
566 EXPECT_EQ(0U, puny_cert->os_cert_handle()->trust->sslFlags); 576 EXPECT_EQ(0U, puny_cert->os_cert_handle()->trust->sslFlags);
567 577
568 scoped_refptr<CertVerifyProc> verify_proc(new CertVerifyProcNSS()); 578 scoped_refptr<CertVerifyProc> verify_proc(new CertVerifyProcNSS());
569 int flags = 0; 579 int flags = 0;
570 CertVerifyResult verify_result; 580 CertVerifyResult verify_result;
571 int error = verify_proc->Verify(puny_cert, "xn--wgv71a119e.com", flags, 581 int error = verify_proc->Verify(puny_cert.get(),
572 NULL, empty_cert_list_, &verify_result); 582 "xn--wgv71a119e.com",
583 flags,
584 NULL,
585 empty_cert_list_,
586 &verify_result);
573 EXPECT_EQ(ERR_CERT_AUTHORITY_INVALID, error); 587 EXPECT_EQ(ERR_CERT_AUTHORITY_INVALID, error);
574 EXPECT_EQ(CERT_STATUS_AUTHORITY_INVALID, verify_result.cert_status); 588 EXPECT_EQ(CERT_STATUS_AUTHORITY_INVALID, verify_result.cert_status);
575 } 589 }
576 590
577 TEST_F(CertDatabaseNSSTest, ImportServerCert_SelfSigned_Trusted) { 591 TEST_F(CertDatabaseNSSTest, ImportServerCert_SelfSigned_Trusted) {
578 // When using CERT_PKIXVerifyCert (which we do), server trust only works from 592 // When using CERT_PKIXVerifyCert (which we do), server trust only works from
579 // 3.13.4 onwards. See https://bugzilla.mozilla.org/show_bug.cgi?id=647364. 593 // 3.13.4 onwards. See https://bugzilla.mozilla.org/show_bug.cgi?id=647364.
580 if (!NSS_VersionCheck("3.13.4")) { 594 if (!NSS_VersionCheck("3.13.4")) {
581 LOG(INFO) << "test skipped on NSS < 3.13.4"; 595 LOG(INFO) << "test skipped on NSS < 3.13.4";
582 return; 596 return;
(...skipping 13 matching lines...) Expand all
596 scoped_refptr<X509Certificate> puny_cert(cert_list[0]); 610 scoped_refptr<X509Certificate> puny_cert(cert_list[0]);
597 611
598 EXPECT_EQ(NSSCertDatabase::TRUSTED_SSL, 612 EXPECT_EQ(NSSCertDatabase::TRUSTED_SSL,
599 cert_db_->GetCertTrust(puny_cert.get(), SERVER_CERT)); 613 cert_db_->GetCertTrust(puny_cert.get(), SERVER_CERT));
600 EXPECT_EQ(unsigned(CERTDB_TRUSTED | CERTDB_TERMINAL_RECORD), 614 EXPECT_EQ(unsigned(CERTDB_TRUSTED | CERTDB_TERMINAL_RECORD),
601 puny_cert->os_cert_handle()->trust->sslFlags); 615 puny_cert->os_cert_handle()->trust->sslFlags);
602 616
603 scoped_refptr<CertVerifyProc> verify_proc(new CertVerifyProcNSS()); 617 scoped_refptr<CertVerifyProc> verify_proc(new CertVerifyProcNSS());
604 int flags = 0; 618 int flags = 0;
605 CertVerifyResult verify_result; 619 CertVerifyResult verify_result;
606 int error = verify_proc->Verify(puny_cert, "xn--wgv71a119e.com", flags, 620 int error = verify_proc->Verify(puny_cert.get(),
607 NULL, empty_cert_list_, &verify_result); 621 "xn--wgv71a119e.com",
622 flags,
623 NULL,
624 empty_cert_list_,
625 &verify_result);
608 EXPECT_EQ(OK, error); 626 EXPECT_EQ(OK, error);
609 EXPECT_EQ(0U, verify_result.cert_status); 627 EXPECT_EQ(0U, verify_result.cert_status);
610 } 628 }
611 629
612 TEST_F(CertDatabaseNSSTest, ImportCaAndServerCert) { 630 TEST_F(CertDatabaseNSSTest, ImportCaAndServerCert) {
613 CertificateList ca_certs = CreateCertificateListFromFile( 631 CertificateList ca_certs = CreateCertificateListFromFile(
614 GetTestCertsDirectory(), "root_ca_cert.crt", 632 GetTestCertsDirectory(), "root_ca_cert.crt",
615 X509Certificate::FORMAT_AUTO); 633 X509Certificate::FORMAT_AUTO);
616 ASSERT_EQ(1U, ca_certs.size()); 634 ASSERT_EQ(1U, ca_certs.size());
617 635
(...skipping 10 matching lines...) Expand all
628 646
629 // Import server cert with default trust. 647 // Import server cert with default trust.
630 EXPECT_TRUE(cert_db_->ImportServerCert(certs, NSSCertDatabase::TRUST_DEFAULT, 648 EXPECT_TRUE(cert_db_->ImportServerCert(certs, NSSCertDatabase::TRUST_DEFAULT,
631 &failed)); 649 &failed));
632 EXPECT_EQ(0U, failed.size()); 650 EXPECT_EQ(0U, failed.size());
633 651
634 // Server cert should verify. 652 // Server cert should verify.
635 scoped_refptr<CertVerifyProc> verify_proc(new CertVerifyProcNSS()); 653 scoped_refptr<CertVerifyProc> verify_proc(new CertVerifyProcNSS());
636 int flags = 0; 654 int flags = 0;
637 CertVerifyResult verify_result; 655 CertVerifyResult verify_result;
638 int error = verify_proc->Verify(certs[0], "127.0.0.1", flags, 656 int error = verify_proc->Verify(certs[0].get(),
639 NULL, empty_cert_list_, &verify_result); 657 "127.0.0.1",
658 flags,
659 NULL,
660 empty_cert_list_,
661 &verify_result);
640 EXPECT_EQ(OK, error); 662 EXPECT_EQ(OK, error);
641 EXPECT_EQ(0U, verify_result.cert_status); 663 EXPECT_EQ(0U, verify_result.cert_status);
642 } 664 }
643 665
644 TEST_F(CertDatabaseNSSTest, ImportCaAndServerCert_DistrustServer) { 666 TEST_F(CertDatabaseNSSTest, ImportCaAndServerCert_DistrustServer) {
645 // Explicit distrust only works starting in NSS 3.13. 667 // Explicit distrust only works starting in NSS 3.13.
646 if (!NSS_VersionCheck("3.13")) { 668 if (!NSS_VersionCheck("3.13")) {
647 LOG(INFO) << "test skipped on NSS < 3.13"; 669 LOG(INFO) << "test skipped on NSS < 3.13";
648 return; 670 return;
649 } 671 }
(...skipping 13 matching lines...) Expand all
663 GetTestCertsDirectory(), "ok_cert.pem", 685 GetTestCertsDirectory(), "ok_cert.pem",
664 X509Certificate::FORMAT_AUTO); 686 X509Certificate::FORMAT_AUTO);
665 ASSERT_EQ(1U, certs.size()); 687 ASSERT_EQ(1U, certs.size());
666 688
667 // Import server cert without inheriting trust from issuer (explicit 689 // Import server cert without inheriting trust from issuer (explicit
668 // distrust). 690 // distrust).
669 EXPECT_TRUE(cert_db_->ImportServerCert( 691 EXPECT_TRUE(cert_db_->ImportServerCert(
670 certs, NSSCertDatabase::DISTRUSTED_SSL, &failed)); 692 certs, NSSCertDatabase::DISTRUSTED_SSL, &failed));
671 EXPECT_EQ(0U, failed.size()); 693 EXPECT_EQ(0U, failed.size());
672 EXPECT_EQ(NSSCertDatabase::DISTRUSTED_SSL, 694 EXPECT_EQ(NSSCertDatabase::DISTRUSTED_SSL,
673 cert_db_->GetCertTrust(certs[0], SERVER_CERT)); 695 cert_db_->GetCertTrust(certs[0].get(), SERVER_CERT));
674 696
675 EXPECT_EQ(unsigned(CERTDB_TERMINAL_RECORD), 697 EXPECT_EQ(unsigned(CERTDB_TERMINAL_RECORD),
676 certs[0]->os_cert_handle()->trust->sslFlags); 698 certs[0]->os_cert_handle()->trust->sslFlags);
677 699
678 // Server cert should fail to verify. 700 // Server cert should fail to verify.
679 scoped_refptr<CertVerifyProc> verify_proc(new CertVerifyProcNSS()); 701 scoped_refptr<CertVerifyProc> verify_proc(new CertVerifyProcNSS());
680 int flags = 0; 702 int flags = 0;
681 CertVerifyResult verify_result; 703 CertVerifyResult verify_result;
682 int error = verify_proc->Verify(certs[0], "127.0.0.1", flags, 704 int error = verify_proc->Verify(certs[0].get(),
683 NULL, empty_cert_list_, &verify_result); 705 "127.0.0.1",
706 flags,
707 NULL,
708 empty_cert_list_,
709 &verify_result);
684 EXPECT_EQ(ERR_CERT_REVOKED, error); 710 EXPECT_EQ(ERR_CERT_REVOKED, error);
685 EXPECT_EQ(CERT_STATUS_REVOKED, verify_result.cert_status); 711 EXPECT_EQ(CERT_STATUS_REVOKED, verify_result.cert_status);
686 } 712 }
687 713
688 TEST_F(CertDatabaseNSSTest, TrustIntermediateCa) { 714 TEST_F(CertDatabaseNSSTest, TrustIntermediateCa) {
689 CertificateList ca_certs = CreateCertificateListFromFile( 715 CertificateList ca_certs = CreateCertificateListFromFile(
690 GetTestCertsDirectory(), "2048-rsa-root.pem", 716 GetTestCertsDirectory(), "2048-rsa-root.pem",
691 X509Certificate::FORMAT_AUTO); 717 X509Certificate::FORMAT_AUTO);
692 ASSERT_EQ(1U, ca_certs.size()); 718 ASSERT_EQ(1U, ca_certs.size());
693 719
(...skipping 16 matching lines...) Expand all
710 CertificateList certs = CreateCertificateListFromFile( 736 CertificateList certs = CreateCertificateListFromFile(
711 GetTestCertsDirectory(), "2048-rsa-ee-by-2048-rsa-intermediate.pem", 737 GetTestCertsDirectory(), "2048-rsa-ee-by-2048-rsa-intermediate.pem",
712 X509Certificate::FORMAT_AUTO); 738 X509Certificate::FORMAT_AUTO);
713 ASSERT_EQ(1U, certs.size()); 739 ASSERT_EQ(1U, certs.size());
714 740
715 // Import server cert with default trust. 741 // Import server cert with default trust.
716 EXPECT_TRUE(cert_db_->ImportServerCert( 742 EXPECT_TRUE(cert_db_->ImportServerCert(
717 certs, NSSCertDatabase::TRUST_DEFAULT, &failed)); 743 certs, NSSCertDatabase::TRUST_DEFAULT, &failed));
718 EXPECT_EQ(0U, failed.size()); 744 EXPECT_EQ(0U, failed.size());
719 EXPECT_EQ(NSSCertDatabase::TRUST_DEFAULT, 745 EXPECT_EQ(NSSCertDatabase::TRUST_DEFAULT,
720 cert_db_->GetCertTrust(certs[0], SERVER_CERT)); 746 cert_db_->GetCertTrust(certs[0].get(), SERVER_CERT));
721 747
722 // Server cert should verify. 748 // Server cert should verify.
723 scoped_refptr<CertVerifyProc> verify_proc(new CertVerifyProcNSS()); 749 scoped_refptr<CertVerifyProc> verify_proc(new CertVerifyProcNSS());
724 int flags = 0; 750 int flags = 0;
725 CertVerifyResult verify_result; 751 CertVerifyResult verify_result;
726 int error = verify_proc->Verify(certs[0], "127.0.0.1", flags, 752 int error = verify_proc->Verify(certs[0].get(),
727 NULL, empty_cert_list_, &verify_result); 753 "127.0.0.1",
754 flags,
755 NULL,
756 empty_cert_list_,
757 &verify_result);
728 EXPECT_EQ(OK, error); 758 EXPECT_EQ(OK, error);
729 EXPECT_EQ(0U, verify_result.cert_status); 759 EXPECT_EQ(0U, verify_result.cert_status);
730 760
731 // Explicit distrust only works starting in NSS 3.13. 761 // Explicit distrust only works starting in NSS 3.13.
732 if (!NSS_VersionCheck("3.13")) { 762 if (!NSS_VersionCheck("3.13")) {
733 LOG(INFO) << "test partially skipped on NSS < 3.13"; 763 LOG(INFO) << "test partially skipped on NSS < 3.13";
734 return; 764 return;
735 } 765 }
736 766
737 // Trust the root cert and distrust the intermediate. 767 // Trust the root cert and distrust the intermediate.
738 EXPECT_TRUE(cert_db_->SetCertTrust( 768 EXPECT_TRUE(cert_db_->SetCertTrust(
739 ca_certs[0], CA_CERT, NSSCertDatabase::TRUSTED_SSL)); 769 ca_certs[0].get(), CA_CERT, NSSCertDatabase::TRUSTED_SSL));
740 EXPECT_TRUE(cert_db_->SetCertTrust( 770 EXPECT_TRUE(cert_db_->SetCertTrust(
741 intermediate_certs[0], CA_CERT, NSSCertDatabase::DISTRUSTED_SSL)); 771 intermediate_certs[0].get(), CA_CERT, NSSCertDatabase::DISTRUSTED_SSL));
742 EXPECT_EQ( 772 EXPECT_EQ(
743 unsigned(CERTDB_VALID_CA | CERTDB_TRUSTED_CA | CERTDB_TRUSTED_CLIENT_CA), 773 unsigned(CERTDB_VALID_CA | CERTDB_TRUSTED_CA | CERTDB_TRUSTED_CLIENT_CA),
744 ca_certs[0]->os_cert_handle()->trust->sslFlags); 774 ca_certs[0]->os_cert_handle()->trust->sslFlags);
745 EXPECT_EQ(unsigned(CERTDB_VALID_CA), 775 EXPECT_EQ(unsigned(CERTDB_VALID_CA),
746 ca_certs[0]->os_cert_handle()->trust->emailFlags); 776 ca_certs[0]->os_cert_handle()->trust->emailFlags);
747 EXPECT_EQ(unsigned(CERTDB_VALID_CA), 777 EXPECT_EQ(unsigned(CERTDB_VALID_CA),
748 ca_certs[0]->os_cert_handle()->trust->objectSigningFlags); 778 ca_certs[0]->os_cert_handle()->trust->objectSigningFlags);
749 EXPECT_EQ(unsigned(CERTDB_TERMINAL_RECORD), 779 EXPECT_EQ(unsigned(CERTDB_TERMINAL_RECORD),
750 intermediate_certs[0]->os_cert_handle()->trust->sslFlags); 780 intermediate_certs[0]->os_cert_handle()->trust->sslFlags);
751 EXPECT_EQ(unsigned(CERTDB_VALID_CA), 781 EXPECT_EQ(unsigned(CERTDB_VALID_CA),
752 intermediate_certs[0]->os_cert_handle()->trust->emailFlags); 782 intermediate_certs[0]->os_cert_handle()->trust->emailFlags);
753 EXPECT_EQ( 783 EXPECT_EQ(
754 unsigned(CERTDB_VALID_CA), 784 unsigned(CERTDB_VALID_CA),
755 intermediate_certs[0]->os_cert_handle()->trust->objectSigningFlags); 785 intermediate_certs[0]->os_cert_handle()->trust->objectSigningFlags);
756 786
757 // Server cert should fail to verify. 787 // Server cert should fail to verify.
758 CertVerifyResult verify_result2; 788 CertVerifyResult verify_result2;
759 error = verify_proc->Verify(certs[0], "127.0.0.1", flags, 789 error = verify_proc->Verify(certs[0].get(),
760 NULL, empty_cert_list_, &verify_result2); 790 "127.0.0.1",
791 flags,
792 NULL,
793 empty_cert_list_,
794 &verify_result2);
761 EXPECT_EQ(ERR_CERT_REVOKED, error); 795 EXPECT_EQ(ERR_CERT_REVOKED, error);
762 EXPECT_EQ(CERT_STATUS_REVOKED, verify_result2.cert_status); 796 EXPECT_EQ(CERT_STATUS_REVOKED, verify_result2.cert_status);
763 } 797 }
764 798
765 TEST_F(CertDatabaseNSSTest, TrustIntermediateCa2) { 799 TEST_F(CertDatabaseNSSTest, TrustIntermediateCa2) {
766 if (NSS_VersionCheck("3.14.2") && !NSS_VersionCheck("3.15")) { 800 if (NSS_VersionCheck("3.14.2") && !NSS_VersionCheck("3.15")) {
767 // See http://bugzil.la/863947 for details. 801 // See http://bugzil.la/863947 for details.
768 LOG(INFO) << "Skipping test for NSS 3.14.2 - NSS 3.15"; 802 LOG(INFO) << "Skipping test for NSS 3.14.2 - NSS 3.15";
769 return; 803 return;
770 } 804 }
(...skipping 13 matching lines...) Expand all
784 CertificateList certs = CreateCertificateListFromFile( 818 CertificateList certs = CreateCertificateListFromFile(
785 GetTestCertsDirectory(), "2048-rsa-ee-by-2048-rsa-intermediate.pem", 819 GetTestCertsDirectory(), "2048-rsa-ee-by-2048-rsa-intermediate.pem",
786 X509Certificate::FORMAT_AUTO); 820 X509Certificate::FORMAT_AUTO);
787 ASSERT_EQ(1U, certs.size()); 821 ASSERT_EQ(1U, certs.size());
788 822
789 // Import server cert with default trust. 823 // Import server cert with default trust.
790 EXPECT_TRUE(cert_db_->ImportServerCert( 824 EXPECT_TRUE(cert_db_->ImportServerCert(
791 certs, NSSCertDatabase::TRUST_DEFAULT, &failed)); 825 certs, NSSCertDatabase::TRUST_DEFAULT, &failed));
792 EXPECT_EQ(0U, failed.size()); 826 EXPECT_EQ(0U, failed.size());
793 EXPECT_EQ(NSSCertDatabase::TRUST_DEFAULT, 827 EXPECT_EQ(NSSCertDatabase::TRUST_DEFAULT,
794 cert_db_->GetCertTrust(certs[0], SERVER_CERT)); 828 cert_db_->GetCertTrust(certs[0].get(), SERVER_CERT));
795 829
796 // Server cert should verify. 830 // Server cert should verify.
797 scoped_refptr<CertVerifyProc> verify_proc(new CertVerifyProcNSS()); 831 scoped_refptr<CertVerifyProc> verify_proc(new CertVerifyProcNSS());
798 int flags = 0; 832 int flags = 0;
799 CertVerifyResult verify_result; 833 CertVerifyResult verify_result;
800 int error = verify_proc->Verify(certs[0], "127.0.0.1", flags, 834 int error = verify_proc->Verify(certs[0].get(),
801 NULL, empty_cert_list_, &verify_result); 835 "127.0.0.1",
836 flags,
837 NULL,
838 empty_cert_list_,
839 &verify_result);
802 EXPECT_EQ(OK, error); 840 EXPECT_EQ(OK, error);
803 EXPECT_EQ(0U, verify_result.cert_status); 841 EXPECT_EQ(0U, verify_result.cert_status);
804 842
805 // Without explicit trust of the intermediate, verification should fail. 843 // Without explicit trust of the intermediate, verification should fail.
806 EXPECT_TRUE(cert_db_->SetCertTrust( 844 EXPECT_TRUE(cert_db_->SetCertTrust(
807 intermediate_certs[0], CA_CERT, NSSCertDatabase::TRUST_DEFAULT)); 845 intermediate_certs[0].get(), CA_CERT, NSSCertDatabase::TRUST_DEFAULT));
808 846
809 // Server cert should fail to verify. 847 // Server cert should fail to verify.
810 CertVerifyResult verify_result2; 848 CertVerifyResult verify_result2;
811 error = verify_proc->Verify(certs[0], "127.0.0.1", flags, 849 error = verify_proc->Verify(certs[0].get(),
812 NULL, empty_cert_list_, &verify_result2); 850 "127.0.0.1",
851 flags,
852 NULL,
853 empty_cert_list_,
854 &verify_result2);
813 EXPECT_EQ(ERR_CERT_AUTHORITY_INVALID, error); 855 EXPECT_EQ(ERR_CERT_AUTHORITY_INVALID, error);
814 EXPECT_EQ(CERT_STATUS_AUTHORITY_INVALID, verify_result2.cert_status); 856 EXPECT_EQ(CERT_STATUS_AUTHORITY_INVALID, verify_result2.cert_status);
815 } 857 }
816 858
817 TEST_F(CertDatabaseNSSTest, TrustIntermediateCa3) { 859 TEST_F(CertDatabaseNSSTest, TrustIntermediateCa3) {
818 if (NSS_VersionCheck("3.14.2") && !NSS_VersionCheck("3.15")) { 860 if (NSS_VersionCheck("3.14.2") && !NSS_VersionCheck("3.15")) {
819 // See http://bugzil.la/863947 for details. 861 // See http://bugzil.la/863947 for details.
820 LOG(INFO) << "Skipping test for NSS 3.14.2 - NSS 3.15"; 862 LOG(INFO) << "Skipping test for NSS 3.14.2 - NSS 3.15";
821 return; 863 return;
822 } 864 }
(...skipping 23 matching lines...) Expand all
846 CertificateList certs = CreateCertificateListFromFile( 888 CertificateList certs = CreateCertificateListFromFile(
847 GetTestCertsDirectory(), "2048-rsa-ee-by-2048-rsa-intermediate.pem", 889 GetTestCertsDirectory(), "2048-rsa-ee-by-2048-rsa-intermediate.pem",
848 X509Certificate::FORMAT_AUTO); 890 X509Certificate::FORMAT_AUTO);
849 ASSERT_EQ(1U, certs.size()); 891 ASSERT_EQ(1U, certs.size());
850 892
851 // Import server cert with default trust. 893 // Import server cert with default trust.
852 EXPECT_TRUE(cert_db_->ImportServerCert( 894 EXPECT_TRUE(cert_db_->ImportServerCert(
853 certs, NSSCertDatabase::TRUST_DEFAULT, &failed)); 895 certs, NSSCertDatabase::TRUST_DEFAULT, &failed));
854 EXPECT_EQ(0U, failed.size()); 896 EXPECT_EQ(0U, failed.size());
855 EXPECT_EQ(NSSCertDatabase::TRUST_DEFAULT, 897 EXPECT_EQ(NSSCertDatabase::TRUST_DEFAULT,
856 cert_db_->GetCertTrust(certs[0], SERVER_CERT)); 898 cert_db_->GetCertTrust(certs[0].get(), SERVER_CERT));
857 899
858 // Server cert should verify. 900 // Server cert should verify.
859 scoped_refptr<CertVerifyProc> verify_proc(new CertVerifyProcNSS()); 901 scoped_refptr<CertVerifyProc> verify_proc(new CertVerifyProcNSS());
860 int flags = 0; 902 int flags = 0;
861 CertVerifyResult verify_result; 903 CertVerifyResult verify_result;
862 int error = verify_proc->Verify(certs[0], "127.0.0.1", flags, 904 int error = verify_proc->Verify(certs[0].get(),
863 NULL, empty_cert_list_, &verify_result); 905 "127.0.0.1",
906 flags,
907 NULL,
908 empty_cert_list_,
909 &verify_result);
864 EXPECT_EQ(OK, error); 910 EXPECT_EQ(OK, error);
865 EXPECT_EQ(0U, verify_result.cert_status); 911 EXPECT_EQ(0U, verify_result.cert_status);
866 912
867 // Without explicit trust of the intermediate, verification should fail. 913 // Without explicit trust of the intermediate, verification should fail.
868 EXPECT_TRUE(cert_db_->SetCertTrust( 914 EXPECT_TRUE(cert_db_->SetCertTrust(
869 intermediate_certs[0], CA_CERT, NSSCertDatabase::TRUST_DEFAULT)); 915 intermediate_certs[0].get(), CA_CERT, NSSCertDatabase::TRUST_DEFAULT));
870 916
871 // Server cert should fail to verify. 917 // Server cert should fail to verify.
872 CertVerifyResult verify_result2; 918 CertVerifyResult verify_result2;
873 error = verify_proc->Verify(certs[0], "127.0.0.1", flags, 919 error = verify_proc->Verify(certs[0].get(),
874 NULL, empty_cert_list_, &verify_result2); 920 "127.0.0.1",
921 flags,
922 NULL,
923 empty_cert_list_,
924 &verify_result2);
875 EXPECT_EQ(ERR_CERT_AUTHORITY_INVALID, error); 925 EXPECT_EQ(ERR_CERT_AUTHORITY_INVALID, error);
876 EXPECT_EQ(CERT_STATUS_AUTHORITY_INVALID, verify_result2.cert_status); 926 EXPECT_EQ(CERT_STATUS_AUTHORITY_INVALID, verify_result2.cert_status);
877 } 927 }
878 928
879 TEST_F(CertDatabaseNSSTest, TrustIntermediateCa4) { 929 TEST_F(CertDatabaseNSSTest, TrustIntermediateCa4) {
880 // Explicit distrust only works starting in NSS 3.13. 930 // Explicit distrust only works starting in NSS 3.13.
881 if (!NSS_VersionCheck("3.13")) { 931 if (!NSS_VersionCheck("3.13")) {
882 LOG(INFO) << "test skipped on NSS < 3.13"; 932 LOG(INFO) << "test skipped on NSS < 3.13";
883 return; 933 return;
884 } 934 }
(...skipping 23 matching lines...) Expand all
908 CertificateList certs = CreateCertificateListFromFile( 958 CertificateList certs = CreateCertificateListFromFile(
909 GetTestCertsDirectory(), "2048-rsa-ee-by-2048-rsa-intermediate.pem", 959 GetTestCertsDirectory(), "2048-rsa-ee-by-2048-rsa-intermediate.pem",
910 X509Certificate::FORMAT_AUTO); 960 X509Certificate::FORMAT_AUTO);
911 ASSERT_EQ(1U, certs.size()); 961 ASSERT_EQ(1U, certs.size());
912 962
913 // Import server cert with default trust. 963 // Import server cert with default trust.
914 EXPECT_TRUE(cert_db_->ImportServerCert( 964 EXPECT_TRUE(cert_db_->ImportServerCert(
915 certs, NSSCertDatabase::TRUST_DEFAULT, &failed)); 965 certs, NSSCertDatabase::TRUST_DEFAULT, &failed));
916 EXPECT_EQ(0U, failed.size()); 966 EXPECT_EQ(0U, failed.size());
917 EXPECT_EQ(NSSCertDatabase::TRUST_DEFAULT, 967 EXPECT_EQ(NSSCertDatabase::TRUST_DEFAULT,
918 cert_db_->GetCertTrust(certs[0], SERVER_CERT)); 968 cert_db_->GetCertTrust(certs[0].get(), SERVER_CERT));
919 969
920 // Server cert should not verify. 970 // Server cert should not verify.
921 scoped_refptr<CertVerifyProc> verify_proc(new CertVerifyProcNSS()); 971 scoped_refptr<CertVerifyProc> verify_proc(new CertVerifyProcNSS());
922 int flags = 0; 972 int flags = 0;
923 CertVerifyResult verify_result; 973 CertVerifyResult verify_result;
924 int error = verify_proc->Verify(certs[0], "127.0.0.1", flags, 974 int error = verify_proc->Verify(certs[0].get(),
925 NULL, empty_cert_list_, &verify_result); 975 "127.0.0.1",
976 flags,
977 NULL,
978 empty_cert_list_,
979 &verify_result);
926 EXPECT_EQ(ERR_CERT_REVOKED, error); 980 EXPECT_EQ(ERR_CERT_REVOKED, error);
927 EXPECT_EQ(CERT_STATUS_REVOKED, verify_result.cert_status); 981 EXPECT_EQ(CERT_STATUS_REVOKED, verify_result.cert_status);
928 982
929 // Without explicit distrust of the intermediate, verification should succeed. 983 // Without explicit distrust of the intermediate, verification should succeed.
930 EXPECT_TRUE(cert_db_->SetCertTrust( 984 EXPECT_TRUE(cert_db_->SetCertTrust(
931 intermediate_certs[0], CA_CERT, NSSCertDatabase::TRUST_DEFAULT)); 985 intermediate_certs[0].get(), CA_CERT, NSSCertDatabase::TRUST_DEFAULT));
932 986
933 // Server cert should verify. 987 // Server cert should verify.
934 CertVerifyResult verify_result2; 988 CertVerifyResult verify_result2;
935 error = verify_proc->Verify(certs[0], "127.0.0.1", flags, 989 error = verify_proc->Verify(certs[0].get(),
936 NULL, empty_cert_list_, &verify_result2); 990 "127.0.0.1",
991 flags,
992 NULL,
993 empty_cert_list_,
994 &verify_result2);
937 EXPECT_EQ(OK, error); 995 EXPECT_EQ(OK, error);
938 EXPECT_EQ(0U, verify_result2.cert_status); 996 EXPECT_EQ(0U, verify_result2.cert_status);
939 } 997 }
940 998
941 // Importing two certificates with the same issuer and subject common name, 999 // Importing two certificates with the same issuer and subject common name,
942 // but overall distinct subject names, should succeed and generate a unique 1000 // but overall distinct subject names, should succeed and generate a unique
943 // nickname for the second certificate. 1001 // nickname for the second certificate.
944 TEST_F(CertDatabaseNSSTest, ImportDuplicateCommonName) { 1002 TEST_F(CertDatabaseNSSTest, ImportDuplicateCommonName) {
945 CertificateList certs = 1003 CertificateList certs =
946 CreateCertificateListFromFile(GetTestCertsDirectory(), 1004 CreateCertificateListFromFile(GetTestCertsDirectory(),
947 "duplicate_cn_1.pem", 1005 "duplicate_cn_1.pem",
948 X509Certificate::FORMAT_AUTO); 1006 X509Certificate::FORMAT_AUTO);
949 ASSERT_EQ(1U, certs.size()); 1007 ASSERT_EQ(1U, certs.size());
950 1008
951 EXPECT_EQ(0U, ListCertsInSlot(slot_->os_module_handle()).size()); 1009 EXPECT_EQ(0U, ListCertsInSlot(slot_->os_module_handle()).size());
952 1010
953 // Import server cert with default trust. 1011 // Import server cert with default trust.
954 NSSCertDatabase::ImportCertFailureList failed; 1012 NSSCertDatabase::ImportCertFailureList failed;
955 EXPECT_TRUE(cert_db_->ImportServerCert( 1013 EXPECT_TRUE(cert_db_->ImportServerCert(
956 certs, NSSCertDatabase::TRUST_DEFAULT, &failed)); 1014 certs, NSSCertDatabase::TRUST_DEFAULT, &failed));
957 EXPECT_EQ(0U, failed.size()); 1015 EXPECT_EQ(0U, failed.size());
958 EXPECT_EQ(NSSCertDatabase::TRUST_DEFAULT, 1016 EXPECT_EQ(NSSCertDatabase::TRUST_DEFAULT,
959 cert_db_->GetCertTrust(certs[0], SERVER_CERT)); 1017 cert_db_->GetCertTrust(certs[0].get(), SERVER_CERT));
960 1018
961 CertificateList new_certs = ListCertsInSlot(slot_->os_module_handle()); 1019 CertificateList new_certs = ListCertsInSlot(slot_->os_module_handle());
962 ASSERT_EQ(1U, new_certs.size()); 1020 ASSERT_EQ(1U, new_certs.size());
963 1021
964 // Now attempt to import a different certificate with the same common name. 1022 // Now attempt to import a different certificate with the same common name.
965 CertificateList certs2 = 1023 CertificateList certs2 =
966 CreateCertificateListFromFile(GetTestCertsDirectory(), 1024 CreateCertificateListFromFile(GetTestCertsDirectory(),
967 "duplicate_cn_2.pem", 1025 "duplicate_cn_2.pem",
968 X509Certificate::FORMAT_AUTO); 1026 X509Certificate::FORMAT_AUTO);
969 ASSERT_EQ(1U, certs2.size()); 1027 ASSERT_EQ(1U, certs2.size());
970 1028
971 // Import server cert with default trust. 1029 // Import server cert with default trust.
972 EXPECT_TRUE(cert_db_->ImportServerCert( 1030 EXPECT_TRUE(cert_db_->ImportServerCert(
973 certs2, NSSCertDatabase::TRUST_DEFAULT, &failed)); 1031 certs2, NSSCertDatabase::TRUST_DEFAULT, &failed));
974 EXPECT_EQ(0U, failed.size()); 1032 EXPECT_EQ(0U, failed.size());
975 EXPECT_EQ(NSSCertDatabase::TRUST_DEFAULT, 1033 EXPECT_EQ(NSSCertDatabase::TRUST_DEFAULT,
976 cert_db_->GetCertTrust(certs2[0], SERVER_CERT)); 1034 cert_db_->GetCertTrust(certs2[0].get(), SERVER_CERT));
977 1035
978 new_certs = ListCertsInSlot(slot_->os_module_handle()); 1036 new_certs = ListCertsInSlot(slot_->os_module_handle());
979 ASSERT_EQ(2U, new_certs.size()); 1037 ASSERT_EQ(2U, new_certs.size());
980 EXPECT_STRNE(new_certs[0]->os_cert_handle()->nickname, 1038 EXPECT_STRNE(new_certs[0]->os_cert_handle()->nickname,
981 new_certs[1]->os_cert_handle()->nickname); 1039 new_certs[1]->os_cert_handle()->nickname);
982 } 1040 }
983 1041
984 } // namespace net 1042 } // namespace net
OLDNEW
« no previous file with comments | « net/cert/nss_cert_database.cc ('k') | net/cert/test_root_certs.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698