1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROMEOS_DBUS_MOCK_CRYPTOHOME_CLIENT_H_
6#define CHROMEOS_DBUS_MOCK_CRYPTOHOME_CLIENT_H_
7
8#include <string>
9
10#include "chromeos/dbus/cryptohome/rpc.pb.h"
11#include "chromeos/dbus/cryptohome_client.h"
12#include "testing/gmock/include/gmock/gmock.h"
13
14namespace chromeos {
15
16class MockCryptohomeClient : public CryptohomeClient {
17 public:
18  MockCryptohomeClient();
19  virtual ~MockCryptohomeClient();
20
21  MOCK_METHOD1(Init, void(dbus::Bus* bus));
22  MOCK_METHOD2(SetAsyncCallStatusHandlers,
23               void(const AsyncCallStatusHandler& handler,
24                    const AsyncCallStatusWithDataHandler& data_handler));
25  MOCK_METHOD0(ResetAsyncCallStatusHandlers, void());
26  MOCK_METHOD1(WaitForServiceToBeAvailable,
27               void(const WaitForServiceToBeAvailableCallback& callback));
28  MOCK_METHOD1(IsMounted, void(const BoolDBusMethodCallback& callback));
29  MOCK_METHOD1(Unmount, bool(bool* success));
30  MOCK_METHOD3(AsyncCheckKey,
31               void(const std::string& username,
32                    const std::string& key,
33                    const AsyncMethodCallback& callback));
34  MOCK_METHOD4(AsyncMigrateKey,
35               void(const std::string& username,
36                    const std::string& from_key,
37                    const std::string& to_key,
38                    const AsyncMethodCallback& callback));
39  MOCK_METHOD2(AsyncRemove, void(const std::string& username,
40                                 const AsyncMethodCallback& callback));
41  MOCK_METHOD1(GetSystemSalt, void(const GetSystemSaltCallback& callback));
42  MOCK_METHOD2(GetSanitizedUsername,
43               void(const std::string& username,
44                    const StringDBusMethodCallback& callback));
45  MOCK_METHOD1(BlockingGetSanitizedUsername,
46               std::string(const std::string& username));
47  MOCK_METHOD4(AsyncMount, void(const std::string& username,
48                                const std::string& key,
49                                int flags,
50                                const AsyncMethodCallback& callback));
51  MOCK_METHOD4(AsyncAddKey, void(const std::string& username,
52                                 const std::string& key,
53                                 const std::string& new_key,
54                                 const AsyncMethodCallback& callback));
55  MOCK_METHOD1(AsyncMountGuest,
56               void(const AsyncMethodCallback& callback));
57  MOCK_METHOD3(AsyncMountPublic, void(const std::string& public_mount_id,
58                                      int flags,
59                                      const AsyncMethodCallback& callback));
60  MOCK_METHOD1(TpmIsReady, void(const BoolDBusMethodCallback& callback));
61  MOCK_METHOD1(TpmIsEnabled, void(const BoolDBusMethodCallback& callback));
62  MOCK_METHOD1(CallTpmIsEnabledAndBlock, bool(bool* enabled));
63  MOCK_METHOD1(TpmGetPassword, void(const StringDBusMethodCallback& callback));
64  MOCK_METHOD1(TpmIsOwned, void(const BoolDBusMethodCallback& callback));
65  MOCK_METHOD1(CallTpmIsOwnedAndBlock, bool(bool* owned));
66  MOCK_METHOD1(TpmIsBeingOwned, void(const BoolDBusMethodCallback& callback));
67  MOCK_METHOD1(CallTpmIsBeingOwnedAndBlock, bool(bool* owning));
68  MOCK_METHOD1(TpmCanAttemptOwnership,
69               void(const VoidDBusMethodCallback& callback));
70  MOCK_METHOD1(TpmClearStoredPassword,
71               void(const VoidDBusMethodCallback& callback));
72  MOCK_METHOD0(CallTpmClearStoredPasswordAndBlock, bool());
73  MOCK_METHOD1(Pkcs11IsTpmTokenReady,
74               void(const BoolDBusMethodCallback& callback));
75  MOCK_METHOD1(Pkcs11GetTpmTokenInfo,
76               void(const Pkcs11GetTpmTokenInfoCallback& callback));
77  MOCK_METHOD2(Pkcs11GetTpmTokenInfoForUser,
78               void(const std::string& username,
79                    const Pkcs11GetTpmTokenInfoCallback& callback));
80  MOCK_METHOD3(InstallAttributesGet,
81               bool(const std::string& name,
82                    std::vector<uint8>* value,
83                    bool* successful));
84  MOCK_METHOD3(InstallAttributesSet,
85               bool(const std::string& name,
86                    const std::vector<uint8>& value,
87                    bool* successful));
88  MOCK_METHOD1(InstallAttributesFinalize, bool(bool* successful));
89  MOCK_METHOD1(InstallAttributesIsReady,
90               void(const BoolDBusMethodCallback& callback));
91  MOCK_METHOD1(InstallAttributesIsInvalid, bool(bool* is_invalid));
92  MOCK_METHOD1(InstallAttributesIsFirstInstall, bool(bool* is_first_install));
93  MOCK_METHOD1(TpmAttestationIsPrepared,
94               void(const BoolDBusMethodCallback& callback));
95  MOCK_METHOD1(TpmAttestationIsEnrolled,
96               void(const BoolDBusMethodCallback& callback));
97  MOCK_METHOD2(AsyncTpmAttestationCreateEnrollRequest,
98               void(attestation::PrivacyCAType pca_type,
99                    const AsyncMethodCallback& callback));
100  MOCK_METHOD3(AsyncTpmAttestationEnroll,
101               void(attestation::PrivacyCAType pca_type,
102                    const std::string& pca_response,
103                    const AsyncMethodCallback& callback));
104  MOCK_METHOD5(
105      AsyncTpmAttestationCreateCertRequest,
106      void(attestation::PrivacyCAType pca_type,
107           attestation::AttestationCertificateProfile certificate_profile,
108           const std::string& user_id,
109           const std::string& request_origin,
110           const AsyncMethodCallback& callback));
111  MOCK_METHOD5(AsyncTpmAttestationFinishCertRequest,
112               void(const std::string& pca_response,
113                    attestation::AttestationKeyType key_type,
114                    const std::string& user_id,
115                    const std::string& key_name,
116                    const AsyncMethodCallback& callback));
117  MOCK_METHOD4(TpmAttestationDoesKeyExist,
118               void(attestation::AttestationKeyType key_type,
119                    const std::string& user_id,
120                    const std::string& key_name,
121                    const BoolDBusMethodCallback& callback));
122  MOCK_METHOD4(TpmAttestationGetCertificate,
123               void(attestation::AttestationKeyType key_type,
124                    const std::string& user_id,
125                    const std::string& key_name,
126                    const DataMethodCallback& callback));
127  MOCK_METHOD4(TpmAttestationGetPublicKey,
128               void(attestation::AttestationKeyType key_type,
129                    const std::string& user_id,
130                    const std::string& key_name,
131                    const DataMethodCallback& callback));
132  MOCK_METHOD4(TpmAttestationRegisterKey,
133               void(attestation::AttestationKeyType key_type,
134                    const std::string& user_id,
135                    const std::string& key_name,
136                    const AsyncMethodCallback& callback));
137  MOCK_METHOD8(TpmAttestationSignEnterpriseChallenge,
138               void(attestation::AttestationKeyType key_type,
139                    const std::string& user_id,
140                    const std::string& key_name,
141                    const std::string& domain,
142                    const std::string& device_id,
143                    attestation::AttestationChallengeOptions options,
144                    const std::string& challenge,
145                    const AsyncMethodCallback& callback));
146  MOCK_METHOD5(TpmAttestationSignSimpleChallenge,
147               void(attestation::AttestationKeyType key_type,
148                    const std::string& user_id,
149                    const std::string& key_name,
150                    const std::string& challenge,
151                    const AsyncMethodCallback& callback));
152  MOCK_METHOD4(TpmAttestationGetKeyPayload,
153               void(attestation::AttestationKeyType key_type,
154                    const std::string& user_id,
155                    const std::string& key_name,
156                    const DataMethodCallback& callback));
157  MOCK_METHOD5(TpmAttestationSetKeyPayload,
158               void(attestation::AttestationKeyType key_type,
159                    const std::string& user_id,
160                    const std::string& key_name,
161                    const std::string& payload,
162                    const BoolDBusMethodCallback& callback));
163  MOCK_METHOD4(TpmAttestationDeleteKeys,
164               void(attestation::AttestationKeyType key_type,
165                    const std::string& user_id,
166                    const std::string& key_prefix,
167                    const BoolDBusMethodCallback& callback));
168  MOCK_METHOD4(GetKeyDataEx,
169      void(const cryptohome::AccountIdentifier& id,
170           const cryptohome::AuthorizationRequest& auth,
171           const cryptohome::GetKeyDataRequest& request,
172           const ProtobufMethodCallback& callback));
173  MOCK_METHOD4(CheckKeyEx,
174      void(const cryptohome::AccountIdentifier& id,
175           const cryptohome::AuthorizationRequest& auth,
176           const cryptohome::CheckKeyRequest& request,
177           const ProtobufMethodCallback& callback));
178  MOCK_METHOD4(MountEx,
179      void(const cryptohome::AccountIdentifier& id,
180           const cryptohome::AuthorizationRequest& auth,
181           const cryptohome::MountRequest& request,
182           const ProtobufMethodCallback& callback));
183  MOCK_METHOD4(AddKeyEx,
184      void(const cryptohome::AccountIdentifier& id,
185           const cryptohome::AuthorizationRequest& auth,
186           const cryptohome::AddKeyRequest& request,
187           const ProtobufMethodCallback& callback));
188  MOCK_METHOD4(UpdateKeyEx,
189      void(const cryptohome::AccountIdentifier& id,
190           const cryptohome::AuthorizationRequest& auth,
191           const cryptohome::UpdateKeyRequest& request,
192           const ProtobufMethodCallback& callback));
193  MOCK_METHOD4(RemoveKeyEx,
194               void(const cryptohome::AccountIdentifier& id,
195                    const cryptohome::AuthorizationRequest& auth,
196                    const cryptohome::RemoveKeyRequest& request,
197                    const ProtobufMethodCallback& callback));
198  MOCK_METHOD2(GetBootAttribute,
199               void(const cryptohome::GetBootAttributeRequest& request,
200                    const ProtobufMethodCallback& callback));
201  MOCK_METHOD2(SetBootAttribute,
202               void(const cryptohome::SetBootAttributeRequest& request,
203                    const ProtobufMethodCallback& callback));
204  MOCK_METHOD2(
205      FlushAndSignBootAttributes,
206      void(const cryptohome::FlushAndSignBootAttributesRequest& request,
207           const ProtobufMethodCallback& callback));
208};
209
210}  // namespace chromeos
211
212#endif  // CHROMEOS_DBUS_MOCK_CRYPTOHOME_CLIENT_H_
213