diff options
author | tbarzic@chromium.org <tbarzic@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-28 06:17:00 +0000 |
---|---|---|
committer | tbarzic@chromium.org <tbarzic@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-28 06:17:00 +0000 |
commit | 69295bad5da2d9ddc84f0ed196dc3efcce3e239c (patch) | |
tree | ea58a49fce76df7bcd43e083ca79003a4bd36e40 /chromeos/tpm_token_loader.cc | |
parent | fb7b39f067140c5bd66f38f23fcdb95eb0f71a78 (diff) | |
download | chromium_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.cc | 34 |
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() { |