fake_cryptohome_client.cc revision a36e5920737c6adbddd3e43b760e5de8431db6e0
1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// found in the LICENSE file. 4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chromeos/dbus/fake_cryptohome_client.h" 6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "base/bind.h" 89ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#include "base/message_loop/message_loop.h" 9b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#include "third_party/cros_system_api/dbus/service_constants.h" 10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace chromeos { 12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace { 14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// A fake system salt. GetSystemSalt copies it to the given buffer. 16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const char kStubSystemSalt[] = "stub_system_salt"; 17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} // namespace 19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 20b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)FakeCryptohomeClient::FakeCryptohomeClient() : unmount_result_(false) { 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)FakeCryptohomeClient::~FakeCryptohomeClient() { 24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::TpmIsBeingOwned( 27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const BoolDBusMethodCallback& callback) { 28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)bool FakeCryptohomeClient::Unmount(bool* success) { 31b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) *success = unmount_result_; 32b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) return true; 33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::AsyncCheckKey(const std::string& username, 36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const std::string& key, 37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const AsyncMethodCallback& callback) { 38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 39c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)bool FakeCryptohomeClient::InstallAttributesIsInvalid(bool* is_invalid) { 41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return false; 42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 44c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::TpmAttestationGetKeyPayload( 45c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) attestation::AttestationKeyType key_type, 46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const std::string& key_name, 47c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const DataMethodCallback& callback) { 48c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 49c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 50c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::AsyncTpmAttestationFinishCertRequest( 51c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const std::string& pca_response, 52c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) attestation::AttestationKeyType key_type, 53c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const std::string& key_name, 54c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const AsyncMethodCallback& callback) { 55c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 56c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 57c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::TpmIsEnabled( 58c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const BoolDBusMethodCallback& callback) { 59c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 60c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 61c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::AsyncTpmAttestationEnroll( 62c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const std::string& pca_response, 63c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const AsyncMethodCallback& callback) { 64c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 65c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 66c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::AsyncMigrateKey( 67c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const std::string& username, 68c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const std::string& from_key, 69c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const std::string& to_key, 70c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const AsyncMethodCallback& callback) { 71c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 72c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 73c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::IsMounted(const BoolDBusMethodCallback& callback) { 74868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) base::MessageLoop::current()->PostTask(FROM_HERE, 75c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::Bind(callback, 76c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) DBUS_METHOD_CALL_SUCCESS, true)); 77c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 78c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 79c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)bool FakeCryptohomeClient::InstallAttributesGet(const std::string& name, 80c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) std::vector<uint8>* value, 81c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) bool* successful) { 82c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return false; 83c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 84c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 85c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::AsyncMount(const std::string& username, 86c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const std::string& key, int flags, 87c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const AsyncMethodCallback& callback) { 88b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) DCHECK(!callback.is_null()); 89b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) 90868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) base::MessageLoop::current()->PostTask(FROM_HERE, 91b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) base::Bind(callback, 1 /* async_id */)); 92a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) if (!handler_.is_null()) 93868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) base::MessageLoop::current()->PostTask(FROM_HERE, 94a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) base::Bind(handler_, 95a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 1, // async_id 96eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch true, // return_status 97eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch cryptohome::MOUNT_ERROR_NONE)); 98eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} 99eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 100eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid FakeCryptohomeClient::AsyncAddKey(const std::string& username, 101eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const std::string& key, 102eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const std::string& new_key, 103eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const AsyncMethodCallback& callback) { 104eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch DCHECK(!callback.is_null()); 105eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 106eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch base::MessageLoop::current()->PostTask(FROM_HERE, 107eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch base::Bind(callback, 1 /* async_id */)); 108eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch if (!handler_.is_null()) 109eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch base::MessageLoop::current()->PostTask(FROM_HERE, 110eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch base::Bind(handler_, 111eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 1, // async_id 112a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) true, // return_status 113a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) cryptohome::MOUNT_ERROR_NONE)); 114c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 115c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 116c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::AsyncMountGuest( 117c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const AsyncMethodCallback& callback) { 118c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 119c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 120a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)void FakeCryptohomeClient::AsyncMountPublic( 121a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) const std::string& public_mount_id, 122a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) int flags, 123a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) const AsyncMethodCallback& callback) { 124a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)} 125a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 126c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)bool FakeCryptohomeClient::CallTpmIsBeingOwnedAndBlock(bool* owning) { 127c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return false; 128c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 129c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 130c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::Pkcs11IsTpmTokenReady( 131c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const BoolDBusMethodCallback& callback) { 132c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 133c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 134c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::TpmClearStoredPassword( 135c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const VoidDBusMethodCallback& callback) { 136c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 137c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 138c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::TpmCanAttemptOwnership( 139c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const VoidDBusMethodCallback& callback) { 140c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 141c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 142c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)bool FakeCryptohomeClient::GetSystemSalt(std::vector<uint8>* salt) { 143c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) salt->assign(kStubSystemSalt, 144c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) kStubSystemSalt + arraysize(kStubSystemSalt) - 1); 145c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return true; 146c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 147c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 148c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::TpmGetPassword( 149c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const StringDBusMethodCallback& callback) { 150c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 151c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 152c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)bool FakeCryptohomeClient::InstallAttributesFinalize(bool* successful) { 153c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return false; 154c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 155c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 156c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::SetAsyncCallStatusHandlers( 157c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const AsyncCallStatusHandler& handler, 158c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const AsyncCallStatusWithDataHandler& data_handler) { 159b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) handler_ = handler; 160b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) data_handler_ = data_handler; 161c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 162c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 163c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)bool FakeCryptohomeClient::CallTpmIsEnabledAndBlock(bool* enabled) { 164c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return false; 165c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 166c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 167c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)bool FakeCryptohomeClient::InstallAttributesSet( 168c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const std::string& name, 169c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const std::vector<uint8>& value, 170c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) bool* successful) { 171c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return false; 172c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 173c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 174c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)bool FakeCryptohomeClient::InstallAttributesIsFirstInstall( 175c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) bool* is_first_install) { 176c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return false; 177c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 178c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 179c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::TpmAttestationGetCertificate( 180c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) attestation::AttestationKeyType key_type, 181c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const std::string& key_name, 182c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const DataMethodCallback& callback) { 183c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 184c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 185c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::InstallAttributesIsReady( 186c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const BoolDBusMethodCallback& callback) { 187868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) base::MessageLoop::current()->PostTask(FROM_HERE, 188c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::Bind(callback, 189c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) DBUS_METHOD_CALL_SUCCESS, true)); 190c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 191c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 192c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::TpmAttestationGetPublicKey( 193c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) attestation::AttestationKeyType key_type, 194c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const std::string& key_name, 195c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const DataMethodCallback& callback) { 196c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 197c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 198c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::TpmAttestationSignSimpleChallenge( 199c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) attestation::AttestationKeyType key_type, 200c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const std::string& key_name, 201c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const std::string& challenge, 202c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const AsyncMethodCallback& callback) { 203c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 204c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 205c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::Pkcs11GetTpmTokenInfo( 206c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const Pkcs11GetTpmTokenInfoCallback& callback) { 207c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 208c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 209c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::TpmIsOwned(const BoolDBusMethodCallback& callback) { 210c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 211c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 212c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::TpmAttestationIsPrepared( 213c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const BoolDBusMethodCallback& callback) { 214c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 215c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 216c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::TpmIsReady(const BoolDBusMethodCallback& callback) { 217c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 218c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 219c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::AsyncTpmAttestationCreateEnrollRequest( 220c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const AsyncMethodCallback& callback) { 221c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 222c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 223c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::ResetAsyncCallStatusHandlers() { 224b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) handler_.Reset(); 225b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) data_handler_.Reset(); 226c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 227c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 228c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::TpmAttestationDoesKeyExist( 229c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) attestation::AttestationKeyType key_type, 230c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const std::string& key_name, 231c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const BoolDBusMethodCallback& callback) { 232c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 233c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 234c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)bool FakeCryptohomeClient::CallTpmIsOwnedAndBlock(bool* owned) { 235c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return false; 236c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 237c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 238c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::AsyncRemove(const std::string& username, 239c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const AsyncMethodCallback& callback) { 240c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 241c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 242c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::TpmAttestationSetKeyPayload( 243c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) attestation::AttestationKeyType key_type, 244c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const std::string& key_name, 245c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const std::string& payload, 246c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const BoolDBusMethodCallback& callback) { 247c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 248c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 249c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::GetSanitizedUsername( 250c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const std::string& username, 251c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const StringDBusMethodCallback& callback) { 252b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) DCHECK(!callback.is_null()); 253b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) 254868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) base::MessageLoop::current()->PostTask( 255b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) FROM_HERE, 256b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) base::Bind(callback, 257b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) chromeos::DBUS_METHOD_CALL_SUCCESS, 258b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) username)); 259a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) if (!data_handler_.is_null()) 260868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) base::MessageLoop::current()->PostTask( 261a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) FROM_HERE, 262a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) base::Bind(data_handler_, 263a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 1, // async_id 264a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) true, // return_status 265a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) username)); 266c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 267c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 268bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdochstd::string FakeCryptohomeClient::BlockingGetSanitizedUsername( 269bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch const std::string& username) { 270bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch return username; 271bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch} 272bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch 273c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::TpmAttestationSignEnterpriseChallenge( 274c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) attestation::AttestationKeyType key_type, 275c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const std::string& key_name, 276c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const std::string& domain, 277c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const std::string& device_id, 278c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) attestation::AttestationChallengeOptions options, 279c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const std::string& challenge, 280c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const AsyncMethodCallback& callback) { 281c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 282c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 283c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::TpmAttestationIsEnrolled( 284c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const BoolDBusMethodCallback& callback) { 285c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 286c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 287c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::TpmAttestationRegisterKey( 288c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) attestation::AttestationKeyType key_type, 289c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const std::string& key_name, 290c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const AsyncMethodCallback& callback) { 291c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 292c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 293c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)bool FakeCryptohomeClient::CallTpmClearStoredPasswordAndBlock() { 294c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return false; 295c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 296c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 297c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeCryptohomeClient::AsyncTpmAttestationCreateCertRequest( 298c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) int options, 299c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const AsyncMethodCallback& callback) { 300c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 301c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 302c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} // namespace chromeos 303