diff options
author | hashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-17 16:49:04 +0000 |
---|---|---|
committer | hashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-17 16:49:04 +0000 |
commit | 1c947bdfa5d01e949219d58ca969768b2b2dcc30 (patch) | |
tree | 7ddc06d7ad495911ad1e1742e78ce430997809c9 /chromeos | |
parent | 56b62d3396a651d350ddbbe540fcc7aeaaba1da0 (diff) | |
download | chromium_src-1c947bdfa5d01e949219d58ca969768b2b2dcc30.zip chromium_src-1c947bdfa5d01e949219d58ca969768b2b2dcc30.tar.gz chromium_src-1c947bdfa5d01e949219d58ca969768b2b2dcc30.tar.bz2 |
chromeos: Implement async version of CryptohomeClient::Tpm* methods
Implement new async version TPM methods.
Existing blocking version methods are renamed to Call*AndBlock.
Blocking version methods will be removed in near future after all users finsh switching to the async version.
BUG=141010, 141011, 141012
Review URL: https://chromiumcodereview.appspot.com/12207200
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@183038 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chromeos')
-rw-r--r-- | chromeos/dbus/cryptohome_client.cc | 58 | ||||
-rw-r--r-- | chromeos/dbus/cryptohome_client.h | 21 | ||||
-rw-r--r-- | chromeos/dbus/mock_cryptohome_client.h | 10 |
3 files changed, 75 insertions, 14 deletions
diff --git a/chromeos/dbus/cryptohome_client.cc b/chromeos/dbus/cryptohome_client.cc index d6df763..62c616d 100644 --- a/chromeos/dbus/cryptohome_client.cc +++ b/chromeos/dbus/cryptohome_client.cc @@ -188,7 +188,7 @@ class CryptohomeClientImpl : public CryptohomeClient { } // CryptohomeClient override. - // TODO(hashimoto): Remove this method. crosbug.com/28500 + // TODO(hashimoto): Remove this method. crbug.com/141006 virtual bool CallTpmIsEnabledAndBlock(bool* enabled) OVERRIDE { // We don't use INITIALIZE_METHOD_CALL here because the C++ method name is // different from the D-Bus method name (TpmIsEnabled). @@ -209,13 +209,28 @@ class CryptohomeClientImpl : public CryptohomeClient { } // CryptohomeClient override. - virtual bool TpmIsOwned(bool* owned) OVERRIDE { + virtual void TpmIsOwned(const BoolDBusMethodCallback& callback) OVERRIDE { + INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeTpmIsOwned); + CallBoolMethod(&method_call, callback); + } + + // CryptohomeClient override. + // TODO(hashimoto): Remove this method. crbug.com/141012 + virtual bool CallTpmIsOwnedAndBlock(bool* owned) OVERRIDE { INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeTpmIsOwned); return CallBoolMethodAndBlock(&method_call, owned); } // CryptohomeClient override. - virtual bool TpmIsBeingOwned(bool* owning) OVERRIDE { + virtual void TpmIsBeingOwned(const BoolDBusMethodCallback& callback) + OVERRIDE { + INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeTpmIsBeingOwned); + CallBoolMethod(&method_call, callback); + } + + // CryptohomeClient override. + // TODO(hashimoto): Remove this method. crbug.com/141011 + virtual bool CallTpmIsBeingOwnedAndBlock(bool* owning) OVERRIDE { INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeTpmIsBeingOwned); return CallBoolMethodAndBlock(&method_call, owning); } @@ -228,8 +243,17 @@ class CryptohomeClientImpl : public CryptohomeClient { CallVoidMethod(&method_call, callback); } + // CryptohomeClient overrides. + virtual void TpmClearStoredPassword(const VoidDBusMethodCallback& callback) + OVERRIDE { + INITIALIZE_METHOD_CALL(method_call, + cryptohome::kCryptohomeTpmClearStoredPassword); + CallVoidMethod(&method_call, callback); + } + // CryptohomeClient override. - virtual bool TpmClearStoredPassword() OVERRIDE { + // TODO(hashimoto): Remove this method. crbug.com/141010 + virtual bool CallTpmClearStoredPasswordAndBlock() OVERRIDE { INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeTpmClearStoredPassword); scoped_ptr<dbus::Response> response( @@ -675,13 +699,26 @@ class CryptohomeClientStubImpl : public CryptohomeClient { } // CryptohomeClient override. - virtual bool TpmIsOwned(bool* owned) OVERRIDE { + virtual void TpmIsOwned(const BoolDBusMethodCallback& callback) OVERRIDE { + MessageLoop::current()->PostTask( + FROM_HERE, base::Bind(callback, DBUS_METHOD_CALL_SUCCESS, true)); + } + + // CryptohomeClient override. + virtual bool CallTpmIsOwnedAndBlock(bool* owned) OVERRIDE { *owned = true; return true; } // CryptohomeClient override. - virtual bool TpmIsBeingOwned(bool* owning) OVERRIDE { + virtual void TpmIsBeingOwned(const BoolDBusMethodCallback& callback) + OVERRIDE { + MessageLoop::current()->PostTask( + FROM_HERE, base::Bind(callback, DBUS_METHOD_CALL_SUCCESS, true)); + } + + // CryptohomeClient override. + virtual bool CallTpmIsBeingOwnedAndBlock(bool* owning) OVERRIDE { *owning = true; return true; } @@ -694,7 +731,14 @@ class CryptohomeClientStubImpl : public CryptohomeClient { } // CryptohomeClient override. - virtual bool TpmClearStoredPassword() OVERRIDE { return true; } + virtual void TpmClearStoredPassword(const VoidDBusMethodCallback& callback) + OVERRIDE { + MessageLoop::current()->PostTask( + FROM_HERE, base::Bind(callback, DBUS_METHOD_CALL_SUCCESS)); + } + + // CryptohomeClient override. + virtual bool CallTpmClearStoredPasswordAndBlock() OVERRIDE { return true; } // CryptohomeClient override. virtual void Pkcs11IsTpmTokenReady( diff --git a/chromeos/dbus/cryptohome_client.h b/chromeos/dbus/cryptohome_client.h index 9d94d46..998461a 100644 --- a/chromeos/dbus/cryptohome_client.h +++ b/chromeos/dbus/cryptohome_client.h @@ -117,28 +117,41 @@ class CHROMEOS_EXPORT CryptohomeClient { // Calls TpmIsEnabled method and returns true when the call succeeds. // This method blocks until the call returns. - // TODO(hashimoto): Remove this method. crosbug.com/28500 + // TODO(hashimoto): Remove this method. crbug.com/141006 virtual bool CallTpmIsEnabledAndBlock(bool* enabled) = 0; // Calls TpmGetPassword method. virtual void TpmGetPassword(const StringDBusMethodCallback& callback) = 0; + // Calls TpmIsOwned method. + virtual void TpmIsOwned(const BoolDBusMethodCallback& callback) = 0; + // Calls TpmIsOwned method and returns true when the call succeeds. // This method blocks until the call returns. - virtual bool TpmIsOwned(bool* owned) = 0; + // TODO(hashimoto): Remove this method. crbug.com/141012 + virtual bool CallTpmIsOwnedAndBlock(bool* owned) = 0; + + // Calls TpmIsBeingOwned method. + virtual void TpmIsBeingOwned(const BoolDBusMethodCallback& callback) = 0; // Calls TpmIsBeingOwned method and returns true when the call succeeds. // This method blocks until the call returns. - virtual bool TpmIsBeingOwned(bool* owning) = 0; + // TODO(hashimoto): Remove this method. crbug.com/141011 + virtual bool CallTpmIsBeingOwnedAndBlock(bool* owning) = 0; // Calls TpmCanAttemptOwnership method. // This method tells the service that it is OK to attempt ownership. virtual void TpmCanAttemptOwnership( const VoidDBusMethodCallback& callback) = 0; + // Calls TpmClearStoredPasswordMethod. + virtual void TpmClearStoredPassword( + const VoidDBusMethodCallback& callback) = 0; + // Calls TpmClearStoredPassword method and returns true when the call // succeeds. This method blocks until the call returns. - virtual bool TpmClearStoredPassword() = 0; + // TODO(hashimoto): Remove this method. crbug.com/141010 + virtual bool CallTpmClearStoredPasswordAndBlock() = 0; // Calls Pkcs11IsTpmTokenReady method. virtual void Pkcs11IsTpmTokenReady( diff --git a/chromeos/dbus/mock_cryptohome_client.h b/chromeos/dbus/mock_cryptohome_client.h index 26a6bd2..dfb4435 100644 --- a/chromeos/dbus/mock_cryptohome_client.h +++ b/chromeos/dbus/mock_cryptohome_client.h @@ -48,11 +48,15 @@ class MockCryptohomeClient : public CryptohomeClient { MOCK_METHOD1(TpmIsEnabled, void(const BoolDBusMethodCallback& callback)); MOCK_METHOD1(CallTpmIsEnabledAndBlock, bool(bool* enabled)); MOCK_METHOD1(TpmGetPassword, void(const StringDBusMethodCallback& callback)); - MOCK_METHOD1(TpmIsOwned, bool(bool* owned)); - MOCK_METHOD1(TpmIsBeingOwned, bool(bool* owning)); + MOCK_METHOD1(TpmIsOwned, void(const BoolDBusMethodCallback& callback)); + MOCK_METHOD1(CallTpmIsOwnedAndBlock, bool(bool* owned)); + MOCK_METHOD1(TpmIsBeingOwned, void(const BoolDBusMethodCallback& callback)); + MOCK_METHOD1(CallTpmIsBeingOwnedAndBlock, bool(bool* owning)); MOCK_METHOD1(TpmCanAttemptOwnership, void(const VoidDBusMethodCallback& callback)); - MOCK_METHOD0(TpmClearStoredPassword, bool()); + MOCK_METHOD1(TpmClearStoredPassword, + void(const VoidDBusMethodCallback& callback)); + MOCK_METHOD0(CallTpmClearStoredPasswordAndBlock, bool()); MOCK_METHOD1(Pkcs11IsTpmTokenReady, void(const BoolDBusMethodCallback& callback)); MOCK_METHOD1(Pkcs11GetTpmTokenInfo, |