summaryrefslogtreecommitdiffstats
path: root/chromeos/tpm_token_loader.cc
diff options
context:
space:
mode:
authortbarzic@chromium.org <tbarzic@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-28 06:17:00 +0000
committertbarzic@chromium.org <tbarzic@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-28 06:17:00 +0000
commit69295bad5da2d9ddc84f0ed196dc3efcce3e239c (patch)
treeea58a49fce76df7bcd43e083ca79003a4bd36e40 /chromeos/tpm_token_loader.cc
parentfb7b39f067140c5bd66f38f23fcdb95eb0f71a78 (diff)
downloadchromium_src-69295bad5da2d9ddc84f0ed196dc3efcce3e239c.zip
chromium_src-69295bad5da2d9ddc84f0ed196dc3efcce3e239c.tar.gz
chromium_src-69295bad5da2d9ddc84f0ed196dc3efcce3e239c.tar.bz2
Use user specific NSSDatabase in CertLoader.
CertLoader is still global object, but it now loads only primary user's certificates. Loading only primary user's certificates is ok, since shill only uses primary user's network profile (and currently only network stack is interested in certificates from CertLoader). Added some tests for CertLoader and NetworkConnectionHandler. BUG=315343 Review URL: https://codereview.chromium.org/135193007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247414 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chromeos/tpm_token_loader.cc')
-rw-r--r--chromeos/tpm_token_loader.cc34
1 files changed, 20 insertions, 14 deletions
diff --git a/chromeos/tpm_token_loader.cc b/chromeos/tpm_token_loader.cc
index 6d1bd53..f48fb16 100644
--- a/chromeos/tpm_token_loader.cc
+++ b/chromeos/tpm_token_loader.cc
@@ -55,7 +55,13 @@ static TPMTokenLoader* g_tpm_token_loader = NULL;
// static
void TPMTokenLoader::Initialize() {
CHECK(!g_tpm_token_loader);
- g_tpm_token_loader = new TPMTokenLoader();
+ g_tpm_token_loader = new TPMTokenLoader(false /*for_test*/);
+}
+
+// static
+void TPMTokenLoader::InitializeForTest() {
+ CHECK(!g_tpm_token_loader);
+ g_tpm_token_loader = new TPMTokenLoader(true /*for_test*/);
}
// static
@@ -77,19 +83,20 @@ bool TPMTokenLoader::IsInitialized() {
return g_tpm_token_loader;
}
-TPMTokenLoader::TPMTokenLoader()
- : initialize_tpm_for_test_(false),
+TPMTokenLoader::TPMTokenLoader(bool for_test)
+ : initialized_for_test_(for_test),
tpm_token_state_(TPM_STATE_UNKNOWN),
tpm_request_delay_(
base::TimeDelta::FromMilliseconds(kInitialRequestDelayMs)),
tpm_token_slot_id_(-1),
weak_factory_(this) {
- if (LoginState::IsInitialized())
+ if (!initialized_for_test_ && LoginState::IsInitialized())
LoginState::Get()->AddObserver(this);
-}
-void TPMTokenLoader::InitializeTPMForTest() {
- initialize_tpm_for_test_ = true;
+ if (initialized_for_test_) {
+ tpm_token_state_ = TPM_TOKEN_INITIALIZED;
+ tpm_user_pin_ = "111111";
+ }
}
void TPMTokenLoader::SetCryptoTaskRunner(
@@ -99,7 +106,7 @@ void TPMTokenLoader::SetCryptoTaskRunner(
}
TPMTokenLoader::~TPMTokenLoader() {
- if (LoginState::IsInitialized())
+ if (!initialized_for_test_ && LoginState::IsInitialized())
LoginState::Get()->RemoveObserver(this);
}
@@ -127,14 +134,14 @@ void TPMTokenLoader::MaybeStartTokenInitialization() {
if (!LoginState::IsInitialized())
return;
- bool request_certificates = LoginState::Get()->IsUserLoggedIn() ||
+ bool start_initialization = LoginState::Get()->IsUserLoggedIn() ||
LoginState::Get()->IsInSafeMode();
- VLOG(1) << "RequestCertificates: " << request_certificates;
- if (!request_certificates)
+ VLOG(1) << "StartTokenInitialization: " << start_initialization;
+ if (!start_initialization)
return;
- if (!initialize_tpm_for_test_ && !base::SysInfo::IsRunningOnChromeOS())
+ if (!base::SysInfo::IsRunningOnChromeOS())
tpm_token_state_ = TPM_DISABLED;
// Treat TPM as disabled for guest users since they do not store certs.
@@ -277,8 +284,7 @@ void TPMTokenLoader::OnTPMTokenInitialized(bool success) {
}
void TPMTokenLoader::NotifyTPMTokenReady() {
- FOR_EACH_OBSERVER(Observer, observers_,
- OnTPMTokenReady(tpm_user_pin_, tpm_token_name_, tpm_token_slot_id_));
+ FOR_EACH_OBSERVER(Observer, observers_, OnTPMTokenReady());
}
void TPMTokenLoader::LoggedInStateChanged() {