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