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

Unified Diff: net/cert/nss_cert_database_chromeos_unittest.cc

Issue 429633004: Test NSSCertDatabaseChromeOS in the presence of the system slot. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed a comment. Created 6 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | net/ssl/client_cert_store_chromeos_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/cert/nss_cert_database_chromeos_unittest.cc
diff --git a/net/cert/nss_cert_database_chromeos_unittest.cc b/net/cert/nss_cert_database_chromeos_unittest.cc
index 900edadd1f0a56fced26b9fc1efbfb4b54e3112e..13396b6ebd66fc5669d50950a2086be0d483cb5a 100644
--- a/net/cert/nss_cert_database_chromeos_unittest.cc
+++ b/net/cert/nss_cert_database_chromeos_unittest.cc
@@ -10,6 +10,7 @@
#include "base/run_loop.h"
#include "crypto/nss_util_internal.h"
#include "crypto/scoped_test_nss_chromeos_user.h"
+#include "crypto/scoped_test_nss_db.h"
#include "net/base/test_data_directory.h"
#include "net/cert/cert_database.h"
#include "net/test/cert_test_util.h"
@@ -61,6 +62,8 @@ class NSSCertDatabaseChromeOSTest : public testing::Test,
user_1_.username_hash(),
base::Callback<void(crypto::ScopedPK11Slot)>())));
db_1_->SetSlowTaskRunnerForTest(base::MessageLoopProxy::current());
+ db_1_->SetSystemSlot(
+ crypto::ScopedPK11Slot(PK11_ReferenceSlot(system_db_.slot())));
db_2_.reset(new NSSCertDatabaseChromeOS(
crypto::GetPublicSlotForChromeOSUser(user_2_.username_hash()),
crypto::GetPrivateSlotForChromeOSUser(
@@ -98,6 +101,7 @@ class NSSCertDatabaseChromeOSTest : public testing::Test,
crypto::ScopedTestNSSChromeOSUser user_1_;
crypto::ScopedTestNSSChromeOSUser user_2_;
+ crypto::ScopedTestNSSDB system_db_;
scoped_ptr<NSSCertDatabaseChromeOS> db_1_;
scoped_ptr<NSSCertDatabaseChromeOS> db_2_;
};
@@ -276,4 +280,40 @@ TEST_F(NSSCertDatabaseChromeOSTest, NoCrashIfShutdownBeforeDoneOnWorkerPool) {
EXPECT_LT(0U, certlist.size());
}
+TEST_F(NSSCertDatabaseChromeOSTest, ListCertsReadsSystemSlot) {
+ scoped_refptr<X509Certificate> cert_1(
+ ImportClientCertAndKeyFromFile(GetTestCertsDirectory(),
+ "client_1.pem",
+ "client_1.pk8",
+ db_1_->GetPublicSlot().get()));
+
+ scoped_refptr<X509Certificate> cert_2(
+ ImportClientCertAndKeyFromFile(GetTestCertsDirectory(),
+ "client_2.pem",
+ "client_2.pk8",
+ db_1_->GetSystemSlot().get()));
+ CertificateList certs;
+ db_1_->ListCertsSync(&certs);
+ EXPECT_TRUE(IsCertInCertificateList(cert_1.get(), certs));
+ EXPECT_TRUE(IsCertInCertificateList(cert_2.get(), certs));
+}
+
+TEST_F(NSSCertDatabaseChromeOSTest, ListCertsDoesNotCrossReadSystemSlot) {
+ scoped_refptr<X509Certificate> cert_1(
+ ImportClientCertAndKeyFromFile(GetTestCertsDirectory(),
+ "client_1.pem",
+ "client_1.pk8",
+ db_2_->GetPublicSlot().get()));
+
+ scoped_refptr<X509Certificate> cert_2(
+ ImportClientCertAndKeyFromFile(GetTestCertsDirectory(),
+ "client_2.pem",
+ "client_2.pk8",
+ system_db_.slot()));
+ CertificateList certs;
+ db_2_->ListCertsSync(&certs);
+ EXPECT_TRUE(IsCertInCertificateList(cert_1.get(), certs));
+ EXPECT_FALSE(IsCertInCertificateList(cert_2.get(), certs));
+}
+
} // namespace net
« no previous file with comments | « no previous file | net/ssl/client_cert_store_chromeos_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698