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 
27 namespace trunks {
28 
29 class 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(
846       const TPMI_DH_OBJECT& auth_object,
847       const std::string& auth_object_name,
848       const TPMI_SH_POLICY& policy_session,
849       const std::string& policy_session_name,
850       const TPM2B_NONCE& nonce_tpm,
851       const TPM2B_DIGEST& cp_hash_a,
852       const TPM2B_NONCE& policy_ref,
853       const INT32& expiration,
854       const TPMT_SIGNATURE& auth,
855       AuthorizationDelegate* authorization_delegate,
856       const PolicySignedResponse& callback) override;
857   MOCK_METHOD9(PolicySignedShort,
858       void(const TPMI_DH_OBJECT& auth_object,
859            const TPMI_SH_POLICY& policy_session,
860            const TPM2B_NONCE& nonce_tpm,
861            const TPM2B_DIGEST& cp_hash_a,
862            const TPM2B_NONCE& policy_ref,
863            const INT32& expiration,
864            const TPMT_SIGNATURE& auth,
865            AuthorizationDelegate* authorization_delegate,
866            const PolicySignedResponse& callback));
867   // Too many args to mock, forward to *Short version.
868   TPM_RC PolicySignedSync(
869       const TPMI_DH_OBJECT& auth_object,
870       const std::string& auth_object_name,
871       const TPMI_SH_POLICY& policy_session,
872       const std::string& policy_session_name,
873       const TPM2B_NONCE& nonce_tpm,
874       const TPM2B_DIGEST& cp_hash_a,
875       const TPM2B_NONCE& policy_ref,
876       const INT32& expiration,
877       const TPMT_SIGNATURE& auth,
878       TPM2B_TIMEOUT* timeout,
879       TPMT_TK_AUTH* policy_ticket,
880       AuthorizationDelegate* authorization_delegate) override;
881   MOCK_METHOD10(PolicySignedSyncShort,
882       TPM_RC(const TPMI_DH_OBJECT& auth_object,
883              const TPMI_SH_POLICY& policy_session,
884              const TPM2B_NONCE& nonce_tpm,
885              const TPM2B_DIGEST& cp_hash_a,
886              const TPM2B_NONCE& policy_ref,
887              const INT32& expiration,
888              const TPMT_SIGNATURE& auth,
889              TPM2B_TIMEOUT* timeout,
890              TPMT_TK_AUTH* policy_ticket,
891              AuthorizationDelegate* authorization_delegate));
892   MOCK_METHOD10(PolicySecret,
893       void(const TPMI_DH_ENTITY& auth_handle,
894            const std::string& auth_handle_name,
895            const TPMI_SH_POLICY& policy_session,
896            const std::string& policy_session_name,
897            const TPM2B_NONCE& nonce_tpm,
898            const TPM2B_DIGEST& cp_hash_a,
899            const TPM2B_NONCE& policy_ref,
900            const INT32& expiration,
901            AuthorizationDelegate* authorization_delegate,
902            const PolicySecretResponse& callback));
903   // Too many args to mock, forward to *Short version.
904   TPM_RC PolicySecretSync(
905       const TPMI_DH_ENTITY& auth_handle,
906       const std::string& auth_handle_name,
907       const TPMI_SH_POLICY& policy_session,
908       const std::string& policy_session_name,
909       const TPM2B_NONCE& nonce_tpm,
910       const TPM2B_DIGEST& cp_hash_a,
911       const TPM2B_NONCE& policy_ref,
912       const INT32& expiration,
913       TPM2B_TIMEOUT* timeout,
914       TPMT_TK_AUTH* policy_ticket,
915       AuthorizationDelegate* authorization_delegate) override;
916   MOCK_METHOD9(PolicySecretSyncShort,
917       TPM_RC(const TPMI_DH_ENTITY& auth_handle,
918              const TPMI_SH_POLICY& policy_session,
919              const TPM2B_NONCE& nonce_tpm,
920              const TPM2B_DIGEST& cp_hash_a,
921              const TPM2B_NONCE& policy_ref,
922              const INT32& expiration,
923              TPM2B_TIMEOUT* timeout,
924              TPMT_TK_AUTH* policy_ticket,
925              AuthorizationDelegate* authorization_delegate));
926   MOCK_METHOD9(PolicyTicket,
927       void(const TPMI_SH_POLICY& policy_session,
928            const std::string& policy_session_name,
929            const TPM2B_TIMEOUT& timeout,
930            const TPM2B_DIGEST& cp_hash_a,
931            const TPM2B_NONCE& policy_ref,
932            const TPM2B_NAME& auth_name,
933            const TPMT_TK_AUTH& ticket,
934            AuthorizationDelegate* authorization_delegate,
935            const PolicyTicketResponse& callback));
936   MOCK_METHOD8(PolicyTicketSync,
937       TPM_RC(const TPMI_SH_POLICY& policy_session,
938              const std::string& policy_session_name,
939              const TPM2B_TIMEOUT& timeout,
940              const TPM2B_DIGEST& cp_hash_a,
941              const TPM2B_NONCE& policy_ref,
942              const TPM2B_NAME& auth_name,
943              const TPMT_TK_AUTH& ticket,
944              AuthorizationDelegate* authorization_delegate));
945   MOCK_METHOD5(PolicyOR,
946       void(const TPMI_SH_POLICY& policy_session,
947            const std::string& policy_session_name,
948            const TPML_DIGEST& p_hash_list,
949            AuthorizationDelegate* authorization_delegate,
950            const PolicyORResponse& callback));
951   MOCK_METHOD4(PolicyORSync,
952       TPM_RC(const TPMI_SH_POLICY& policy_session,
953              const std::string& policy_session_name,
954              const TPML_DIGEST& p_hash_list,
955              AuthorizationDelegate* authorization_delegate));
956   MOCK_METHOD6(PolicyPCR,
957       void(const TPMI_SH_POLICY& policy_session,
958            const std::string& policy_session_name,
959            const TPM2B_DIGEST& pcr_digest,
960            const TPML_PCR_SELECTION& pcrs,
961            AuthorizationDelegate* authorization_delegate,
962            const PolicyPCRResponse& callback));
963   MOCK_METHOD5(PolicyPCRSync,
964       TPM_RC(const TPMI_SH_POLICY& policy_session,
965              const std::string& policy_session_name,
966              const TPM2B_DIGEST& pcr_digest,
967              const TPML_PCR_SELECTION& pcrs,
968              AuthorizationDelegate* authorization_delegate));
969   MOCK_METHOD5(PolicyLocality,
970       void(const TPMI_SH_POLICY& policy_session,
971            const std::string& policy_session_name,
972            const TPMA_LOCALITY& locality,
973            AuthorizationDelegate* authorization_delegate,
974            const PolicyLocalityResponse& callback));
975   MOCK_METHOD4(PolicyLocalitySync,
976       TPM_RC(const TPMI_SH_POLICY& policy_session,
977              const std::string& policy_session_name,
978              const TPMA_LOCALITY& locality,
979              AuthorizationDelegate* authorization_delegate));
980   // Too many args to mock, forward to *Short version.
981   void PolicyNV(const TPMI_RH_NV_AUTH& auth_handle,
982                 const std::string& auth_handle_name,
983                 const TPMI_RH_NV_INDEX& nv_index,
984                 const std::string& nv_index_name,
985                 const TPMI_SH_POLICY& policy_session,
986                 const std::string& policy_session_name,
987                 const TPM2B_OPERAND& operand_b,
988                 const UINT16& offset,
989                 const TPM_EO& operation,
990                 AuthorizationDelegate* authorization_delegate,
991                 const PolicyNVResponse& callback) override;
992   MOCK_METHOD8(PolicyNVShort,
993       void(const TPMI_RH_NV_AUTH& auth_handle,
994            const TPMI_RH_NV_INDEX& nv_index,
995            const TPMI_SH_POLICY& policy_session,
996            const TPM2B_OPERAND& operand_b,
997            const UINT16& offset,
998            const TPM_EO& operation,
999            AuthorizationDelegate* authorization_delegate,
1000            const PolicyNVResponse& callback));
1001   MOCK_METHOD10(PolicyNVSync,
1002       TPM_RC(const TPMI_RH_NV_AUTH& auth_handle,
1003              const std::string& auth_handle_name,
1004              const TPMI_RH_NV_INDEX& nv_index,
1005              const std::string& nv_index_name,
1006              const TPMI_SH_POLICY& policy_session,
1007              const std::string& policy_session_name,
1008              const TPM2B_OPERAND& operand_b,
1009              const UINT16& offset,
1010              const TPM_EO& operation,
1011              AuthorizationDelegate* authorization_delegate));
1012   MOCK_METHOD7(PolicyCounterTimer,
1013       void(const TPMI_SH_POLICY& policy_session,
1014            const std::string& policy_session_name,
1015            const TPM2B_OPERAND& operand_b,
1016            const UINT16& offset,
1017            const TPM_EO& operation,
1018            AuthorizationDelegate* authorization_delegate,
1019            const PolicyCounterTimerResponse& callback));
1020   MOCK_METHOD6(PolicyCounterTimerSync,
1021       TPM_RC(const TPMI_SH_POLICY& policy_session,
1022              const std::string& policy_session_name,
1023              const TPM2B_OPERAND& operand_b,
1024              const UINT16& offset,
1025              const TPM_EO& operation,
1026              AuthorizationDelegate* authorization_delegate));
1027   MOCK_METHOD5(PolicyCommandCode,
1028       void(const TPMI_SH_POLICY& policy_session,
1029            const std::string& policy_session_name,
1030            const TPM_CC& code,
1031            AuthorizationDelegate* authorization_delegate,
1032            const PolicyCommandCodeResponse& callback));
1033   MOCK_METHOD4(PolicyCommandCodeSync,
1034       TPM_RC(const TPMI_SH_POLICY& policy_session,
1035              const std::string& policy_session_name,
1036              const TPM_CC& code,
1037              AuthorizationDelegate* authorization_delegate));
1038   MOCK_METHOD4(PolicyPhysicalPresence,
1039       void(const TPMI_SH_POLICY& policy_session,
1040            const std::string& policy_session_name,
1041            AuthorizationDelegate* authorization_delegate,
1042            const PolicyPhysicalPresenceResponse& callback));
1043   MOCK_METHOD3(PolicyPhysicalPresenceSync,
1044       TPM_RC(const TPMI_SH_POLICY& policy_session,
1045              const std::string& policy_session_name,
1046              AuthorizationDelegate* authorization_delegate));
1047   MOCK_METHOD5(PolicyCpHash,
1048       void(const TPMI_SH_POLICY& policy_session,
1049            const std::string& policy_session_name,
1050            const TPM2B_DIGEST& cp_hash_a,
1051            AuthorizationDelegate* authorization_delegate,
1052            const PolicyCpHashResponse& callback));
1053   MOCK_METHOD4(PolicyCpHashSync,
1054       TPM_RC(const TPMI_SH_POLICY& policy_session,
1055              const std::string& policy_session_name,
1056              const TPM2B_DIGEST& cp_hash_a,
1057              AuthorizationDelegate* authorization_delegate));
1058   MOCK_METHOD5(PolicyNameHash,
1059       void(const TPMI_SH_POLICY& policy_session,
1060            const std::string& policy_session_name,
1061            const TPM2B_DIGEST& name_hash,
1062            AuthorizationDelegate* authorization_delegate,
1063            const PolicyNameHashResponse& callback));
1064   MOCK_METHOD4(PolicyNameHashSync,
1065       TPM_RC(const TPMI_SH_POLICY& policy_session,
1066              const std::string& policy_session_name,
1067              const TPM2B_DIGEST& name_hash,
1068              AuthorizationDelegate* authorization_delegate));
1069   MOCK_METHOD7(PolicyDuplicationSelect,
1070       void(const TPMI_SH_POLICY& policy_session,
1071            const std::string& policy_session_name,
1072            const TPM2B_NAME& object_name,
1073            const TPM2B_NAME& new_parent_name,
1074            const TPMI_YES_NO& include_object,
1075            AuthorizationDelegate* authorization_delegate,
1076            const PolicyDuplicationSelectResponse& callback));
1077   MOCK_METHOD6(PolicyDuplicationSelectSync,
1078       TPM_RC(const TPMI_SH_POLICY& policy_session,
1079              const std::string& policy_session_name,
1080              const TPM2B_NAME& object_name,
1081              const TPM2B_NAME& new_parent_name,
1082              const TPMI_YES_NO& include_object,
1083              AuthorizationDelegate* authorization_delegate));
1084   MOCK_METHOD8(PolicyAuthorize,
1085       void(const TPMI_SH_POLICY& policy_session,
1086            const std::string& policy_session_name,
1087            const TPM2B_DIGEST& approved_policy,
1088            const TPM2B_NONCE& policy_ref,
1089            const TPM2B_NAME& key_sign,
1090            const TPMT_TK_VERIFIED& check_ticket,
1091            AuthorizationDelegate* authorization_delegate,
1092            const PolicyAuthorizeResponse& callback));
1093   MOCK_METHOD7(PolicyAuthorizeSync,
1094       TPM_RC(const TPMI_SH_POLICY& policy_session,
1095              const std::string& policy_session_name,
1096              const TPM2B_DIGEST& approved_policy,
1097              const TPM2B_NONCE& policy_ref,
1098              const TPM2B_NAME& key_sign,
1099              const TPMT_TK_VERIFIED& check_ticket,
1100              AuthorizationDelegate* authorization_delegate));
1101   MOCK_METHOD4(PolicyAuthValue,
1102       void(const TPMI_SH_POLICY& policy_session,
1103            const std::string& policy_session_name,
1104            AuthorizationDelegate* authorization_delegate,
1105            const PolicyAuthValueResponse& callback));
1106   MOCK_METHOD3(PolicyAuthValueSync,
1107       TPM_RC(const TPMI_SH_POLICY& policy_session,
1108              const std::string& policy_session_name,
1109              AuthorizationDelegate* authorization_delegate));
1110   MOCK_METHOD4(PolicyPassword,
1111       void(const TPMI_SH_POLICY& policy_session,
1112            const std::string& policy_session_name,
1113            AuthorizationDelegate* authorization_delegate,
1114            const PolicyPasswordResponse& callback));
1115   MOCK_METHOD3(PolicyPasswordSync,
1116       TPM_RC(const TPMI_SH_POLICY& policy_session,
1117              const std::string& policy_session_name,
1118              AuthorizationDelegate* authorization_delegate));
1119   MOCK_METHOD4(PolicyGetDigest,
1120       void(const TPMI_SH_POLICY& policy_session,
1121            const std::string& policy_session_name,
1122            AuthorizationDelegate* authorization_delegate,
1123            const PolicyGetDigestResponse& callback));
1124   MOCK_METHOD4(PolicyGetDigestSync,
1125       TPM_RC(const TPMI_SH_POLICY& policy_session,
1126              const std::string& policy_session_name,
1127              TPM2B_DIGEST* policy_digest,
1128              AuthorizationDelegate* authorization_delegate));
1129   MOCK_METHOD5(PolicyNvWritten,
1130       void(const TPMI_SH_POLICY& policy_session,
1131            const std::string& policy_session_name,
1132            const TPMI_YES_NO& written_set,
1133            AuthorizationDelegate* authorization_delegate,
1134            const PolicyNvWrittenResponse& callback));
1135   MOCK_METHOD4(PolicyNvWrittenSync,
1136       TPM_RC(const TPMI_SH_POLICY& policy_session,
1137              const std::string& policy_session_name,
1138              const TPMI_YES_NO& written_set,
1139              AuthorizationDelegate* authorization_delegate));
1140   MOCK_METHOD8(CreatePrimary,
1141       void(const TPMI_RH_HIERARCHY& primary_handle,
1142            const std::string& primary_handle_name,
1143            const TPM2B_SENSITIVE_CREATE& in_sensitive,
1144            const TPM2B_PUBLIC& in_public,
1145            const TPM2B_DATA& outside_info,
1146            const TPML_PCR_SELECTION& creation_pcr,
1147            AuthorizationDelegate* authorization_delegate,
1148            const CreatePrimaryResponse& callback));
1149   // Too many args to mock, forward to *Short version.
1150   TPM_RC CreatePrimarySync(
1151       const TPMI_RH_HIERARCHY& primary_handle,
1152       const std::string& primary_handle_name,
1153       const TPM2B_SENSITIVE_CREATE& in_sensitive,
1154       const TPM2B_PUBLIC& in_public,
1155       const TPM2B_DATA& outside_info,
1156       const TPML_PCR_SELECTION& creation_pcr,
1157       TPM_HANDLE* object_handle,
1158       TPM2B_PUBLIC* out_public,
1159       TPM2B_CREATION_DATA* creation_data,
1160       TPM2B_DIGEST* creation_hash,
1161       TPMT_TK_CREATION* creation_ticket,
1162       TPM2B_NAME* name,
1163       AuthorizationDelegate* authorization_delegate) override;
1164   MOCK_METHOD10(CreatePrimarySyncShort,
1165       TPM_RC(const TPMI_RH_HIERARCHY& primary_handle,
1166              const TPM2B_PUBLIC& in_public,
1167              const TPML_PCR_SELECTION& creation_pcr,
1168              TPM_HANDLE* object_handle,
1169              TPM2B_PUBLIC* out_public,
1170              TPM2B_CREATION_DATA* creation_data,
1171              TPM2B_DIGEST* creation_hash,
1172              TPMT_TK_CREATION* creation_ticket,
1173              TPM2B_NAME* name,
1174              AuthorizationDelegate* authorization_delegate));
1175   MOCK_METHOD6(HierarchyControl,
1176       void(const TPMI_RH_HIERARCHY& auth_handle,
1177            const std::string& auth_handle_name,
1178            const TPMI_RH_ENABLES& enable,
1179            const TPMI_YES_NO& state,
1180            AuthorizationDelegate* authorization_delegate,
1181            const HierarchyControlResponse& callback));
1182   MOCK_METHOD5(HierarchyControlSync,
1183       TPM_RC(const TPMI_RH_HIERARCHY& auth_handle,
1184              const std::string& auth_handle_name,
1185              const TPMI_RH_ENABLES& enable,
1186              const TPMI_YES_NO& state,
1187              AuthorizationDelegate* authorization_delegate));
1188   MOCK_METHOD6(SetPrimaryPolicy,
1189       void(const TPMI_RH_HIERARCHY& auth_handle,
1190            const std::string& auth_handle_name,
1191            const TPM2B_DIGEST& auth_policy,
1192            const TPMI_ALG_HASH& hash_alg,
1193            AuthorizationDelegate* authorization_delegate,
1194            const SetPrimaryPolicyResponse& callback));
1195   MOCK_METHOD5(SetPrimaryPolicySync,
1196       TPM_RC(const TPMI_RH_HIERARCHY& auth_handle,
1197              const std::string& auth_handle_name,
1198              const TPM2B_DIGEST& auth_policy,
1199              const TPMI_ALG_HASH& hash_alg,
1200              AuthorizationDelegate* authorization_delegate));
1201   MOCK_METHOD4(ChangePPS,
1202       void(const TPMI_RH_PLATFORM& auth_handle,
1203            const std::string& auth_handle_name,
1204            AuthorizationDelegate* authorization_delegate,
1205            const ChangePPSResponse& callback));
1206   MOCK_METHOD3(ChangePPSSync,
1207       TPM_RC(const TPMI_RH_PLATFORM& auth_handle,
1208              const std::string& auth_handle_name,
1209              AuthorizationDelegate* authorization_delegate));
1210   MOCK_METHOD4(ChangeEPS,
1211       void(const TPMI_RH_PLATFORM& auth_handle,
1212            const std::string& auth_handle_name,
1213            AuthorizationDelegate* authorization_delegate,
1214            const ChangeEPSResponse& callback));
1215   MOCK_METHOD3(ChangeEPSSync,
1216       TPM_RC(const TPMI_RH_PLATFORM& auth_handle,
1217              const std::string& auth_handle_name,
1218              AuthorizationDelegate* authorization_delegate));
1219   MOCK_METHOD4(Clear,
1220       void(const TPMI_RH_CLEAR& auth_handle,
1221            const std::string& auth_handle_name,
1222            AuthorizationDelegate* authorization_delegate,
1223            const ClearResponse& callback));
1224   MOCK_METHOD3(ClearSync,
1225       TPM_RC(const TPMI_RH_CLEAR& auth_handle,
1226              const std::string& auth_handle_name,
1227              AuthorizationDelegate* authorization_delegate));
1228   MOCK_METHOD5(ClearControl,
1229       void(const TPMI_RH_CLEAR& auth,
1230            const std::string& auth_name,
1231            const TPMI_YES_NO& disable,
1232            AuthorizationDelegate* authorization_delegate,
1233            const ClearControlResponse& callback));
1234   MOCK_METHOD4(ClearControlSync,
1235       TPM_RC(const TPMI_RH_CLEAR& auth,
1236              const std::string& auth_name,
1237              const TPMI_YES_NO& disable,
1238              AuthorizationDelegate* authorization_delegate));
1239   MOCK_METHOD5(HierarchyChangeAuth,
1240       void(const TPMI_RH_HIERARCHY_AUTH& auth_handle,
1241            const std::string& auth_handle_name,
1242            const TPM2B_AUTH& new_auth,
1243            AuthorizationDelegate* authorization_delegate,
1244            const HierarchyChangeAuthResponse& callback));
1245   MOCK_METHOD4(HierarchyChangeAuthSync,
1246       TPM_RC(const TPMI_RH_HIERARCHY_AUTH& auth_handle,
1247              const std::string& auth_handle_name,
1248              const TPM2B_AUTH& new_auth,
1249              AuthorizationDelegate* authorization_delegate));
1250   MOCK_METHOD4(DictionaryAttackLockReset,
1251       void(const TPMI_RH_LOCKOUT& lock_handle,
1252            const std::string& lock_handle_name,
1253            AuthorizationDelegate* authorization_delegate,
1254            const DictionaryAttackLockResetResponse& callback));
1255   MOCK_METHOD3(DictionaryAttackLockResetSync,
1256       TPM_RC(const TPMI_RH_LOCKOUT& lock_handle,
1257              const std::string& lock_handle_name,
1258              AuthorizationDelegate* authorization_delegate));
1259   MOCK_METHOD7(DictionaryAttackParameters,
1260       void(const TPMI_RH_LOCKOUT& lock_handle,
1261            const std::string& lock_handle_name,
1262            const UINT32& new_max_tries,
1263            const UINT32& new_recovery_time,
1264            const UINT32& lockout_recovery,
1265            AuthorizationDelegate* authorization_delegate,
1266            const DictionaryAttackParametersResponse& callback));
1267   MOCK_METHOD6(DictionaryAttackParametersSync,
1268       TPM_RC(const TPMI_RH_LOCKOUT& lock_handle,
1269              const std::string& lock_handle_name,
1270              const UINT32& new_max_tries,
1271              const UINT32& new_recovery_time,
1272              const UINT32& lockout_recovery,
1273              AuthorizationDelegate* authorization_delegate));
1274   MOCK_METHOD6(PP_Commands,
1275       void(const TPMI_RH_PLATFORM& auth,
1276            const std::string& auth_name,
1277            const TPML_CC& set_list,
1278            const TPML_CC& clear_list,
1279            AuthorizationDelegate* authorization_delegate,
1280            const PP_CommandsResponse& callback));
1281   MOCK_METHOD5(PP_CommandsSync,
1282       TPM_RC(const TPMI_RH_PLATFORM& auth,
1283              const std::string& auth_name,
1284              const TPML_CC& set_list,
1285              const TPML_CC& clear_list,
1286              AuthorizationDelegate* authorization_delegate));
1287   MOCK_METHOD5(SetAlgorithmSet,
1288       void(const TPMI_RH_PLATFORM& auth_handle,
1289            const std::string& auth_handle_name,
1290            const UINT32& algorithm_set,
1291            AuthorizationDelegate* authorization_delegate,
1292            const SetAlgorithmSetResponse& callback));
1293   MOCK_METHOD4(SetAlgorithmSetSync,
1294       TPM_RC(const TPMI_RH_PLATFORM& auth_handle,
1295              const std::string& auth_handle_name,
1296              const UINT32& algorithm_set,
1297              AuthorizationDelegate* authorization_delegate));
1298   MOCK_METHOD8(FieldUpgradeStart,
1299       void(const TPMI_RH_PLATFORM& authorization,
1300            const std::string& authorization_name,
1301            const TPMI_DH_OBJECT& key_handle,
1302            const std::string& key_handle_name,
1303            const TPM2B_DIGEST& fu_digest,
1304            const TPMT_SIGNATURE& manifest_signature,
1305            AuthorizationDelegate* authorization_delegate,
1306            const FieldUpgradeStartResponse& callback));
1307   MOCK_METHOD7(FieldUpgradeStartSync,
1308       TPM_RC(const TPMI_RH_PLATFORM& authorization,
1309              const std::string& authorization_name,
1310              const TPMI_DH_OBJECT& key_handle,
1311              const std::string& key_handle_name,
1312              const TPM2B_DIGEST& fu_digest,
1313              const TPMT_SIGNATURE& manifest_signature,
1314              AuthorizationDelegate* authorization_delegate));
1315   MOCK_METHOD3(FieldUpgradeData,
1316       void(const TPM2B_MAX_BUFFER& fu_data,
1317            AuthorizationDelegate* authorization_delegate,
1318            const FieldUpgradeDataResponse& callback));
1319   MOCK_METHOD4(FieldUpgradeDataSync,
1320       TPM_RC(const TPM2B_MAX_BUFFER& fu_data,
1321              TPMT_HA* next_digest,
1322              TPMT_HA* first_digest,
1323              AuthorizationDelegate* authorization_delegate));
1324   MOCK_METHOD3(FirmwareRead,
1325       void(const UINT32& sequence_number,
1326            AuthorizationDelegate* authorization_delegate,
1327            const FirmwareReadResponse& callback));
1328   MOCK_METHOD3(FirmwareReadSync,
1329       TPM_RC(const UINT32& sequence_number,
1330              TPM2B_MAX_BUFFER* fu_data,
1331              AuthorizationDelegate* authorization_delegate));
1332   MOCK_METHOD4(ContextSave,
1333       void(const TPMI_DH_CONTEXT& save_handle,
1334            const std::string& save_handle_name,
1335            AuthorizationDelegate* authorization_delegate,
1336            const ContextSaveResponse& callback));
1337   MOCK_METHOD4(ContextSaveSync,
1338       TPM_RC(const TPMI_DH_CONTEXT& save_handle,
1339              const std::string& save_handle_name,
1340              TPMS_CONTEXT* context,
1341              AuthorizationDelegate* authorization_delegate));
1342   MOCK_METHOD3(ContextLoad,
1343       void(const TPMS_CONTEXT& context,
1344            AuthorizationDelegate* authorization_delegate,
1345            const ContextLoadResponse& callback));
1346   MOCK_METHOD3(ContextLoadSync,
1347       TPM_RC(const TPMS_CONTEXT& context,
1348              TPMI_DH_CONTEXT* loaded_handle,
1349              AuthorizationDelegate* authorization_delegate));
1350   MOCK_METHOD3(FlushContext,
1351       void(const TPMI_DH_CONTEXT& flush_handle,
1352            AuthorizationDelegate* authorization_delegate,
1353            const FlushContextResponse& callback));
1354   MOCK_METHOD2(FlushContextSync,
1355       TPM_RC(const TPMI_DH_CONTEXT& flush_handle,
1356              AuthorizationDelegate* authorization_delegate));
1357   MOCK_METHOD7(EvictControl,
1358       void(const TPMI_RH_PROVISION& auth,
1359            const std::string& auth_name,
1360            const TPMI_DH_OBJECT& object_handle,
1361            const std::string& object_handle_name,
1362            const TPMI_DH_PERSISTENT& persistent_handle,
1363            AuthorizationDelegate* authorization_delegate,
1364            const EvictControlResponse& callback));
1365   MOCK_METHOD6(EvictControlSync,
1366       TPM_RC(const TPMI_RH_PROVISION& auth,
1367              const std::string& auth_name,
1368              const TPMI_DH_OBJECT& object_handle,
1369              const std::string& object_handle_name,
1370              const TPMI_DH_PERSISTENT& persistent_handle,
1371              AuthorizationDelegate* authorization_delegate));
1372   MOCK_METHOD2(ReadClock,
1373       void(AuthorizationDelegate* authorization_delegate,
1374            const ReadClockResponse& callback));
1375   MOCK_METHOD2(ReadClockSync,
1376       TPM_RC(TPMS_TIME_INFO* current_time,
1377              AuthorizationDelegate* authorization_delegate));
1378   MOCK_METHOD5(ClockSet,
1379       void(const TPMI_RH_PROVISION& auth,
1380            const std::string& auth_name,
1381            const UINT64& new_time,
1382            AuthorizationDelegate* authorization_delegate,
1383            const ClockSetResponse& callback));
1384   MOCK_METHOD4(ClockSetSync,
1385       TPM_RC(const TPMI_RH_PROVISION& auth,
1386              const std::string& auth_name,
1387              const UINT64& new_time,
1388              AuthorizationDelegate* authorization_delegate));
1389   MOCK_METHOD5(ClockRateAdjust,
1390       void(const TPMI_RH_PROVISION& auth,
1391            const std::string& auth_name,
1392            const TPM_CLOCK_ADJUST& rate_adjust,
1393            AuthorizationDelegate* authorization_delegate,
1394            const ClockRateAdjustResponse& callback));
1395   MOCK_METHOD4(ClockRateAdjustSync,
1396       TPM_RC(const TPMI_RH_PROVISION& auth,
1397              const std::string& auth_name,
1398              const TPM_CLOCK_ADJUST& rate_adjust,
1399              AuthorizationDelegate* authorization_delegate));
1400   MOCK_METHOD5(GetCapability,
1401       void(const TPM_CAP& capability,
1402            const UINT32& property,
1403            const UINT32& property_count,
1404            AuthorizationDelegate* authorization_delegate,
1405            const GetCapabilityResponse& callback));
1406   MOCK_METHOD6(GetCapabilitySync,
1407       TPM_RC(const TPM_CAP& capability,
1408              const UINT32& property,
1409              const UINT32& property_count,
1410              TPMI_YES_NO* more_data,
1411              TPMS_CAPABILITY_DATA* capability_data,
1412              AuthorizationDelegate* authorization_delegate));
1413   MOCK_METHOD3(TestParms,
1414       void(const TPMT_PUBLIC_PARMS& parameters,
1415            AuthorizationDelegate* authorization_delegate,
1416            const TestParmsResponse& callback));
1417   MOCK_METHOD2(TestParmsSync,
1418       TPM_RC(const TPMT_PUBLIC_PARMS& parameters,
1419              AuthorizationDelegate* authorization_delegate));
1420   MOCK_METHOD6(NV_DefineSpace,
1421       void(const TPMI_RH_PROVISION& auth_handle,
1422            const std::string& auth_handle_name,
1423            const TPM2B_AUTH& auth,
1424            const TPM2B_NV_PUBLIC& public_info,
1425            AuthorizationDelegate* authorization_delegate,
1426            const NV_DefineSpaceResponse& callback));
1427   MOCK_METHOD5(NV_DefineSpaceSync,
1428       TPM_RC(const TPMI_RH_PROVISION& auth_handle,
1429              const std::string& auth_handle_name,
1430              const TPM2B_AUTH& auth,
1431              const TPM2B_NV_PUBLIC& public_info,
1432              AuthorizationDelegate* authorization_delegate));
1433   MOCK_METHOD6(NV_UndefineSpace,
1434       void(const TPMI_RH_PROVISION& auth_handle,
1435            const std::string& auth_handle_name,
1436            const TPMI_RH_NV_INDEX& nv_index,
1437            const std::string& nv_index_name,
1438            AuthorizationDelegate* authorization_delegate,
1439            const NV_UndefineSpaceResponse& callback));
1440   MOCK_METHOD5(NV_UndefineSpaceSync,
1441       TPM_RC(const TPMI_RH_PROVISION& auth_handle,
1442              const std::string& auth_handle_name,
1443              const TPMI_RH_NV_INDEX& nv_index,
1444              const std::string& nv_index_name,
1445              AuthorizationDelegate* authorization_delegate));
1446   MOCK_METHOD6(NV_UndefineSpaceSpecial,
1447       void(const TPMI_RH_NV_INDEX& nv_index,
1448            const std::string& nv_index_name,
1449            const TPMI_RH_PLATFORM& platform,
1450            const std::string& platform_name,
1451            AuthorizationDelegate* authorization_delegate,
1452            const NV_UndefineSpaceSpecialResponse& callback));
1453   MOCK_METHOD5(NV_UndefineSpaceSpecialSync,
1454       TPM_RC(const TPMI_RH_NV_INDEX& nv_index,
1455              const std::string& nv_index_name,
1456              const TPMI_RH_PLATFORM& platform,
1457              const std::string& platform_name,
1458              AuthorizationDelegate* authorization_delegate));
1459   MOCK_METHOD4(NV_ReadPublic,
1460       void(const TPMI_RH_NV_INDEX& nv_index,
1461            const std::string& nv_index_name,
1462            AuthorizationDelegate* authorization_delegate,
1463            const NV_ReadPublicResponse& callback));
1464   MOCK_METHOD5(NV_ReadPublicSync,
1465       TPM_RC(const TPMI_RH_NV_INDEX& nv_index,
1466              const std::string& nv_index_name,
1467              TPM2B_NV_PUBLIC* nv_public,
1468              TPM2B_NAME* nv_name,
1469              AuthorizationDelegate* authorization_delegate));
1470   MOCK_METHOD8(NV_Write,
1471       void(const TPMI_RH_NV_AUTH& auth_handle,
1472            const std::string& auth_handle_name,
1473            const TPMI_RH_NV_INDEX& nv_index,
1474            const std::string& nv_index_name,
1475            const TPM2B_MAX_NV_BUFFER& data,
1476            const UINT16& offset,
1477            AuthorizationDelegate* authorization_delegate,
1478            const NV_WriteResponse& callback));
1479   MOCK_METHOD7(NV_WriteSync,
1480       TPM_RC(const TPMI_RH_NV_AUTH& auth_handle,
1481              const std::string& auth_handle_name,
1482              const TPMI_RH_NV_INDEX& nv_index,
1483              const std::string& nv_index_name,
1484              const TPM2B_MAX_NV_BUFFER& data,
1485              const UINT16& offset,
1486              AuthorizationDelegate* authorization_delegate));
1487   MOCK_METHOD6(NV_Increment,
1488       void(const TPMI_RH_NV_AUTH& auth_handle,
1489            const std::string& auth_handle_name,
1490            const TPMI_RH_NV_INDEX& nv_index,
1491            const std::string& nv_index_name,
1492            AuthorizationDelegate* authorization_delegate,
1493            const NV_IncrementResponse& callback));
1494   MOCK_METHOD5(NV_IncrementSync,
1495       TPM_RC(const TPMI_RH_NV_AUTH& auth_handle,
1496              const std::string& auth_handle_name,
1497              const TPMI_RH_NV_INDEX& nv_index,
1498              const std::string& nv_index_name,
1499              AuthorizationDelegate* authorization_delegate));
1500   MOCK_METHOD7(NV_Extend,
1501       void(const TPMI_RH_NV_AUTH& auth_handle,
1502            const std::string& auth_handle_name,
1503            const TPMI_RH_NV_INDEX& nv_index,
1504            const std::string& nv_index_name,
1505            const TPM2B_MAX_NV_BUFFER& data,
1506            AuthorizationDelegate* authorization_delegate,
1507            const NV_ExtendResponse& callback));
1508   MOCK_METHOD6(NV_ExtendSync,
1509       TPM_RC(const TPMI_RH_NV_AUTH& auth_handle,
1510              const std::string& auth_handle_name,
1511              const TPMI_RH_NV_INDEX& nv_index,
1512              const std::string& nv_index_name,
1513              const TPM2B_MAX_NV_BUFFER& data,
1514              AuthorizationDelegate* authorization_delegate));
1515   MOCK_METHOD7(NV_SetBits,
1516       void(const TPMI_RH_NV_AUTH& auth_handle,
1517            const std::string& auth_handle_name,
1518            const TPMI_RH_NV_INDEX& nv_index,
1519            const std::string& nv_index_name,
1520            const UINT64& bits,
1521            AuthorizationDelegate* authorization_delegate,
1522            const NV_SetBitsResponse& callback));
1523   MOCK_METHOD6(NV_SetBitsSync,
1524       TPM_RC(const TPMI_RH_NV_AUTH& auth_handle,
1525              const std::string& auth_handle_name,
1526              const TPMI_RH_NV_INDEX& nv_index,
1527              const std::string& nv_index_name,
1528              const UINT64& bits,
1529              AuthorizationDelegate* authorization_delegate));
1530   MOCK_METHOD6(NV_WriteLock,
1531       void(const TPMI_RH_NV_AUTH& auth_handle,
1532            const std::string& auth_handle_name,
1533            const TPMI_RH_NV_INDEX& nv_index,
1534            const std::string& nv_index_name,
1535            AuthorizationDelegate* authorization_delegate,
1536            const NV_WriteLockResponse& callback));
1537   MOCK_METHOD5(NV_WriteLockSync,
1538       TPM_RC(const TPMI_RH_NV_AUTH& auth_handle,
1539              const std::string& auth_handle_name,
1540              const TPMI_RH_NV_INDEX& nv_index,
1541              const std::string& nv_index_name,
1542              AuthorizationDelegate* authorization_delegate));
1543   MOCK_METHOD4(NV_GlobalWriteLock,
1544       void(const TPMI_RH_PROVISION& auth_handle,
1545            const std::string& auth_handle_name,
1546            AuthorizationDelegate* authorization_delegate,
1547            const NV_GlobalWriteLockResponse& callback));
1548   MOCK_METHOD3(NV_GlobalWriteLockSync,
1549       TPM_RC(const TPMI_RH_PROVISION& auth_handle,
1550              const std::string& auth_handle_name,
1551              AuthorizationDelegate* authorization_delegate));
1552   MOCK_METHOD8(NV_Read,
1553       void(const TPMI_RH_NV_AUTH& auth_handle,
1554            const std::string& auth_handle_name,
1555            const TPMI_RH_NV_INDEX& nv_index,
1556            const std::string& nv_index_name,
1557            const UINT16& size,
1558            const UINT16& offset,
1559            AuthorizationDelegate* authorization_delegate,
1560            const NV_ReadResponse& callback));
1561   MOCK_METHOD8(NV_ReadSync,
1562       TPM_RC(const TPMI_RH_NV_AUTH& auth_handle,
1563              const std::string& auth_handle_name,
1564              const TPMI_RH_NV_INDEX& nv_index,
1565              const std::string& nv_index_name,
1566              const UINT16& size,
1567              const UINT16& offset,
1568              TPM2B_MAX_NV_BUFFER* data,
1569              AuthorizationDelegate* authorization_delegate));
1570   MOCK_METHOD6(NV_ReadLock,
1571       void(const TPMI_RH_NV_AUTH& auth_handle,
1572            const std::string& auth_handle_name,
1573            const TPMI_RH_NV_INDEX& nv_index,
1574            const std::string& nv_index_name,
1575            AuthorizationDelegate* authorization_delegate,
1576            const NV_ReadLockResponse& callback));
1577   MOCK_METHOD5(NV_ReadLockSync,
1578       TPM_RC(const TPMI_RH_NV_AUTH& auth_handle,
1579              const std::string& auth_handle_name,
1580              const TPMI_RH_NV_INDEX& nv_index,
1581              const std::string& nv_index_name,
1582              AuthorizationDelegate* authorization_delegate));
1583   MOCK_METHOD5(NV_ChangeAuth,
1584       void(const TPMI_RH_NV_INDEX& nv_index,
1585            const std::string& nv_index_name,
1586            const TPM2B_AUTH& new_auth,
1587            AuthorizationDelegate* authorization_delegate,
1588            const NV_ChangeAuthResponse& callback));
1589   MOCK_METHOD4(NV_ChangeAuthSync,
1590       TPM_RC(const TPMI_RH_NV_INDEX& nv_index,
1591              const std::string& nv_index_name,
1592              const TPM2B_AUTH& new_auth,
1593              AuthorizationDelegate* authorization_delegate));
1594   // Too many args to mock, forward to *Short version.
1595   void NV_Certify(const TPMI_DH_OBJECT& sign_handle,
1596                   const std::string& sign_handle_name,
1597                   const TPMI_RH_NV_AUTH& auth_handle,
1598                   const std::string& auth_handle_name,
1599                   const TPMI_RH_NV_INDEX& nv_index,
1600                   const std::string& nv_index_name,
1601                   const TPM2B_DATA& qualifying_data,
1602                   const TPMT_SIG_SCHEME& in_scheme,
1603                   const UINT16& size,
1604                   const UINT16& offset,
1605                   AuthorizationDelegate* authorization_delegate,
1606                   const NV_CertifyResponse& callback) override;
1607   MOCK_METHOD9(NV_CertifyShort,
1608       void(const TPMI_DH_OBJECT& sign_handle,
1609            const TPMI_RH_NV_AUTH& auth_handle,
1610            const TPMI_RH_NV_INDEX& nv_index,
1611            const TPM2B_DATA& qualifying_data,
1612            const TPMT_SIG_SCHEME& in_scheme,
1613            const UINT16& size,
1614            const UINT16& offset,
1615            AuthorizationDelegate* authorization_delegate,
1616            const NV_CertifyResponse& callback));
1617   // Too many args to mock, forward to *Short version.
1618   TPM_RC NV_CertifySync(
1619       const TPMI_DH_OBJECT& sign_handle,
1620       const std::string& sign_handle_name,
1621       const TPMI_RH_NV_AUTH& auth_handle,
1622       const std::string& auth_handle_name,
1623       const TPMI_RH_NV_INDEX& nv_index,
1624       const std::string& nv_index_name,
1625       const TPM2B_DATA& qualifying_data,
1626       const TPMT_SIG_SCHEME& in_scheme,
1627       const UINT16& size,
1628       const UINT16& offset,
1629       TPM2B_ATTEST* certify_info,
1630       TPMT_SIGNATURE* signature,
1631       AuthorizationDelegate* authorization_delegate) override;
1632   MOCK_METHOD10(NV_CertifySyncShort,
1633       TPM_RC(const TPMI_DH_OBJECT& sign_handle,
1634              const TPMI_RH_NV_AUTH& auth_handle,
1635              const TPMI_RH_NV_INDEX& nv_index,
1636              const TPM2B_DATA& qualifying_data,
1637              const TPMT_SIG_SCHEME& in_scheme,
1638              const UINT16& size,
1639              const UINT16& offset,
1640              TPM2B_ATTEST* certify_info,
1641              TPMT_SIGNATURE* signature,
1642              AuthorizationDelegate* authorization_delegate));
1643 };
1644 
1645 }  // namespace trunks
1646 
1647 #endif  // TRUNKS_MOCK_TPM_H_
1648