1//
2// Copyright (C) 2014 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8//      http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
16
17#ifndef TRUNKS_MOCK_TPM_H_
18#define TRUNKS_MOCK_TPM_H_
19
20#include <string>
21
22#include <base/callback.h>
23#include <gmock/gmock.h>
24
25#include "trunks/tpm_generated.h"
26
27namespace trunks {
28
29class MockTpm : public Tpm {
30 public:
31  MockTpm();
32  ~MockTpm() override;
33
34  MOCK_METHOD3(Startup,
35               void(const TPM_SU& startup_type,
36                    AuthorizationDelegate* authorization_delegate,
37                    const StartupResponse& callback));
38  MOCK_METHOD2(StartupSync,
39               TPM_RC(const TPM_SU& startup_type,
40                      AuthorizationDelegate* authorization_delegate));
41  MOCK_METHOD3(Shutdown,
42               void(const TPM_SU& shutdown_type,
43                    AuthorizationDelegate* authorization_delegate,
44                    const ShutdownResponse& callback));
45  MOCK_METHOD2(ShutdownSync,
46               TPM_RC(const TPM_SU& shutdown_type,
47                      AuthorizationDelegate* authorization_delegate));
48  MOCK_METHOD3(SelfTest,
49               void(const TPMI_YES_NO& full_test,
50                    AuthorizationDelegate* authorization_delegate,
51                    const SelfTestResponse& callback));
52  MOCK_METHOD2(SelfTestSync,
53               TPM_RC(const TPMI_YES_NO& full_test,
54                      AuthorizationDelegate* authorization_delegate));
55  MOCK_METHOD3(IncrementalSelfTest,
56               void(const TPML_ALG& to_test,
57                    AuthorizationDelegate* authorization_delegate,
58                    const IncrementalSelfTestResponse& callback));
59  MOCK_METHOD3(IncrementalSelfTestSync,
60               TPM_RC(const TPML_ALG& to_test,
61                      TPML_ALG* to_do_list,
62                      AuthorizationDelegate* authorization_delegate));
63  MOCK_METHOD2(GetTestResult,
64               void(AuthorizationDelegate* authorization_delegate,
65                    const GetTestResultResponse& callback));
66  MOCK_METHOD3(GetTestResultSync,
67               TPM_RC(TPM2B_MAX_BUFFER* out_data,
68                      TPM_RC* test_result,
69                      AuthorizationDelegate* authorization_delegate));
70  // Too many args to mock, forward to *Short version.
71  void StartAuthSession(const TPMI_DH_OBJECT& tpm_key,
72                        const std::string& tpm_key_name,
73                        const TPMI_DH_ENTITY& bind,
74                        const std::string& bind_name,
75                        const TPM2B_NONCE& nonce_caller,
76                        const TPM2B_ENCRYPTED_SECRET& encrypted_salt,
77                        const TPM_SE& session_type,
78                        const TPMT_SYM_DEF& symmetric,
79                        const TPMI_ALG_HASH& auth_hash,
80                        AuthorizationDelegate* authorization_delegate,
81                        const StartAuthSessionResponse& callback) override;
82  MOCK_METHOD9(StartAuthSessionShort,
83               void(const TPMI_DH_OBJECT& tpm_key,
84                    const TPMI_DH_ENTITY& bind,
85                    const TPM2B_NONCE& nonce_caller,
86                    const TPM2B_ENCRYPTED_SECRET& encrypted_salt,
87                    const TPM_SE& session_type,
88                    const TPMT_SYM_DEF& symmetric,
89                    const TPMI_ALG_HASH& auth_hash,
90                    AuthorizationDelegate* authorization_delegate,
91                    const StartAuthSessionResponse& callback));
92  // Too many args to mock, forward to *Short version.
93  TPM_RC StartAuthSessionSync(
94      const TPMI_DH_OBJECT& tpm_key,
95      const std::string& tpm_key_name,
96      const TPMI_DH_ENTITY& bind,
97      const std::string& bind_name,
98      const TPM2B_NONCE& nonce_caller,
99      const TPM2B_ENCRYPTED_SECRET& encrypted_salt,
100      const TPM_SE& session_type,
101      const TPMT_SYM_DEF& symmetric,
102      const TPMI_ALG_HASH& auth_hash,
103      TPMI_SH_AUTH_SESSION* session_handle,
104      TPM2B_NONCE* nonce_tpm,
105      AuthorizationDelegate* authorization_delegate) override;
106  MOCK_METHOD10(StartAuthSessionSyncShort,
107                TPM_RC(const TPMI_DH_OBJECT& tpm_key,
108                       const TPMI_DH_ENTITY& bind,
109                       const TPM2B_NONCE& nonce_caller,
110                       const TPM2B_ENCRYPTED_SECRET& encrypted_salt,
111                       const TPM_SE& session_type,
112                       const TPMT_SYM_DEF& symmetric,
113                       const TPMI_ALG_HASH& auth_hash,
114                       TPMI_SH_AUTH_SESSION* session_handle,
115                       TPM2B_NONCE* nonce_tpm,
116                       AuthorizationDelegate* authorization_delegate));
117  MOCK_METHOD4(PolicyRestart,
118               void(const TPMI_SH_POLICY& session_handle,
119                    const std::string& session_handle_name,
120                    AuthorizationDelegate* authorization_delegate,
121                    const PolicyRestartResponse& callback));
122  MOCK_METHOD3(PolicyRestartSync,
123               TPM_RC(const TPMI_SH_POLICY& session_handle,
124                      const std::string& session_handle_name,
125                      AuthorizationDelegate* authorization_delegate));
126  MOCK_METHOD8(Create,
127               void(const TPMI_DH_OBJECT& parent_handle,
128                    const std::string& parent_handle_name,
129                    const TPM2B_SENSITIVE_CREATE& in_sensitive,
130                    const TPM2B_PUBLIC& in_public,
131                    const TPM2B_DATA& outside_info,
132                    const TPML_PCR_SELECTION& creation_pcr,
133                    AuthorizationDelegate* authorization_delegate,
134                    const CreateResponse& callback));
135  // Too many args to mock, forward to *Short version.
136  TPM_RC CreateSync(const TPMI_DH_OBJECT& parent_handle,
137                    const std::string& parent_handle_name,
138                    const TPM2B_SENSITIVE_CREATE& in_sensitive,
139                    const TPM2B_PUBLIC& in_public,
140                    const TPM2B_DATA& outside_info,
141                    const TPML_PCR_SELECTION& creation_pcr,
142                    TPM2B_PRIVATE* out_private,
143                    TPM2B_PUBLIC* out_public,
144                    TPM2B_CREATION_DATA* creation_data,
145                    TPM2B_DIGEST* creation_hash,
146                    TPMT_TK_CREATION* creation_ticket,
147                    AuthorizationDelegate* authorization_delegate) override;
148  MOCK_METHOD10(CreateSyncShort,
149                TPM_RC(const TPMI_DH_OBJECT& parent_handle,
150                       const TPM2B_SENSITIVE_CREATE& in_sensitive,
151                       const TPM2B_PUBLIC& in_public,
152                       const TPML_PCR_SELECTION& creation_pcr,
153                       TPM2B_PRIVATE* out_private,
154                       TPM2B_PUBLIC* out_public,
155                       TPM2B_CREATION_DATA* creation_data,
156                       TPM2B_DIGEST* creation_hash,
157                       TPMT_TK_CREATION* creation_ticket,
158                       AuthorizationDelegate* authorization_delegate));
159  MOCK_METHOD6(Load,
160               void(const TPMI_DH_OBJECT& parent_handle,
161                    const std::string& parent_handle_name,
162                    const TPM2B_PRIVATE& in_private,
163                    const TPM2B_PUBLIC& in_public,
164                    AuthorizationDelegate* authorization_delegate,
165                    const LoadResponse& callback));
166  MOCK_METHOD7(LoadSync,
167               TPM_RC(const TPMI_DH_OBJECT& parent_handle,
168                      const std::string& parent_handle_name,
169                      const TPM2B_PRIVATE& in_private,
170                      const TPM2B_PUBLIC& in_public,
171                      TPM_HANDLE* object_handle,
172                      TPM2B_NAME* name,
173                      AuthorizationDelegate* authorization_delegate));
174  MOCK_METHOD5(LoadExternal,
175               void(const TPM2B_SENSITIVE& in_private,
176                    const TPM2B_PUBLIC& in_public,
177                    const TPMI_RH_HIERARCHY& hierarchy,
178                    AuthorizationDelegate* authorization_delegate,
179                    const LoadExternalResponse& callback));
180  MOCK_METHOD6(LoadExternalSync,
181               TPM_RC(const TPM2B_SENSITIVE& in_private,
182                      const TPM2B_PUBLIC& in_public,
183                      const TPMI_RH_HIERARCHY& hierarchy,
184                      TPM_HANDLE* object_handle,
185                      TPM2B_NAME* name,
186                      AuthorizationDelegate* authorization_delegate));
187  MOCK_METHOD4(ReadPublic,
188               void(const TPMI_DH_OBJECT& object_handle,
189                    const std::string& object_handle_name,
190                    AuthorizationDelegate* authorization_delegate,
191                    const ReadPublicResponse& callback));
192  MOCK_METHOD6(ReadPublicSync,
193               TPM_RC(const TPMI_DH_OBJECT& object_handle,
194                      const std::string& object_handle_name,
195                      TPM2B_PUBLIC* out_public,
196                      TPM2B_NAME* name,
197                      TPM2B_NAME* qualified_name,
198                      AuthorizationDelegate* authorization_delegate));
199  MOCK_METHOD8(ActivateCredential,
200               void(const TPMI_DH_OBJECT& activate_handle,
201                    const std::string& activate_handle_name,
202                    const TPMI_DH_OBJECT& key_handle,
203                    const std::string& key_handle_name,
204                    const TPM2B_ID_OBJECT& credential_blob,
205                    const TPM2B_ENCRYPTED_SECRET& secret,
206                    AuthorizationDelegate* authorization_delegate,
207                    const ActivateCredentialResponse& callback));
208  MOCK_METHOD8(ActivateCredentialSync,
209               TPM_RC(const TPMI_DH_OBJECT& activate_handle,
210                      const std::string& activate_handle_name,
211                      const TPMI_DH_OBJECT& key_handle,
212                      const std::string& key_handle_name,
213                      const TPM2B_ID_OBJECT& credential_blob,
214                      const TPM2B_ENCRYPTED_SECRET& secret,
215                      TPM2B_DIGEST* cert_info,
216                      AuthorizationDelegate* authorization_delegate));
217  MOCK_METHOD6(MakeCredential,
218               void(const TPMI_DH_OBJECT& handle,
219                    const std::string& handle_name,
220                    const TPM2B_DIGEST& credential,
221                    const TPM2B_NAME& object_name,
222                    AuthorizationDelegate* authorization_delegate,
223                    const MakeCredentialResponse& callback));
224  MOCK_METHOD7(MakeCredentialSync,
225               TPM_RC(const TPMI_DH_OBJECT& handle,
226                      const std::string& handle_name,
227                      const TPM2B_DIGEST& credential,
228                      const TPM2B_NAME& object_name,
229                      TPM2B_ID_OBJECT* credential_blob,
230                      TPM2B_ENCRYPTED_SECRET* secret,
231                      AuthorizationDelegate* authorization_delegate));
232  MOCK_METHOD4(Unseal,
233               void(const TPMI_DH_OBJECT& item_handle,
234                    const std::string& item_handle_name,
235                    AuthorizationDelegate* authorization_delegate,
236                    const UnsealResponse& callback));
237  MOCK_METHOD4(UnsealSync,
238               TPM_RC(const TPMI_DH_OBJECT& item_handle,
239                      const std::string& item_handle_name,
240                      TPM2B_SENSITIVE_DATA* out_data,
241                      AuthorizationDelegate* authorization_delegate));
242  MOCK_METHOD7(ObjectChangeAuth,
243               void(const TPMI_DH_OBJECT& object_handle,
244                    const std::string& object_handle_name,
245                    const TPMI_DH_OBJECT& parent_handle,
246                    const std::string& parent_handle_name,
247                    const TPM2B_AUTH& new_auth,
248                    AuthorizationDelegate* authorization_delegate,
249                    const ObjectChangeAuthResponse& callback));
250  MOCK_METHOD7(ObjectChangeAuthSync,
251               TPM_RC(const TPMI_DH_OBJECT& object_handle,
252                      const std::string& object_handle_name,
253                      const TPMI_DH_OBJECT& parent_handle,
254                      const std::string& parent_handle_name,
255                      const TPM2B_AUTH& new_auth,
256                      TPM2B_PRIVATE* out_private,
257                      AuthorizationDelegate* authorization_delegate));
258  MOCK_METHOD8(Duplicate,
259               void(const TPMI_DH_OBJECT& object_handle,
260                    const std::string& object_handle_name,
261                    const TPMI_DH_OBJECT& new_parent_handle,
262                    const std::string& new_parent_handle_name,
263                    const TPM2B_DATA& encryption_key_in,
264                    const TPMT_SYM_DEF_OBJECT& symmetric_alg,
265                    AuthorizationDelegate* authorization_delegate,
266                    const DuplicateResponse& callback));
267  MOCK_METHOD10(DuplicateSync,
268                TPM_RC(const TPMI_DH_OBJECT& object_handle,
269                       const std::string& object_handle_name,
270                       const TPMI_DH_OBJECT& new_parent_handle,
271                       const std::string& new_parent_handle_name,
272                       const TPM2B_DATA& encryption_key_in,
273                       const TPMT_SYM_DEF_OBJECT& symmetric_alg,
274                       TPM2B_DATA* encryption_key_out,
275                       TPM2B_PRIVATE* duplicate,
276                       TPM2B_ENCRYPTED_SECRET* out_sym_seed,
277                       AuthorizationDelegate* authorization_delegate));
278  MOCK_METHOD9(Rewrap,
279               void(const TPMI_DH_OBJECT& old_parent,
280                    const std::string& old_parent_name,
281                    const TPMI_DH_OBJECT& new_parent,
282                    const std::string& new_parent_name,
283                    const TPM2B_PRIVATE& in_duplicate,
284                    const TPM2B_NAME& name,
285                    const TPM2B_ENCRYPTED_SECRET& in_sym_seed,
286                    AuthorizationDelegate* authorization_delegate,
287                    const RewrapResponse& callback));
288  MOCK_METHOD10(RewrapSync,
289                TPM_RC(const TPMI_DH_OBJECT& old_parent,
290                       const std::string& old_parent_name,
291                       const TPMI_DH_OBJECT& new_parent,
292                       const std::string& new_parent_name,
293                       const TPM2B_PRIVATE& in_duplicate,
294                       const TPM2B_NAME& name,
295                       const TPM2B_ENCRYPTED_SECRET& in_sym_seed,
296                       TPM2B_PRIVATE* out_duplicate,
297                       TPM2B_ENCRYPTED_SECRET* out_sym_seed,
298                       AuthorizationDelegate* authorization_delegate));
299  MOCK_METHOD9(Import,
300               void(const TPMI_DH_OBJECT& parent_handle,
301                    const std::string& parent_handle_name,
302                    const TPM2B_DATA& encryption_key,
303                    const TPM2B_PUBLIC& object_public,
304                    const TPM2B_PRIVATE& duplicate,
305                    const TPM2B_ENCRYPTED_SECRET& in_sym_seed,
306                    const TPMT_SYM_DEF_OBJECT& symmetric_alg,
307                    AuthorizationDelegate* authorization_delegate,
308                    const ImportResponse& callback));
309  MOCK_METHOD9(ImportSync,
310               TPM_RC(const TPMI_DH_OBJECT& parent_handle,
311                      const std::string& parent_handle_name,
312                      const TPM2B_DATA& encryption_key,
313                      const TPM2B_PUBLIC& object_public,
314                      const TPM2B_PRIVATE& duplicate,
315                      const TPM2B_ENCRYPTED_SECRET& in_sym_seed,
316                      const TPMT_SYM_DEF_OBJECT& symmetric_alg,
317                      TPM2B_PRIVATE* out_private,
318                      AuthorizationDelegate* authorization_delegate));
319  MOCK_METHOD7(RSA_Encrypt,
320               void(const TPMI_DH_OBJECT& key_handle,
321                    const std::string& key_handle_name,
322                    const TPM2B_PUBLIC_KEY_RSA& message,
323                    const TPMT_RSA_DECRYPT& in_scheme,
324                    const TPM2B_DATA& label,
325                    AuthorizationDelegate* authorization_delegate,
326                    const RSA_EncryptResponse& callback));
327  MOCK_METHOD7(RSA_EncryptSync,
328               TPM_RC(const TPMI_DH_OBJECT& key_handle,
329                      const std::string& key_handle_name,
330                      const TPM2B_PUBLIC_KEY_RSA& message,
331                      const TPMT_RSA_DECRYPT& in_scheme,
332                      const TPM2B_DATA& label,
333                      TPM2B_PUBLIC_KEY_RSA* out_data,
334                      AuthorizationDelegate* authorization_delegate));
335  MOCK_METHOD7(RSA_Decrypt,
336               void(const TPMI_DH_OBJECT& key_handle,
337                    const std::string& key_handle_name,
338                    const TPM2B_PUBLIC_KEY_RSA& cipher_text,
339                    const TPMT_RSA_DECRYPT& in_scheme,
340                    const TPM2B_DATA& label,
341                    AuthorizationDelegate* authorization_delegate,
342                    const RSA_DecryptResponse& callback));
343  MOCK_METHOD7(RSA_DecryptSync,
344               TPM_RC(const TPMI_DH_OBJECT& key_handle,
345                      const std::string& key_handle_name,
346                      const TPM2B_PUBLIC_KEY_RSA& cipher_text,
347                      const TPMT_RSA_DECRYPT& in_scheme,
348                      const TPM2B_DATA& label,
349                      TPM2B_PUBLIC_KEY_RSA* message,
350                      AuthorizationDelegate* authorization_delegate));
351  MOCK_METHOD4(ECDH_KeyGen,
352               void(const TPMI_DH_OBJECT& key_handle,
353                    const std::string& key_handle_name,
354                    AuthorizationDelegate* authorization_delegate,
355                    const ECDH_KeyGenResponse& callback));
356  MOCK_METHOD5(ECDH_KeyGenSync,
357               TPM_RC(const TPMI_DH_OBJECT& key_handle,
358                      const std::string& key_handle_name,
359                      TPM2B_ECC_POINT* z_point,
360                      TPM2B_ECC_POINT* pub_point,
361                      AuthorizationDelegate* authorization_delegate));
362  MOCK_METHOD5(ECDH_ZGen,
363               void(const TPMI_DH_OBJECT& key_handle,
364                    const std::string& key_handle_name,
365                    const TPM2B_ECC_POINT& in_point,
366                    AuthorizationDelegate* authorization_delegate,
367                    const ECDH_ZGenResponse& callback));
368  MOCK_METHOD5(ECDH_ZGenSync,
369               TPM_RC(const TPMI_DH_OBJECT& key_handle,
370                      const std::string& key_handle_name,
371                      const TPM2B_ECC_POINT& in_point,
372                      TPM2B_ECC_POINT* out_point,
373                      AuthorizationDelegate* authorization_delegate));
374  MOCK_METHOD3(ECC_Parameters,
375               void(const TPMI_ECC_CURVE& curve_id,
376                    AuthorizationDelegate* authorization_delegate,
377                    const ECC_ParametersResponse& callback));
378  MOCK_METHOD3(ECC_ParametersSync,
379               TPM_RC(const TPMI_ECC_CURVE& curve_id,
380                      TPMS_ALGORITHM_DETAIL_ECC* parameters,
381                      AuthorizationDelegate* authorization_delegate));
382  MOCK_METHOD8(ZGen_2Phase,
383               void(const TPMI_DH_OBJECT& key_a,
384                    const std::string& key_a_name,
385                    const TPM2B_ECC_POINT& in_qs_b,
386                    const TPM2B_ECC_POINT& in_qe_b,
387                    const TPMI_ECC_KEY_EXCHANGE& in_scheme,
388                    const UINT16& counter,
389                    AuthorizationDelegate* authorization_delegate,
390                    const ZGen_2PhaseResponse& callback));
391  MOCK_METHOD9(ZGen_2PhaseSync,
392               TPM_RC(const TPMI_DH_OBJECT& key_a,
393                      const std::string& key_a_name,
394                      const TPM2B_ECC_POINT& in_qs_b,
395                      const TPM2B_ECC_POINT& in_qe_b,
396                      const TPMI_ECC_KEY_EXCHANGE& in_scheme,
397                      const UINT16& counter,
398                      TPM2B_ECC_POINT* out_z1,
399                      TPM2B_ECC_POINT* out_z2,
400                      AuthorizationDelegate* authorization_delegate));
401  MOCK_METHOD8(EncryptDecrypt,
402               void(const TPMI_DH_OBJECT& key_handle,
403                    const std::string& key_handle_name,
404                    const TPMI_YES_NO& decrypt,
405                    const TPMI_ALG_SYM_MODE& mode,
406                    const TPM2B_IV& iv_in,
407                    const TPM2B_MAX_BUFFER& in_data,
408                    AuthorizationDelegate* authorization_delegate,
409                    const EncryptDecryptResponse& callback));
410  MOCK_METHOD9(EncryptDecryptSync,
411               TPM_RC(const TPMI_DH_OBJECT& key_handle,
412                      const std::string& key_handle_name,
413                      const TPMI_YES_NO& decrypt,
414                      const TPMI_ALG_SYM_MODE& mode,
415                      const TPM2B_IV& iv_in,
416                      const TPM2B_MAX_BUFFER& in_data,
417                      TPM2B_MAX_BUFFER* out_data,
418                      TPM2B_IV* iv_out,
419                      AuthorizationDelegate* authorization_delegate));
420  MOCK_METHOD5(Hash,
421               void(const TPM2B_MAX_BUFFER& data,
422                    const TPMI_ALG_HASH& hash_alg,
423                    const TPMI_RH_HIERARCHY& hierarchy,
424                    AuthorizationDelegate* authorization_delegate,
425                    const HashResponse& callback));
426  MOCK_METHOD6(HashSync,
427               TPM_RC(const TPM2B_MAX_BUFFER& data,
428                      const TPMI_ALG_HASH& hash_alg,
429                      const TPMI_RH_HIERARCHY& hierarchy,
430                      TPM2B_DIGEST* out_hash,
431                      TPMT_TK_HASHCHECK* validation,
432                      AuthorizationDelegate* authorization_delegate));
433  MOCK_METHOD6(HMAC,
434               void(const TPMI_DH_OBJECT& handle,
435                    const std::string& handle_name,
436                    const TPM2B_MAX_BUFFER& buffer,
437                    const TPMI_ALG_HASH& hash_alg,
438                    AuthorizationDelegate* authorization_delegate,
439                    const HMACResponse& callback));
440  MOCK_METHOD6(HMACSync,
441               TPM_RC(const TPMI_DH_OBJECT& handle,
442                      const std::string& handle_name,
443                      const TPM2B_MAX_BUFFER& buffer,
444                      const TPMI_ALG_HASH& hash_alg,
445                      TPM2B_DIGEST* out_hmac,
446                      AuthorizationDelegate* authorization_delegate));
447  MOCK_METHOD3(GetRandom,
448               void(const UINT16& bytes_requested,
449                    AuthorizationDelegate* authorization_delegate,
450                    const GetRandomResponse& callback));
451  MOCK_METHOD3(GetRandomSync,
452               TPM_RC(const UINT16& bytes_requested,
453                      TPM2B_DIGEST* random_bytes,
454                      AuthorizationDelegate* authorization_delegate));
455  MOCK_METHOD3(StirRandom,
456               void(const TPM2B_SENSITIVE_DATA& in_data,
457                    AuthorizationDelegate* authorization_delegate,
458                    const StirRandomResponse& callback));
459  MOCK_METHOD2(StirRandomSync,
460               TPM_RC(const TPM2B_SENSITIVE_DATA& in_data,
461                      AuthorizationDelegate* authorization_delegate));
462  MOCK_METHOD6(HMAC_Start,
463               void(const TPMI_DH_OBJECT& handle,
464                    const std::string& handle_name,
465                    const TPM2B_AUTH& auth,
466                    const TPMI_ALG_HASH& hash_alg,
467                    AuthorizationDelegate* authorization_delegate,
468                    const HMAC_StartResponse& callback));
469  MOCK_METHOD6(HMAC_StartSync,
470               TPM_RC(const TPMI_DH_OBJECT& handle,
471                      const std::string& handle_name,
472                      const TPM2B_AUTH& auth,
473                      const TPMI_ALG_HASH& hash_alg,
474                      TPMI_DH_OBJECT* sequence_handle,
475                      AuthorizationDelegate* authorization_delegate));
476  MOCK_METHOD4(HashSequenceStart,
477               void(const TPM2B_AUTH& auth,
478                    const TPMI_ALG_HASH& hash_alg,
479                    AuthorizationDelegate* authorization_delegate,
480                    const HashSequenceStartResponse& callback));
481  MOCK_METHOD4(HashSequenceStartSync,
482               TPM_RC(const TPM2B_AUTH& auth,
483                      const TPMI_ALG_HASH& hash_alg,
484                      TPMI_DH_OBJECT* sequence_handle,
485                      AuthorizationDelegate* authorization_delegate));
486  MOCK_METHOD5(SequenceUpdate,
487               void(const TPMI_DH_OBJECT& sequence_handle,
488                    const std::string& sequence_handle_name,
489                    const TPM2B_MAX_BUFFER& buffer,
490                    AuthorizationDelegate* authorization_delegate,
491                    const SequenceUpdateResponse& callback));
492  MOCK_METHOD4(SequenceUpdateSync,
493               TPM_RC(const TPMI_DH_OBJECT& sequence_handle,
494                      const std::string& sequence_handle_name,
495                      const TPM2B_MAX_BUFFER& buffer,
496                      AuthorizationDelegate* authorization_delegate));
497  MOCK_METHOD6(SequenceComplete,
498               void(const TPMI_DH_OBJECT& sequence_handle,
499                    const std::string& sequence_handle_name,
500                    const TPM2B_MAX_BUFFER& buffer,
501                    const TPMI_RH_HIERARCHY& hierarchy,
502                    AuthorizationDelegate* authorization_delegate,
503                    const SequenceCompleteResponse& callback));
504  MOCK_METHOD7(SequenceCompleteSync,
505               TPM_RC(const TPMI_DH_OBJECT& sequence_handle,
506                      const std::string& sequence_handle_name,
507                      const TPM2B_MAX_BUFFER& buffer,
508                      const TPMI_RH_HIERARCHY& hierarchy,
509                      TPM2B_DIGEST* result,
510                      TPMT_TK_HASHCHECK* validation,
511                      AuthorizationDelegate* authorization_delegate));
512  MOCK_METHOD7(EventSequenceComplete,
513               void(const TPMI_DH_PCR& pcr_handle,
514                    const std::string& pcr_handle_name,
515                    const TPMI_DH_OBJECT& sequence_handle,
516                    const std::string& sequence_handle_name,
517                    const TPM2B_MAX_BUFFER& buffer,
518                    AuthorizationDelegate* authorization_delegate,
519                    const EventSequenceCompleteResponse& callback));
520  MOCK_METHOD7(EventSequenceCompleteSync,
521               TPM_RC(const TPMI_DH_PCR& pcr_handle,
522                      const std::string& pcr_handle_name,
523                      const TPMI_DH_OBJECT& sequence_handle,
524                      const std::string& sequence_handle_name,
525                      const TPM2B_MAX_BUFFER& buffer,
526                      TPML_DIGEST_VALUES* results,
527                      AuthorizationDelegate* authorization_delegate));
528  MOCK_METHOD8(Certify,
529               void(const TPMI_DH_OBJECT& object_handle,
530                    const std::string& object_handle_name,
531                    const TPMI_DH_OBJECT& sign_handle,
532                    const std::string& sign_handle_name,
533                    const TPM2B_DATA& qualifying_data,
534                    const TPMT_SIG_SCHEME& in_scheme,
535                    AuthorizationDelegate* authorization_delegate,
536                    const CertifyResponse& callback));
537  MOCK_METHOD9(CertifySync,
538               TPM_RC(const TPMI_DH_OBJECT& object_handle,
539                      const std::string& object_handle_name,
540                      const TPMI_DH_OBJECT& sign_handle,
541                      const std::string& sign_handle_name,
542                      const TPM2B_DATA& qualifying_data,
543                      const TPMT_SIG_SCHEME& in_scheme,
544                      TPM2B_ATTEST* certify_info,
545                      TPMT_SIGNATURE* signature,
546                      AuthorizationDelegate* authorization_delegate));
547  MOCK_METHOD10(CertifyCreation,
548                void(const TPMI_DH_OBJECT& sign_handle,
549                     const std::string& sign_handle_name,
550                     const TPMI_DH_OBJECT& object_handle,
551                     const std::string& object_handle_name,
552                     const TPM2B_DATA& qualifying_data,
553                     const TPM2B_DIGEST& creation_hash,
554                     const TPMT_SIG_SCHEME& in_scheme,
555                     const TPMT_TK_CREATION& creation_ticket,
556                     AuthorizationDelegate* authorization_delegate,
557                     const CertifyCreationResponse& callback));
558  // Too many args to mock, forward to *Short version.
559  TPM_RC CertifyCreationSync(
560      const TPMI_DH_OBJECT& sign_handle,
561      const std::string& sign_handle_name,
562      const TPMI_DH_OBJECT& object_handle,
563      const std::string& object_handle_name,
564      const TPM2B_DATA& qualifying_data,
565      const TPM2B_DIGEST& creation_hash,
566      const TPMT_SIG_SCHEME& in_scheme,
567      const TPMT_TK_CREATION& creation_ticket,
568      TPM2B_ATTEST* certify_info,
569      TPMT_SIGNATURE* signature,
570      AuthorizationDelegate* authorization_delegate) override;
571  MOCK_METHOD9(CertifyCreationSyncShort,
572               TPM_RC(const TPMI_DH_OBJECT& sign_handle,
573                      const TPMI_DH_OBJECT& object_handle,
574                      const TPM2B_DATA& qualifying_data,
575                      const TPM2B_DIGEST& creation_hash,
576                      const TPMT_SIG_SCHEME& in_scheme,
577                      const TPMT_TK_CREATION& creation_ticket,
578                      TPM2B_ATTEST* certify_info,
579                      TPMT_SIGNATURE* signature,
580                      AuthorizationDelegate* authorization_delegate));
581  MOCK_METHOD7(Quote,
582               void(const TPMI_DH_OBJECT& sign_handle,
583                    const std::string& sign_handle_name,
584                    const TPM2B_DATA& qualifying_data,
585                    const TPMT_SIG_SCHEME& in_scheme,
586                    const TPML_PCR_SELECTION& pcrselect,
587                    AuthorizationDelegate* authorization_delegate,
588                    const QuoteResponse& callback));
589  MOCK_METHOD8(QuoteSync,
590               TPM_RC(const TPMI_DH_OBJECT& sign_handle,
591                      const std::string& sign_handle_name,
592                      const TPM2B_DATA& qualifying_data,
593                      const TPMT_SIG_SCHEME& in_scheme,
594                      const TPML_PCR_SELECTION& pcrselect,
595                      TPM2B_ATTEST* quoted,
596                      TPMT_SIGNATURE* signature,
597                      AuthorizationDelegate* authorization_delegate));
598  MOCK_METHOD10(GetSessionAuditDigest,
599                void(const TPMI_RH_ENDORSEMENT& privacy_admin_handle,
600                     const std::string& privacy_admin_handle_name,
601                     const TPMI_DH_OBJECT& sign_handle,
602                     const std::string& sign_handle_name,
603                     const TPMI_SH_HMAC& session_handle,
604                     const std::string& session_handle_name,
605                     const TPM2B_DATA& qualifying_data,
606                     const TPMT_SIG_SCHEME& in_scheme,
607                     AuthorizationDelegate* authorization_delegate,
608                     const GetSessionAuditDigestResponse& callback));
609  // Too many args to mock, forward to *Short version.
610  TPM_RC GetSessionAuditDigestSync(
611      const TPMI_RH_ENDORSEMENT& privacy_admin_handle,
612      const std::string& privacy_admin_handle_name,
613      const TPMI_DH_OBJECT& sign_handle,
614      const std::string& sign_handle_name,
615      const TPMI_SH_HMAC& session_handle,
616      const std::string& session_handle_name,
617      const TPM2B_DATA& qualifying_data,
618      const TPMT_SIG_SCHEME& in_scheme,
619      TPM2B_ATTEST* audit_info,
620      TPMT_SIGNATURE* signature,
621      AuthorizationDelegate* authorization_delegate) override;
622  MOCK_METHOD8(GetSessionAuditDigestSyncShort,
623               TPM_RC(const TPMI_RH_ENDORSEMENT& privacy_admin_handle,
624                      const TPMI_DH_OBJECT& sign_handle,
625                      const TPMI_SH_HMAC& session_handle,
626                      const TPM2B_DATA& qualifying_data,
627                      const TPMT_SIG_SCHEME& in_scheme,
628                      TPM2B_ATTEST* audit_info,
629                      TPMT_SIGNATURE* signature,
630                      AuthorizationDelegate* authorization_delegate));
631  MOCK_METHOD8(GetCommandAuditDigest,
632               void(const TPMI_RH_ENDORSEMENT& privacy_handle,
633                    const std::string& privacy_handle_name,
634                    const TPMI_DH_OBJECT& sign_handle,
635                    const std::string& sign_handle_name,
636                    const TPM2B_DATA& qualifying_data,
637                    const TPMT_SIG_SCHEME& in_scheme,
638                    AuthorizationDelegate* authorization_delegate,
639                    const GetCommandAuditDigestResponse& callback));
640  MOCK_METHOD9(GetCommandAuditDigestSync,
641               TPM_RC(const TPMI_RH_ENDORSEMENT& privacy_handle,
642                      const std::string& privacy_handle_name,
643                      const TPMI_DH_OBJECT& sign_handle,
644                      const std::string& sign_handle_name,
645                      const TPM2B_DATA& qualifying_data,
646                      const TPMT_SIG_SCHEME& in_scheme,
647                      TPM2B_ATTEST* audit_info,
648                      TPMT_SIGNATURE* signature,
649                      AuthorizationDelegate* authorization_delegate));
650  MOCK_METHOD8(GetTime,
651               void(const TPMI_RH_ENDORSEMENT& privacy_admin_handle,
652                    const std::string& privacy_admin_handle_name,
653                    const TPMI_DH_OBJECT& sign_handle,
654                    const std::string& sign_handle_name,
655                    const TPM2B_DATA& qualifying_data,
656                    const TPMT_SIG_SCHEME& in_scheme,
657                    AuthorizationDelegate* authorization_delegate,
658                    const GetTimeResponse& callback));
659  MOCK_METHOD9(GetTimeSync,
660               TPM_RC(const TPMI_RH_ENDORSEMENT& privacy_admin_handle,
661                      const std::string& privacy_admin_handle_name,
662                      const TPMI_DH_OBJECT& sign_handle,
663                      const std::string& sign_handle_name,
664                      const TPM2B_DATA& qualifying_data,
665                      const TPMT_SIG_SCHEME& in_scheme,
666                      TPM2B_ATTEST* time_info,
667                      TPMT_SIGNATURE* signature,
668                      AuthorizationDelegate* authorization_delegate));
669  MOCK_METHOD8(Commit,
670               void(const TPMI_DH_OBJECT& sign_handle,
671                    const std::string& sign_handle_name,
672                    const UINT32& param_size,
673                    const TPM2B_ECC_POINT& p1,
674                    const TPM2B_SENSITIVE_DATA& s2,
675                    const TPM2B_ECC_PARAMETER& y2,
676                    AuthorizationDelegate* authorization_delegate,
677                    const CommitResponse& callback));
678  // Too many args to mock, forward to *Short version.
679  TPM_RC CommitSync(const TPMI_DH_OBJECT& sign_handle,
680                    const std::string& sign_handle_name,
681                    const UINT32& param_size,
682                    const TPM2B_ECC_POINT& p1,
683                    const TPM2B_SENSITIVE_DATA& s2,
684                    const TPM2B_ECC_PARAMETER& y2,
685                    UINT32* param_size_out,
686                    TPM2B_ECC_POINT* k,
687                    TPM2B_ECC_POINT* l,
688                    TPM2B_ECC_POINT* e,
689                    UINT16* counter,
690                    AuthorizationDelegate* authorization_delegate) override;
691  MOCK_METHOD10(CommitSyncShort,
692                TPM_RC(const TPMI_DH_OBJECT& sign_handle,
693                       const UINT32& param_size,
694                       const TPM2B_ECC_POINT& p1,
695                       const TPM2B_ECC_PARAMETER& y2,
696                       UINT32* param_size_out,
697                       TPM2B_ECC_POINT* k,
698                       TPM2B_ECC_POINT* l,
699                       TPM2B_ECC_POINT* e,
700                       UINT16* counter,
701                       AuthorizationDelegate* authorization_delegate));
702  MOCK_METHOD4(EC_Ephemeral,
703               void(const UINT32& param_size,
704                    const TPMI_ECC_CURVE& curve_id,
705                    AuthorizationDelegate* authorization_delegate,
706                    const EC_EphemeralResponse& callback));
707  MOCK_METHOD6(EC_EphemeralSync,
708               TPM_RC(const UINT32& param_size,
709                      const TPMI_ECC_CURVE& curve_id,
710                      UINT32* param_size_out,
711                      TPM2B_ECC_POINT* q,
712                      UINT16* counter,
713                      AuthorizationDelegate* authorization_delegate));
714  MOCK_METHOD6(VerifySignature,
715               void(const TPMI_DH_OBJECT& key_handle,
716                    const std::string& key_handle_name,
717                    const TPM2B_DIGEST& digest,
718                    const TPMT_SIGNATURE& signature,
719                    AuthorizationDelegate* authorization_delegate,
720                    const VerifySignatureResponse& callback));
721  MOCK_METHOD6(VerifySignatureSync,
722               TPM_RC(const TPMI_DH_OBJECT& key_handle,
723                      const std::string& key_handle_name,
724                      const TPM2B_DIGEST& digest,
725                      const TPMT_SIGNATURE& signature,
726                      TPMT_TK_VERIFIED* validation,
727                      AuthorizationDelegate* authorization_delegate));
728  MOCK_METHOD7(Sign,
729               void(const TPMI_DH_OBJECT& key_handle,
730                    const std::string& key_handle_name,
731                    const TPM2B_DIGEST& digest,
732                    const TPMT_SIG_SCHEME& in_scheme,
733                    const TPMT_TK_HASHCHECK& validation,
734                    AuthorizationDelegate* authorization_delegate,
735                    const SignResponse& callback));
736  MOCK_METHOD7(SignSync,
737               TPM_RC(const TPMI_DH_OBJECT& key_handle,
738                      const std::string& key_handle_name,
739                      const TPM2B_DIGEST& digest,
740                      const TPMT_SIG_SCHEME& in_scheme,
741                      const TPMT_TK_HASHCHECK& validation,
742                      TPMT_SIGNATURE* signature,
743                      AuthorizationDelegate* authorization_delegate));
744  MOCK_METHOD7(SetCommandCodeAuditStatus,
745               void(const TPMI_RH_PROVISION& auth,
746                    const std::string& auth_name,
747                    const TPMI_ALG_HASH& audit_alg,
748                    const TPML_CC& set_list,
749                    const TPML_CC& clear_list,
750                    AuthorizationDelegate* authorization_delegate,
751                    const SetCommandCodeAuditStatusResponse& callback));
752  MOCK_METHOD6(SetCommandCodeAuditStatusSync,
753               TPM_RC(const TPMI_RH_PROVISION& auth,
754                      const std::string& auth_name,
755                      const TPMI_ALG_HASH& audit_alg,
756                      const TPML_CC& set_list,
757                      const TPML_CC& clear_list,
758                      AuthorizationDelegate* authorization_delegate));
759  MOCK_METHOD5(PCR_Extend,
760               void(const TPMI_DH_PCR& pcr_handle,
761                    const std::string& pcr_handle_name,
762                    const TPML_DIGEST_VALUES& digests,
763                    AuthorizationDelegate* authorization_delegate,
764                    const PCR_ExtendResponse& callback));
765  MOCK_METHOD4(PCR_ExtendSync,
766               TPM_RC(const TPMI_DH_PCR& pcr_handle,
767                      const std::string& pcr_handle_name,
768                      const TPML_DIGEST_VALUES& digests,
769                      AuthorizationDelegate* authorization_delegate));
770  MOCK_METHOD5(PCR_Event,
771               void(const TPMI_DH_PCR& pcr_handle,
772                    const std::string& pcr_handle_name,
773                    const TPM2B_EVENT& event_data,
774                    AuthorizationDelegate* authorization_delegate,
775                    const PCR_EventResponse& callback));
776  MOCK_METHOD5(PCR_EventSync,
777               TPM_RC(const TPMI_DH_PCR& pcr_handle,
778                      const std::string& pcr_handle_name,
779                      const TPM2B_EVENT& event_data,
780                      TPML_DIGEST_VALUES* digests,
781                      AuthorizationDelegate* authorization_delegate));
782  MOCK_METHOD3(PCR_Read,
783               void(const TPML_PCR_SELECTION& pcr_selection_in,
784                    AuthorizationDelegate* authorization_delegate,
785                    const PCR_ReadResponse& callback));
786  MOCK_METHOD5(PCR_ReadSync,
787               TPM_RC(const TPML_PCR_SELECTION& pcr_selection_in,
788                      UINT32* pcr_update_counter,
789                      TPML_PCR_SELECTION* pcr_selection_out,
790                      TPML_DIGEST* pcr_values,
791                      AuthorizationDelegate* authorization_delegate));
792  MOCK_METHOD5(PCR_Allocate,
793               void(const TPMI_RH_PLATFORM& auth_handle,
794                    const std::string& auth_handle_name,
795                    const TPML_PCR_SELECTION& pcr_allocation,
796                    AuthorizationDelegate* authorization_delegate,
797                    const PCR_AllocateResponse& callback));
798  MOCK_METHOD8(PCR_AllocateSync,
799               TPM_RC(const TPMI_RH_PLATFORM& auth_handle,
800                      const std::string& auth_handle_name,
801                      const TPML_PCR_SELECTION& pcr_allocation,
802                      TPMI_YES_NO* allocation_success,
803                      UINT32* max_pcr,
804                      UINT32* size_needed,
805                      UINT32* size_available,
806                      AuthorizationDelegate* authorization_delegate));
807  MOCK_METHOD8(PCR_SetAuthPolicy,
808               void(const TPMI_RH_PLATFORM& auth_handle,
809                    const std::string& auth_handle_name,
810                    const TPMI_DH_PCR& pcr_num,
811                    const std::string& pcr_num_name,
812                    const TPM2B_DIGEST& auth_policy,
813                    const TPMI_ALG_HASH& policy_digest,
814                    AuthorizationDelegate* authorization_delegate,
815                    const PCR_SetAuthPolicyResponse& callback));
816  MOCK_METHOD7(PCR_SetAuthPolicySync,
817               TPM_RC(const TPMI_RH_PLATFORM& auth_handle,
818                      const std::string& auth_handle_name,
819                      const TPMI_DH_PCR& pcr_num,
820                      const std::string& pcr_num_name,
821                      const TPM2B_DIGEST& auth_policy,
822                      const TPMI_ALG_HASH& policy_digest,
823                      AuthorizationDelegate* authorization_delegate));
824  MOCK_METHOD5(PCR_SetAuthValue,
825               void(const TPMI_DH_PCR& pcr_handle,
826                    const std::string& pcr_handle_name,
827                    const TPM2B_DIGEST& auth,
828                    AuthorizationDelegate* authorization_delegate,
829                    const PCR_SetAuthValueResponse& callback));
830  MOCK_METHOD4(PCR_SetAuthValueSync,
831               TPM_RC(const TPMI_DH_PCR& pcr_handle,
832                      const std::string& pcr_handle_name,
833                      const TPM2B_DIGEST& auth,
834                      AuthorizationDelegate* authorization_delegate));
835  MOCK_METHOD4(PCR_Reset,
836               void(const TPMI_DH_PCR& pcr_handle,
837                    const std::string& pcr_handle_name,
838                    AuthorizationDelegate* authorization_delegate,
839                    const PCR_ResetResponse& callback));
840  MOCK_METHOD3(PCR_ResetSync,
841               TPM_RC(const TPMI_DH_PCR& pcr_handle,
842                      const std::string& pcr_handle_name,
843                      AuthorizationDelegate* authorization_delegate));
844  // Too many args to mock, forward to *Short version.
845  void PolicySigned(const TPMI_DH_OBJECT& auth_object,
846                    const std::string& auth_object_name,
847                    const TPMI_SH_POLICY& policy_session,
848                    const std::string& policy_session_name,
849                    const TPM2B_NONCE& nonce_tpm,
850                    const TPM2B_DIGEST& cp_hash_a,
851                    const TPM2B_NONCE& policy_ref,
852                    const INT32& expiration,
853                    const TPMT_SIGNATURE& auth,
854                    AuthorizationDelegate* authorization_delegate,
855                    const PolicySignedResponse& callback) override;
856  MOCK_METHOD9(PolicySignedShort,
857               void(const TPMI_DH_OBJECT& auth_object,
858                    const TPMI_SH_POLICY& policy_session,
859                    const TPM2B_NONCE& nonce_tpm,
860                    const TPM2B_DIGEST& cp_hash_a,
861                    const TPM2B_NONCE& policy_ref,
862                    const INT32& expiration,
863                    const TPMT_SIGNATURE& auth,
864                    AuthorizationDelegate* authorization_delegate,
865                    const PolicySignedResponse& callback));
866  // Too many args to mock, forward to *Short version.
867  TPM_RC PolicySignedSync(
868      const TPMI_DH_OBJECT& auth_object,
869      const std::string& auth_object_name,
870      const TPMI_SH_POLICY& policy_session,
871      const std::string& policy_session_name,
872      const TPM2B_NONCE& nonce_tpm,
873      const TPM2B_DIGEST& cp_hash_a,
874      const TPM2B_NONCE& policy_ref,
875      const INT32& expiration,
876      const TPMT_SIGNATURE& auth,
877      TPM2B_TIMEOUT* timeout,
878      TPMT_TK_AUTH* policy_ticket,
879      AuthorizationDelegate* authorization_delegate) override;
880  MOCK_METHOD10(PolicySignedSyncShort,
881                TPM_RC(const TPMI_DH_OBJECT& auth_object,
882                       const TPMI_SH_POLICY& policy_session,
883                       const TPM2B_NONCE& nonce_tpm,
884                       const TPM2B_DIGEST& cp_hash_a,
885                       const TPM2B_NONCE& policy_ref,
886                       const INT32& expiration,
887                       const TPMT_SIGNATURE& auth,
888                       TPM2B_TIMEOUT* timeout,
889                       TPMT_TK_AUTH* policy_ticket,
890                       AuthorizationDelegate* authorization_delegate));
891  MOCK_METHOD10(PolicySecret,
892                void(const TPMI_DH_ENTITY& auth_handle,
893                     const std::string& auth_handle_name,
894                     const TPMI_SH_POLICY& policy_session,
895                     const std::string& policy_session_name,
896                     const TPM2B_NONCE& nonce_tpm,
897                     const TPM2B_DIGEST& cp_hash_a,
898                     const TPM2B_NONCE& policy_ref,
899                     const INT32& expiration,
900                     AuthorizationDelegate* authorization_delegate,
901                     const PolicySecretResponse& callback));
902  // Too many args to mock, forward to *Short version.
903  TPM_RC PolicySecretSync(
904      const TPMI_DH_ENTITY& auth_handle,
905      const std::string& auth_handle_name,
906      const TPMI_SH_POLICY& policy_session,
907      const std::string& policy_session_name,
908      const TPM2B_NONCE& nonce_tpm,
909      const TPM2B_DIGEST& cp_hash_a,
910      const TPM2B_NONCE& policy_ref,
911      const INT32& expiration,
912      TPM2B_TIMEOUT* timeout,
913      TPMT_TK_AUTH* policy_ticket,
914      AuthorizationDelegate* authorization_delegate) override;
915  MOCK_METHOD9(PolicySecretSyncShort,
916               TPM_RC(const TPMI_DH_ENTITY& auth_handle,
917                      const TPMI_SH_POLICY& policy_session,
918                      const TPM2B_NONCE& nonce_tpm,
919                      const TPM2B_DIGEST& cp_hash_a,
920                      const TPM2B_NONCE& policy_ref,
921                      const INT32& expiration,
922                      TPM2B_TIMEOUT* timeout,
923                      TPMT_TK_AUTH* policy_ticket,
924                      AuthorizationDelegate* authorization_delegate));
925  MOCK_METHOD9(PolicyTicket,
926               void(const TPMI_SH_POLICY& policy_session,
927                    const std::string& policy_session_name,
928                    const TPM2B_TIMEOUT& timeout,
929                    const TPM2B_DIGEST& cp_hash_a,
930                    const TPM2B_NONCE& policy_ref,
931                    const TPM2B_NAME& auth_name,
932                    const TPMT_TK_AUTH& ticket,
933                    AuthorizationDelegate* authorization_delegate,
934                    const PolicyTicketResponse& callback));
935  MOCK_METHOD8(PolicyTicketSync,
936               TPM_RC(const TPMI_SH_POLICY& policy_session,
937                      const std::string& policy_session_name,
938                      const TPM2B_TIMEOUT& timeout,
939                      const TPM2B_DIGEST& cp_hash_a,
940                      const TPM2B_NONCE& policy_ref,
941                      const TPM2B_NAME& auth_name,
942                      const TPMT_TK_AUTH& ticket,
943                      AuthorizationDelegate* authorization_delegate));
944  MOCK_METHOD5(PolicyOR,
945               void(const TPMI_SH_POLICY& policy_session,
946                    const std::string& policy_session_name,
947                    const TPML_DIGEST& p_hash_list,
948                    AuthorizationDelegate* authorization_delegate,
949                    const PolicyORResponse& callback));
950  MOCK_METHOD4(PolicyORSync,
951               TPM_RC(const TPMI_SH_POLICY& policy_session,
952                      const std::string& policy_session_name,
953                      const TPML_DIGEST& p_hash_list,
954                      AuthorizationDelegate* authorization_delegate));
955  MOCK_METHOD6(PolicyPCR,
956               void(const TPMI_SH_POLICY& policy_session,
957                    const std::string& policy_session_name,
958                    const TPM2B_DIGEST& pcr_digest,
959                    const TPML_PCR_SELECTION& pcrs,
960                    AuthorizationDelegate* authorization_delegate,
961                    const PolicyPCRResponse& callback));
962  MOCK_METHOD5(PolicyPCRSync,
963               TPM_RC(const TPMI_SH_POLICY& policy_session,
964                      const std::string& policy_session_name,
965                      const TPM2B_DIGEST& pcr_digest,
966                      const TPML_PCR_SELECTION& pcrs,
967                      AuthorizationDelegate* authorization_delegate));
968  MOCK_METHOD5(PolicyLocality,
969               void(const TPMI_SH_POLICY& policy_session,
970                    const std::string& policy_session_name,
971                    const TPMA_LOCALITY& locality,
972                    AuthorizationDelegate* authorization_delegate,
973                    const PolicyLocalityResponse& callback));
974  MOCK_METHOD4(PolicyLocalitySync,
975               TPM_RC(const TPMI_SH_POLICY& policy_session,
976                      const std::string& policy_session_name,
977                      const TPMA_LOCALITY& locality,
978                      AuthorizationDelegate* authorization_delegate));
979  // Too many args to mock, forward to *Short version.
980  void PolicyNV(const TPMI_RH_NV_AUTH& auth_handle,
981                const std::string& auth_handle_name,
982                const TPMI_RH_NV_INDEX& nv_index,
983                const std::string& nv_index_name,
984                const TPMI_SH_POLICY& policy_session,
985                const std::string& policy_session_name,
986                const TPM2B_OPERAND& operand_b,
987                const UINT16& offset,
988                const TPM_EO& operation,
989                AuthorizationDelegate* authorization_delegate,
990                const PolicyNVResponse& callback) override;
991  MOCK_METHOD8(PolicyNVShort,
992               void(const TPMI_RH_NV_AUTH& auth_handle,
993                    const TPMI_RH_NV_INDEX& nv_index,
994                    const TPMI_SH_POLICY& policy_session,
995                    const TPM2B_OPERAND& operand_b,
996                    const UINT16& offset,
997                    const TPM_EO& operation,
998                    AuthorizationDelegate* authorization_delegate,
999                    const PolicyNVResponse& callback));
1000  MOCK_METHOD10(PolicyNVSync,
1001                TPM_RC(const TPMI_RH_NV_AUTH& auth_handle,
1002                       const std::string& auth_handle_name,
1003                       const TPMI_RH_NV_INDEX& nv_index,
1004                       const std::string& nv_index_name,
1005                       const TPMI_SH_POLICY& policy_session,
1006                       const std::string& policy_session_name,
1007                       const TPM2B_OPERAND& operand_b,
1008                       const UINT16& offset,
1009                       const TPM_EO& operation,
1010                       AuthorizationDelegate* authorization_delegate));
1011  MOCK_METHOD7(PolicyCounterTimer,
1012               void(const TPMI_SH_POLICY& policy_session,
1013                    const std::string& policy_session_name,
1014                    const TPM2B_OPERAND& operand_b,
1015                    const UINT16& offset,
1016                    const TPM_EO& operation,
1017                    AuthorizationDelegate* authorization_delegate,
1018                    const PolicyCounterTimerResponse& callback));
1019  MOCK_METHOD6(PolicyCounterTimerSync,
1020               TPM_RC(const TPMI_SH_POLICY& policy_session,
1021                      const std::string& policy_session_name,
1022                      const TPM2B_OPERAND& operand_b,
1023                      const UINT16& offset,
1024                      const TPM_EO& operation,
1025                      AuthorizationDelegate* authorization_delegate));
1026  MOCK_METHOD5(PolicyCommandCode,
1027               void(const TPMI_SH_POLICY& policy_session,
1028                    const std::string& policy_session_name,
1029                    const TPM_CC& code,
1030                    AuthorizationDelegate* authorization_delegate,
1031                    const PolicyCommandCodeResponse& callback));
1032  MOCK_METHOD4(PolicyCommandCodeSync,
1033               TPM_RC(const TPMI_SH_POLICY& policy_session,
1034                      const std::string& policy_session_name,
1035                      const TPM_CC& code,
1036                      AuthorizationDelegate* authorization_delegate));
1037  MOCK_METHOD4(PolicyPhysicalPresence,
1038               void(const TPMI_SH_POLICY& policy_session,
1039                    const std::string& policy_session_name,
1040                    AuthorizationDelegate* authorization_delegate,
1041                    const PolicyPhysicalPresenceResponse& callback));
1042  MOCK_METHOD3(PolicyPhysicalPresenceSync,
1043               TPM_RC(const TPMI_SH_POLICY& policy_session,
1044                      const std::string& policy_session_name,
1045                      AuthorizationDelegate* authorization_delegate));
1046  MOCK_METHOD5(PolicyCpHash,
1047               void(const TPMI_SH_POLICY& policy_session,
1048                    const std::string& policy_session_name,
1049                    const TPM2B_DIGEST& cp_hash_a,
1050                    AuthorizationDelegate* authorization_delegate,
1051                    const PolicyCpHashResponse& callback));
1052  MOCK_METHOD4(PolicyCpHashSync,
1053               TPM_RC(const TPMI_SH_POLICY& policy_session,
1054                      const std::string& policy_session_name,
1055                      const TPM2B_DIGEST& cp_hash_a,
1056                      AuthorizationDelegate* authorization_delegate));
1057  MOCK_METHOD5(PolicyNameHash,
1058               void(const TPMI_SH_POLICY& policy_session,
1059                    const std::string& policy_session_name,
1060                    const TPM2B_DIGEST& name_hash,
1061                    AuthorizationDelegate* authorization_delegate,
1062                    const PolicyNameHashResponse& callback));
1063  MOCK_METHOD4(PolicyNameHashSync,
1064               TPM_RC(const TPMI_SH_POLICY& policy_session,
1065                      const std::string& policy_session_name,
1066                      const TPM2B_DIGEST& name_hash,
1067                      AuthorizationDelegate* authorization_delegate));
1068  MOCK_METHOD7(PolicyDuplicationSelect,
1069               void(const TPMI_SH_POLICY& policy_session,
1070                    const std::string& policy_session_name,
1071                    const TPM2B_NAME& object_name,
1072                    const TPM2B_NAME& new_parent_name,
1073                    const TPMI_YES_NO& include_object,
1074                    AuthorizationDelegate* authorization_delegate,
1075                    const PolicyDuplicationSelectResponse& callback));
1076  MOCK_METHOD6(PolicyDuplicationSelectSync,
1077               TPM_RC(const TPMI_SH_POLICY& policy_session,
1078                      const std::string& policy_session_name,
1079                      const TPM2B_NAME& object_name,
1080                      const TPM2B_NAME& new_parent_name,
1081                      const TPMI_YES_NO& include_object,
1082                      AuthorizationDelegate* authorization_delegate));
1083  MOCK_METHOD8(PolicyAuthorize,
1084               void(const TPMI_SH_POLICY& policy_session,
1085                    const std::string& policy_session_name,
1086                    const TPM2B_DIGEST& approved_policy,
1087                    const TPM2B_NONCE& policy_ref,
1088                    const TPM2B_NAME& key_sign,
1089                    const TPMT_TK_VERIFIED& check_ticket,
1090                    AuthorizationDelegate* authorization_delegate,
1091                    const PolicyAuthorizeResponse& callback));
1092  MOCK_METHOD7(PolicyAuthorizeSync,
1093               TPM_RC(const TPMI_SH_POLICY& policy_session,
1094                      const std::string& policy_session_name,
1095                      const TPM2B_DIGEST& approved_policy,
1096                      const TPM2B_NONCE& policy_ref,
1097                      const TPM2B_NAME& key_sign,
1098                      const TPMT_TK_VERIFIED& check_ticket,
1099                      AuthorizationDelegate* authorization_delegate));
1100  MOCK_METHOD4(PolicyAuthValue,
1101               void(const TPMI_SH_POLICY& policy_session,
1102                    const std::string& policy_session_name,
1103                    AuthorizationDelegate* authorization_delegate,
1104                    const PolicyAuthValueResponse& callback));
1105  MOCK_METHOD3(PolicyAuthValueSync,
1106               TPM_RC(const TPMI_SH_POLICY& policy_session,
1107                      const std::string& policy_session_name,
1108                      AuthorizationDelegate* authorization_delegate));
1109  MOCK_METHOD4(PolicyPassword,
1110               void(const TPMI_SH_POLICY& policy_session,
1111                    const std::string& policy_session_name,
1112                    AuthorizationDelegate* authorization_delegate,
1113                    const PolicyPasswordResponse& callback));
1114  MOCK_METHOD3(PolicyPasswordSync,
1115               TPM_RC(const TPMI_SH_POLICY& policy_session,
1116                      const std::string& policy_session_name,
1117                      AuthorizationDelegate* authorization_delegate));
1118  MOCK_METHOD4(PolicyGetDigest,
1119               void(const TPMI_SH_POLICY& policy_session,
1120                    const std::string& policy_session_name,
1121                    AuthorizationDelegate* authorization_delegate,
1122                    const PolicyGetDigestResponse& callback));
1123  MOCK_METHOD4(PolicyGetDigestSync,
1124               TPM_RC(const TPMI_SH_POLICY& policy_session,
1125                      const std::string& policy_session_name,
1126                      TPM2B_DIGEST* policy_digest,
1127                      AuthorizationDelegate* authorization_delegate));
1128  MOCK_METHOD5(PolicyNvWritten,
1129               void(const TPMI_SH_POLICY& policy_session,
1130                    const std::string& policy_session_name,
1131                    const TPMI_YES_NO& written_set,
1132                    AuthorizationDelegate* authorization_delegate,
1133                    const PolicyNvWrittenResponse& callback));
1134  MOCK_METHOD4(PolicyNvWrittenSync,
1135               TPM_RC(const TPMI_SH_POLICY& policy_session,
1136                      const std::string& policy_session_name,
1137                      const TPMI_YES_NO& written_set,
1138                      AuthorizationDelegate* authorization_delegate));
1139  MOCK_METHOD8(CreatePrimary,
1140               void(const TPMI_RH_HIERARCHY& primary_handle,
1141                    const std::string& primary_handle_name,
1142                    const TPM2B_SENSITIVE_CREATE& in_sensitive,
1143                    const TPM2B_PUBLIC& in_public,
1144                    const TPM2B_DATA& outside_info,
1145                    const TPML_PCR_SELECTION& creation_pcr,
1146                    AuthorizationDelegate* authorization_delegate,
1147                    const CreatePrimaryResponse& callback));
1148  // Too many args to mock, forward to *Short version.
1149  TPM_RC CreatePrimarySync(
1150      const TPMI_RH_HIERARCHY& primary_handle,
1151      const std::string& primary_handle_name,
1152      const TPM2B_SENSITIVE_CREATE& in_sensitive,
1153      const TPM2B_PUBLIC& in_public,
1154      const TPM2B_DATA& outside_info,
1155      const TPML_PCR_SELECTION& creation_pcr,
1156      TPM_HANDLE* object_handle,
1157      TPM2B_PUBLIC* out_public,
1158      TPM2B_CREATION_DATA* creation_data,
1159      TPM2B_DIGEST* creation_hash,
1160      TPMT_TK_CREATION* creation_ticket,
1161      TPM2B_NAME* name,
1162      AuthorizationDelegate* authorization_delegate) override;
1163  MOCK_METHOD10(CreatePrimarySyncShort,
1164                TPM_RC(const TPMI_RH_HIERARCHY& primary_handle,
1165                       const TPM2B_PUBLIC& in_public,
1166                       const TPML_PCR_SELECTION& creation_pcr,
1167                       TPM_HANDLE* object_handle,
1168                       TPM2B_PUBLIC* out_public,
1169                       TPM2B_CREATION_DATA* creation_data,
1170                       TPM2B_DIGEST* creation_hash,
1171                       TPMT_TK_CREATION* creation_ticket,
1172                       TPM2B_NAME* name,
1173                       AuthorizationDelegate* authorization_delegate));
1174  MOCK_METHOD6(HierarchyControl,
1175               void(const TPMI_RH_HIERARCHY& auth_handle,
1176                    const std::string& auth_handle_name,
1177                    const TPMI_RH_ENABLES& enable,
1178                    const TPMI_YES_NO& state,
1179                    AuthorizationDelegate* authorization_delegate,
1180                    const HierarchyControlResponse& callback));
1181  MOCK_METHOD5(HierarchyControlSync,
1182               TPM_RC(const TPMI_RH_HIERARCHY& auth_handle,
1183                      const std::string& auth_handle_name,
1184                      const TPMI_RH_ENABLES& enable,
1185                      const TPMI_YES_NO& state,
1186                      AuthorizationDelegate* authorization_delegate));
1187  MOCK_METHOD6(SetPrimaryPolicy,
1188               void(const TPMI_RH_HIERARCHY& auth_handle,
1189                    const std::string& auth_handle_name,
1190                    const TPM2B_DIGEST& auth_policy,
1191                    const TPMI_ALG_HASH& hash_alg,
1192                    AuthorizationDelegate* authorization_delegate,
1193                    const SetPrimaryPolicyResponse& callback));
1194  MOCK_METHOD5(SetPrimaryPolicySync,
1195               TPM_RC(const TPMI_RH_HIERARCHY& auth_handle,
1196                      const std::string& auth_handle_name,
1197                      const TPM2B_DIGEST& auth_policy,
1198                      const TPMI_ALG_HASH& hash_alg,
1199                      AuthorizationDelegate* authorization_delegate));
1200  MOCK_METHOD4(ChangePPS,
1201               void(const TPMI_RH_PLATFORM& auth_handle,
1202                    const std::string& auth_handle_name,
1203                    AuthorizationDelegate* authorization_delegate,
1204                    const ChangePPSResponse& callback));
1205  MOCK_METHOD3(ChangePPSSync,
1206               TPM_RC(const TPMI_RH_PLATFORM& auth_handle,
1207                      const std::string& auth_handle_name,
1208                      AuthorizationDelegate* authorization_delegate));
1209  MOCK_METHOD4(ChangeEPS,
1210               void(const TPMI_RH_PLATFORM& auth_handle,
1211                    const std::string& auth_handle_name,
1212                    AuthorizationDelegate* authorization_delegate,
1213                    const ChangeEPSResponse& callback));
1214  MOCK_METHOD3(ChangeEPSSync,
1215               TPM_RC(const TPMI_RH_PLATFORM& auth_handle,
1216                      const std::string& auth_handle_name,
1217                      AuthorizationDelegate* authorization_delegate));
1218  MOCK_METHOD4(Clear,
1219               void(const TPMI_RH_CLEAR& auth_handle,
1220                    const std::string& auth_handle_name,
1221                    AuthorizationDelegate* authorization_delegate,
1222                    const ClearResponse& callback));
1223  MOCK_METHOD3(ClearSync,
1224               TPM_RC(const TPMI_RH_CLEAR& auth_handle,
1225                      const std::string& auth_handle_name,
1226                      AuthorizationDelegate* authorization_delegate));
1227  MOCK_METHOD5(ClearControl,
1228               void(const TPMI_RH_CLEAR& auth,
1229                    const std::string& auth_name,
1230                    const TPMI_YES_NO& disable,
1231                    AuthorizationDelegate* authorization_delegate,
1232                    const ClearControlResponse& callback));
1233  MOCK_METHOD4(ClearControlSync,
1234               TPM_RC(const TPMI_RH_CLEAR& auth,
1235                      const std::string& auth_name,
1236                      const TPMI_YES_NO& disable,
1237                      AuthorizationDelegate* authorization_delegate));
1238  MOCK_METHOD5(HierarchyChangeAuth,
1239               void(const TPMI_RH_HIERARCHY_AUTH& auth_handle,
1240                    const std::string& auth_handle_name,
1241                    const TPM2B_AUTH& new_auth,
1242                    AuthorizationDelegate* authorization_delegate,
1243                    const HierarchyChangeAuthResponse& callback));
1244  MOCK_METHOD4(HierarchyChangeAuthSync,
1245               TPM_RC(const TPMI_RH_HIERARCHY_AUTH& auth_handle,
1246                      const std::string& auth_handle_name,
1247                      const TPM2B_AUTH& new_auth,
1248                      AuthorizationDelegate* authorization_delegate));
1249  MOCK_METHOD4(DictionaryAttackLockReset,
1250               void(const TPMI_RH_LOCKOUT& lock_handle,
1251                    const std::string& lock_handle_name,
1252                    AuthorizationDelegate* authorization_delegate,
1253                    const DictionaryAttackLockResetResponse& callback));
1254  MOCK_METHOD3(DictionaryAttackLockResetSync,
1255               TPM_RC(const TPMI_RH_LOCKOUT& lock_handle,
1256                      const std::string& lock_handle_name,
1257                      AuthorizationDelegate* authorization_delegate));
1258  MOCK_METHOD7(DictionaryAttackParameters,
1259               void(const TPMI_RH_LOCKOUT& lock_handle,
1260                    const std::string& lock_handle_name,
1261                    const UINT32& new_max_tries,
1262                    const UINT32& new_recovery_time,
1263                    const UINT32& lockout_recovery,
1264                    AuthorizationDelegate* authorization_delegate,
1265                    const DictionaryAttackParametersResponse& callback));
1266  MOCK_METHOD6(DictionaryAttackParametersSync,
1267               TPM_RC(const TPMI_RH_LOCKOUT& lock_handle,
1268                      const std::string& lock_handle_name,
1269                      const UINT32& new_max_tries,
1270                      const UINT32& new_recovery_time,
1271                      const UINT32& lockout_recovery,
1272                      AuthorizationDelegate* authorization_delegate));
1273  MOCK_METHOD6(PP_Commands,
1274               void(const TPMI_RH_PLATFORM& auth,
1275                    const std::string& auth_name,
1276                    const TPML_CC& set_list,
1277                    const TPML_CC& clear_list,
1278                    AuthorizationDelegate* authorization_delegate,
1279                    const PP_CommandsResponse& callback));
1280  MOCK_METHOD5(PP_CommandsSync,
1281               TPM_RC(const TPMI_RH_PLATFORM& auth,
1282                      const std::string& auth_name,
1283                      const TPML_CC& set_list,
1284                      const TPML_CC& clear_list,
1285                      AuthorizationDelegate* authorization_delegate));
1286  MOCK_METHOD5(SetAlgorithmSet,
1287               void(const TPMI_RH_PLATFORM& auth_handle,
1288                    const std::string& auth_handle_name,
1289                    const UINT32& algorithm_set,
1290                    AuthorizationDelegate* authorization_delegate,
1291                    const SetAlgorithmSetResponse& callback));
1292  MOCK_METHOD4(SetAlgorithmSetSync,
1293               TPM_RC(const TPMI_RH_PLATFORM& auth_handle,
1294                      const std::string& auth_handle_name,
1295                      const UINT32& algorithm_set,
1296                      AuthorizationDelegate* authorization_delegate));
1297  MOCK_METHOD8(FieldUpgradeStart,
1298               void(const TPMI_RH_PLATFORM& authorization,
1299                    const std::string& authorization_name,
1300                    const TPMI_DH_OBJECT& key_handle,
1301                    const std::string& key_handle_name,
1302                    const TPM2B_DIGEST& fu_digest,
1303                    const TPMT_SIGNATURE& manifest_signature,
1304                    AuthorizationDelegate* authorization_delegate,
1305                    const FieldUpgradeStartResponse& callback));
1306  MOCK_METHOD7(FieldUpgradeStartSync,
1307               TPM_RC(const TPMI_RH_PLATFORM& authorization,
1308                      const std::string& authorization_name,
1309                      const TPMI_DH_OBJECT& key_handle,
1310                      const std::string& key_handle_name,
1311                      const TPM2B_DIGEST& fu_digest,
1312                      const TPMT_SIGNATURE& manifest_signature,
1313                      AuthorizationDelegate* authorization_delegate));
1314  MOCK_METHOD3(FieldUpgradeData,
1315               void(const TPM2B_MAX_BUFFER& fu_data,
1316                    AuthorizationDelegate* authorization_delegate,
1317                    const FieldUpgradeDataResponse& callback));
1318  MOCK_METHOD4(FieldUpgradeDataSync,
1319               TPM_RC(const TPM2B_MAX_BUFFER& fu_data,
1320                      TPMT_HA* next_digest,
1321                      TPMT_HA* first_digest,
1322                      AuthorizationDelegate* authorization_delegate));
1323  MOCK_METHOD3(FirmwareRead,
1324               void(const UINT32& sequence_number,
1325                    AuthorizationDelegate* authorization_delegate,
1326                    const FirmwareReadResponse& callback));
1327  MOCK_METHOD3(FirmwareReadSync,
1328               TPM_RC(const UINT32& sequence_number,
1329                      TPM2B_MAX_BUFFER* fu_data,
1330                      AuthorizationDelegate* authorization_delegate));
1331  MOCK_METHOD4(ContextSave,
1332               void(const TPMI_DH_CONTEXT& save_handle,
1333                    const std::string& save_handle_name,
1334                    AuthorizationDelegate* authorization_delegate,
1335                    const ContextSaveResponse& callback));
1336  MOCK_METHOD4(ContextSaveSync,
1337               TPM_RC(const TPMI_DH_CONTEXT& save_handle,
1338                      const std::string& save_handle_name,
1339                      TPMS_CONTEXT* context,
1340                      AuthorizationDelegate* authorization_delegate));
1341  MOCK_METHOD3(ContextLoad,
1342               void(const TPMS_CONTEXT& context,
1343                    AuthorizationDelegate* authorization_delegate,
1344                    const ContextLoadResponse& callback));
1345  MOCK_METHOD3(ContextLoadSync,
1346               TPM_RC(const TPMS_CONTEXT& context,
1347                      TPMI_DH_CONTEXT* loaded_handle,
1348                      AuthorizationDelegate* authorization_delegate));
1349  MOCK_METHOD3(FlushContext,
1350               void(const TPMI_DH_CONTEXT& flush_handle,
1351                    AuthorizationDelegate* authorization_delegate,
1352                    const FlushContextResponse& callback));
1353  MOCK_METHOD2(FlushContextSync,
1354               TPM_RC(const TPMI_DH_CONTEXT& flush_handle,
1355                      AuthorizationDelegate* authorization_delegate));
1356  MOCK_METHOD7(EvictControl,
1357               void(const TPMI_RH_PROVISION& auth,
1358                    const std::string& auth_name,
1359                    const TPMI_DH_OBJECT& object_handle,
1360                    const std::string& object_handle_name,
1361                    const TPMI_DH_PERSISTENT& persistent_handle,
1362                    AuthorizationDelegate* authorization_delegate,
1363                    const EvictControlResponse& callback));
1364  MOCK_METHOD6(EvictControlSync,
1365               TPM_RC(const TPMI_RH_PROVISION& auth,
1366                      const std::string& auth_name,
1367                      const TPMI_DH_OBJECT& object_handle,
1368                      const std::string& object_handle_name,
1369                      const TPMI_DH_PERSISTENT& persistent_handle,
1370                      AuthorizationDelegate* authorization_delegate));
1371  MOCK_METHOD2(ReadClock,
1372               void(AuthorizationDelegate* authorization_delegate,
1373                    const ReadClockResponse& callback));
1374  MOCK_METHOD2(ReadClockSync,
1375               TPM_RC(TPMS_TIME_INFO* current_time,
1376                      AuthorizationDelegate* authorization_delegate));
1377  MOCK_METHOD5(ClockSet,
1378               void(const TPMI_RH_PROVISION& auth,
1379                    const std::string& auth_name,
1380                    const UINT64& new_time,
1381                    AuthorizationDelegate* authorization_delegate,
1382                    const ClockSetResponse& callback));
1383  MOCK_METHOD4(ClockSetSync,
1384               TPM_RC(const TPMI_RH_PROVISION& auth,
1385                      const std::string& auth_name,
1386                      const UINT64& new_time,
1387                      AuthorizationDelegate* authorization_delegate));
1388  MOCK_METHOD5(ClockRateAdjust,
1389               void(const TPMI_RH_PROVISION& auth,
1390                    const std::string& auth_name,
1391                    const TPM_CLOCK_ADJUST& rate_adjust,
1392                    AuthorizationDelegate* authorization_delegate,
1393                    const ClockRateAdjustResponse& callback));
1394  MOCK_METHOD4(ClockRateAdjustSync,
1395               TPM_RC(const TPMI_RH_PROVISION& auth,
1396                      const std::string& auth_name,
1397                      const TPM_CLOCK_ADJUST& rate_adjust,
1398                      AuthorizationDelegate* authorization_delegate));
1399  MOCK_METHOD5(GetCapability,
1400               void(const TPM_CAP& capability,
1401                    const UINT32& property,
1402                    const UINT32& property_count,
1403                    AuthorizationDelegate* authorization_delegate,
1404                    const GetCapabilityResponse& callback));
1405  MOCK_METHOD6(GetCapabilitySync,
1406               TPM_RC(const TPM_CAP& capability,
1407                      const UINT32& property,
1408                      const UINT32& property_count,
1409                      TPMI_YES_NO* more_data,
1410                      TPMS_CAPABILITY_DATA* capability_data,
1411                      AuthorizationDelegate* authorization_delegate));
1412  MOCK_METHOD3(TestParms,
1413               void(const TPMT_PUBLIC_PARMS& parameters,
1414                    AuthorizationDelegate* authorization_delegate,
1415                    const TestParmsResponse& callback));
1416  MOCK_METHOD2(TestParmsSync,
1417               TPM_RC(const TPMT_PUBLIC_PARMS& parameters,
1418                      AuthorizationDelegate* authorization_delegate));
1419  MOCK_METHOD6(NV_DefineSpace,
1420               void(const TPMI_RH_PROVISION& auth_handle,
1421                    const std::string& auth_handle_name,
1422                    const TPM2B_AUTH& auth,
1423                    const TPM2B_NV_PUBLIC& public_info,
1424                    AuthorizationDelegate* authorization_delegate,
1425                    const NV_DefineSpaceResponse& callback));
1426  MOCK_METHOD5(NV_DefineSpaceSync,
1427               TPM_RC(const TPMI_RH_PROVISION& auth_handle,
1428                      const std::string& auth_handle_name,
1429                      const TPM2B_AUTH& auth,
1430                      const TPM2B_NV_PUBLIC& public_info,
1431                      AuthorizationDelegate* authorization_delegate));
1432  MOCK_METHOD6(NV_UndefineSpace,
1433               void(const TPMI_RH_PROVISION& auth_handle,
1434                    const std::string& auth_handle_name,
1435                    const TPMI_RH_NV_INDEX& nv_index,
1436                    const std::string& nv_index_name,
1437                    AuthorizationDelegate* authorization_delegate,
1438                    const NV_UndefineSpaceResponse& callback));
1439  MOCK_METHOD5(NV_UndefineSpaceSync,
1440               TPM_RC(const TPMI_RH_PROVISION& auth_handle,
1441                      const std::string& auth_handle_name,
1442                      const TPMI_RH_NV_INDEX& nv_index,
1443                      const std::string& nv_index_name,
1444                      AuthorizationDelegate* authorization_delegate));
1445  MOCK_METHOD6(NV_UndefineSpaceSpecial,
1446               void(const TPMI_RH_NV_INDEX& nv_index,
1447                    const std::string& nv_index_name,
1448                    const TPMI_RH_PLATFORM& platform,
1449                    const std::string& platform_name,
1450                    AuthorizationDelegate* authorization_delegate,
1451                    const NV_UndefineSpaceSpecialResponse& callback));
1452  MOCK_METHOD5(NV_UndefineSpaceSpecialSync,
1453               TPM_RC(const TPMI_RH_NV_INDEX& nv_index,
1454                      const std::string& nv_index_name,
1455                      const TPMI_RH_PLATFORM& platform,
1456                      const std::string& platform_name,
1457                      AuthorizationDelegate* authorization_delegate));
1458  MOCK_METHOD4(NV_ReadPublic,
1459               void(const TPMI_RH_NV_INDEX& nv_index,
1460                    const std::string& nv_index_name,
1461                    AuthorizationDelegate* authorization_delegate,
1462                    const NV_ReadPublicResponse& callback));
1463  MOCK_METHOD5(NV_ReadPublicSync,
1464               TPM_RC(const TPMI_RH_NV_INDEX& nv_index,
1465                      const std::string& nv_index_name,
1466                      TPM2B_NV_PUBLIC* nv_public,
1467                      TPM2B_NAME* nv_name,
1468                      AuthorizationDelegate* authorization_delegate));
1469  MOCK_METHOD8(NV_Write,
1470               void(const TPMI_RH_NV_AUTH& auth_handle,
1471                    const std::string& auth_handle_name,
1472                    const TPMI_RH_NV_INDEX& nv_index,
1473                    const std::string& nv_index_name,
1474                    const TPM2B_MAX_NV_BUFFER& data,
1475                    const UINT16& offset,
1476                    AuthorizationDelegate* authorization_delegate,
1477                    const NV_WriteResponse& callback));
1478  MOCK_METHOD7(NV_WriteSync,
1479               TPM_RC(const TPMI_RH_NV_AUTH& auth_handle,
1480                      const std::string& auth_handle_name,
1481                      const TPMI_RH_NV_INDEX& nv_index,
1482                      const std::string& nv_index_name,
1483                      const TPM2B_MAX_NV_BUFFER& data,
1484                      const UINT16& offset,
1485                      AuthorizationDelegate* authorization_delegate));
1486  MOCK_METHOD6(NV_Increment,
1487               void(const TPMI_RH_NV_AUTH& auth_handle,
1488                    const std::string& auth_handle_name,
1489                    const TPMI_RH_NV_INDEX& nv_index,
1490                    const std::string& nv_index_name,
1491                    AuthorizationDelegate* authorization_delegate,
1492                    const NV_IncrementResponse& callback));
1493  MOCK_METHOD5(NV_IncrementSync,
1494               TPM_RC(const TPMI_RH_NV_AUTH& auth_handle,
1495                      const std::string& auth_handle_name,
1496                      const TPMI_RH_NV_INDEX& nv_index,
1497                      const std::string& nv_index_name,
1498                      AuthorizationDelegate* authorization_delegate));
1499  MOCK_METHOD7(NV_Extend,
1500               void(const TPMI_RH_NV_AUTH& auth_handle,
1501                    const std::string& auth_handle_name,
1502                    const TPMI_RH_NV_INDEX& nv_index,
1503                    const std::string& nv_index_name,
1504                    const TPM2B_MAX_NV_BUFFER& data,
1505                    AuthorizationDelegate* authorization_delegate,
1506                    const NV_ExtendResponse& callback));
1507  MOCK_METHOD6(NV_ExtendSync,
1508               TPM_RC(const TPMI_RH_NV_AUTH& auth_handle,
1509                      const std::string& auth_handle_name,
1510                      const TPMI_RH_NV_INDEX& nv_index,
1511                      const std::string& nv_index_name,
1512                      const TPM2B_MAX_NV_BUFFER& data,
1513                      AuthorizationDelegate* authorization_delegate));
1514  MOCK_METHOD7(NV_SetBits,
1515               void(const TPMI_RH_NV_AUTH& auth_handle,
1516                    const std::string& auth_handle_name,
1517                    const TPMI_RH_NV_INDEX& nv_index,
1518                    const std::string& nv_index_name,
1519                    const UINT64& bits,
1520                    AuthorizationDelegate* authorization_delegate,
1521                    const NV_SetBitsResponse& callback));
1522  MOCK_METHOD6(NV_SetBitsSync,
1523               TPM_RC(const TPMI_RH_NV_AUTH& auth_handle,
1524                      const std::string& auth_handle_name,
1525                      const TPMI_RH_NV_INDEX& nv_index,
1526                      const std::string& nv_index_name,
1527                      const UINT64& bits,
1528                      AuthorizationDelegate* authorization_delegate));
1529  MOCK_METHOD6(NV_WriteLock,
1530               void(const TPMI_RH_NV_AUTH& auth_handle,
1531                    const std::string& auth_handle_name,
1532                    const TPMI_RH_NV_INDEX& nv_index,
1533                    const std::string& nv_index_name,
1534                    AuthorizationDelegate* authorization_delegate,
1535                    const NV_WriteLockResponse& callback));
1536  MOCK_METHOD5(NV_WriteLockSync,
1537               TPM_RC(const TPMI_RH_NV_AUTH& auth_handle,
1538                      const std::string& auth_handle_name,
1539                      const TPMI_RH_NV_INDEX& nv_index,
1540                      const std::string& nv_index_name,
1541                      AuthorizationDelegate* authorization_delegate));
1542  MOCK_METHOD4(NV_GlobalWriteLock,
1543               void(const TPMI_RH_PROVISION& auth_handle,
1544                    const std::string& auth_handle_name,
1545                    AuthorizationDelegate* authorization_delegate,
1546                    const NV_GlobalWriteLockResponse& callback));
1547  MOCK_METHOD3(NV_GlobalWriteLockSync,
1548               TPM_RC(const TPMI_RH_PROVISION& auth_handle,
1549                      const std::string& auth_handle_name,
1550                      AuthorizationDelegate* authorization_delegate));
1551  MOCK_METHOD8(NV_Read,
1552               void(const TPMI_RH_NV_AUTH& auth_handle,
1553                    const std::string& auth_handle_name,
1554                    const TPMI_RH_NV_INDEX& nv_index,
1555                    const std::string& nv_index_name,
1556                    const UINT16& size,
1557                    const UINT16& offset,
1558                    AuthorizationDelegate* authorization_delegate,
1559                    const NV_ReadResponse& callback));
1560  MOCK_METHOD8(NV_ReadSync,
1561               TPM_RC(const TPMI_RH_NV_AUTH& auth_handle,
1562                      const std::string& auth_handle_name,
1563                      const TPMI_RH_NV_INDEX& nv_index,
1564                      const std::string& nv_index_name,
1565                      const UINT16& size,
1566                      const UINT16& offset,
1567                      TPM2B_MAX_NV_BUFFER* data,
1568                      AuthorizationDelegate* authorization_delegate));
1569  MOCK_METHOD6(NV_ReadLock,
1570               void(const TPMI_RH_NV_AUTH& auth_handle,
1571                    const std::string& auth_handle_name,
1572                    const TPMI_RH_NV_INDEX& nv_index,
1573                    const std::string& nv_index_name,
1574                    AuthorizationDelegate* authorization_delegate,
1575                    const NV_ReadLockResponse& callback));
1576  MOCK_METHOD5(NV_ReadLockSync,
1577               TPM_RC(const TPMI_RH_NV_AUTH& auth_handle,
1578                      const std::string& auth_handle_name,
1579                      const TPMI_RH_NV_INDEX& nv_index,
1580                      const std::string& nv_index_name,
1581                      AuthorizationDelegate* authorization_delegate));
1582  MOCK_METHOD5(NV_ChangeAuth,
1583               void(const TPMI_RH_NV_INDEX& nv_index,
1584                    const std::string& nv_index_name,
1585                    const TPM2B_AUTH& new_auth,
1586                    AuthorizationDelegate* authorization_delegate,
1587                    const NV_ChangeAuthResponse& callback));
1588  MOCK_METHOD4(NV_ChangeAuthSync,
1589               TPM_RC(const TPMI_RH_NV_INDEX& nv_index,
1590                      const std::string& nv_index_name,
1591                      const TPM2B_AUTH& new_auth,
1592                      AuthorizationDelegate* authorization_delegate));
1593  // Too many args to mock, forward to *Short version.
1594  void NV_Certify(const TPMI_DH_OBJECT& sign_handle,
1595                  const std::string& sign_handle_name,
1596                  const TPMI_RH_NV_AUTH& auth_handle,
1597                  const std::string& auth_handle_name,
1598                  const TPMI_RH_NV_INDEX& nv_index,
1599                  const std::string& nv_index_name,
1600                  const TPM2B_DATA& qualifying_data,
1601                  const TPMT_SIG_SCHEME& in_scheme,
1602                  const UINT16& size,
1603                  const UINT16& offset,
1604                  AuthorizationDelegate* authorization_delegate,
1605                  const NV_CertifyResponse& callback) override;
1606  MOCK_METHOD9(NV_CertifyShort,
1607               void(const TPMI_DH_OBJECT& sign_handle,
1608                    const TPMI_RH_NV_AUTH& auth_handle,
1609                    const TPMI_RH_NV_INDEX& nv_index,
1610                    const TPM2B_DATA& qualifying_data,
1611                    const TPMT_SIG_SCHEME& in_scheme,
1612                    const UINT16& size,
1613                    const UINT16& offset,
1614                    AuthorizationDelegate* authorization_delegate,
1615                    const NV_CertifyResponse& callback));
1616  // Too many args to mock, forward to *Short version.
1617  TPM_RC NV_CertifySync(const TPMI_DH_OBJECT& sign_handle,
1618                        const std::string& sign_handle_name,
1619                        const TPMI_RH_NV_AUTH& auth_handle,
1620                        const std::string& auth_handle_name,
1621                        const TPMI_RH_NV_INDEX& nv_index,
1622                        const std::string& nv_index_name,
1623                        const TPM2B_DATA& qualifying_data,
1624                        const TPMT_SIG_SCHEME& in_scheme,
1625                        const UINT16& size,
1626                        const UINT16& offset,
1627                        TPM2B_ATTEST* certify_info,
1628                        TPMT_SIGNATURE* signature,
1629                        AuthorizationDelegate* authorization_delegate) override;
1630  MOCK_METHOD10(NV_CertifySyncShort,
1631                TPM_RC(const TPMI_DH_OBJECT& sign_handle,
1632                       const TPMI_RH_NV_AUTH& auth_handle,
1633                       const TPMI_RH_NV_INDEX& nv_index,
1634                       const TPM2B_DATA& qualifying_data,
1635                       const TPMT_SIG_SCHEME& in_scheme,
1636                       const UINT16& size,
1637                       const UINT16& offset,
1638                       TPM2B_ATTEST* certify_info,
1639                       TPMT_SIGNATURE* signature,
1640                       AuthorizationDelegate* authorization_delegate));
1641};
1642
1643}  // namespace trunks
1644
1645#endif  // TRUNKS_MOCK_TPM_H_
1646