xref: /aosp_15_r20/external/tpm2-tss/include/tss2/tss2_esys.h (revision 758e9fba6fc9adbf15340f70c73baee7b168b1c9)
1*758e9fbaSOystein Eftevaag /* SPDX-License-Identifier: BSD-2-Clause */
2*758e9fbaSOystein Eftevaag /*******************************************************************************
3*758e9fbaSOystein Eftevaag  * Copyright 2017-2018, Fraunhofer SIT sponsored by Infineon Technologies AG
4*758e9fbaSOystein Eftevaag  * All rights reserved.
5*758e9fbaSOystein Eftevaag  *******************************************************************************/
6*758e9fbaSOystein Eftevaag #ifndef TSS2_ESYS_H
7*758e9fbaSOystein Eftevaag #define TSS2_ESYS_H
8*758e9fbaSOystein Eftevaag 
9*758e9fbaSOystein Eftevaag #include "tss2_tcti.h"
10*758e9fbaSOystein Eftevaag #include "tss2_sys.h"
11*758e9fbaSOystein Eftevaag 
12*758e9fbaSOystein Eftevaag #ifdef __cplusplus
13*758e9fbaSOystein Eftevaag extern "C" {
14*758e9fbaSOystein Eftevaag #endif
15*758e9fbaSOystein Eftevaag 
16*758e9fbaSOystein Eftevaag typedef uint32_t ESYS_TR;
17*758e9fbaSOystein Eftevaag 
18*758e9fbaSOystein Eftevaag #define ESYS_TR_NONE     0xfffU
19*758e9fbaSOystein Eftevaag #define ESYS_TR_PASSWORD 0x0ffU
20*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR0      0U
21*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR1      1U
22*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR2      2U
23*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR3      3U
24*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR4      4U
25*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR5      5U
26*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR6      6U
27*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR7      7U
28*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR8      8U
29*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR9      9U
30*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR10    10U
31*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR11    11U
32*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR12    12U
33*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR13    13U
34*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR14    14U
35*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR15    15U
36*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR16    16U
37*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR17    17U
38*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR18    18U
39*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR19    19U
40*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR20    20U
41*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR21    21U
42*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR22    22U
43*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR23    23U
44*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR24    24U
45*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR25    25U
46*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR26    26U
47*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR27    27U
48*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR28    28U
49*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR29    29U
50*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR30    30U
51*758e9fbaSOystein Eftevaag #define ESYS_TR_PCR31    31U
52*758e9fbaSOystein Eftevaag 
53*758e9fbaSOystein Eftevaag /* From TPM_RH_CONSTANTS */
54*758e9fbaSOystein Eftevaag #define ESYS_TR_RH_OWNER       0x101U
55*758e9fbaSOystein Eftevaag #define ESYS_TR_RH_NULL        0x107U
56*758e9fbaSOystein Eftevaag #define ESYS_TR_RH_LOCKOUT     0x10AU
57*758e9fbaSOystein Eftevaag #define ESYS_TR_RH_ENDORSEMENT 0x10BU
58*758e9fbaSOystein Eftevaag #define ESYS_TR_RH_PLATFORM    0x10CU
59*758e9fbaSOystein Eftevaag #define ESYS_TR_RH_PLATFORM_NV 0x10DU
60*758e9fbaSOystein Eftevaag 
61*758e9fbaSOystein Eftevaag #define ESYS_TR_RH_AUTH_FIRST  0x110U
62*758e9fbaSOystein Eftevaag #define ESYS_TR_RH_AUTH(x) (ESYS_TR_RH_AUTH_FIRST + (ESYS_TR)(x))
63*758e9fbaSOystein Eftevaag 
64*758e9fbaSOystein Eftevaag #define ESYS_TR_MIN_OBJECT 0x1000U
65*758e9fbaSOystein Eftevaag 
66*758e9fbaSOystein Eftevaag typedef struct ESYS_CONTEXT ESYS_CONTEXT;
67*758e9fbaSOystein Eftevaag 
68*758e9fbaSOystein Eftevaag /*
69*758e9fbaSOystein Eftevaag  * TPM 2.0 ESAPI Functions
70*758e9fbaSOystein Eftevaag  */
71*758e9fbaSOystein Eftevaag 
72*758e9fbaSOystein Eftevaag TSS2_RC
73*758e9fbaSOystein Eftevaag Esys_Initialize(
74*758e9fbaSOystein Eftevaag     ESYS_CONTEXT **esys_context,
75*758e9fbaSOystein Eftevaag     TSS2_TCTI_CONTEXT *tcti,
76*758e9fbaSOystein Eftevaag     TSS2_ABI_VERSION *abiVersion);
77*758e9fbaSOystein Eftevaag 
78*758e9fbaSOystein Eftevaag void
79*758e9fbaSOystein Eftevaag Esys_Finalize(
80*758e9fbaSOystein Eftevaag     ESYS_CONTEXT **context);
81*758e9fbaSOystein Eftevaag 
82*758e9fbaSOystein Eftevaag TSS2_RC
83*758e9fbaSOystein Eftevaag Esys_GetTcti(
84*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context,
85*758e9fbaSOystein Eftevaag     TSS2_TCTI_CONTEXT **tcti);
86*758e9fbaSOystein Eftevaag 
87*758e9fbaSOystein Eftevaag TSS2_RC
88*758e9fbaSOystein Eftevaag Esys_GetPollHandles(
89*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context,
90*758e9fbaSOystein Eftevaag     TSS2_TCTI_POLL_HANDLE **handles,
91*758e9fbaSOystein Eftevaag     size_t *count);
92*758e9fbaSOystein Eftevaag 
93*758e9fbaSOystein Eftevaag TSS2_RC
94*758e9fbaSOystein Eftevaag Esys_SetTimeout(
95*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context,
96*758e9fbaSOystein Eftevaag     int32_t timeout);
97*758e9fbaSOystein Eftevaag 
98*758e9fbaSOystein Eftevaag TSS2_RC
99*758e9fbaSOystein Eftevaag Esys_TR_Serialize(
100*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context,
101*758e9fbaSOystein Eftevaag     ESYS_TR object,
102*758e9fbaSOystein Eftevaag     uint8_t **buffer,
103*758e9fbaSOystein Eftevaag     size_t *buffer_size);
104*758e9fbaSOystein Eftevaag 
105*758e9fbaSOystein Eftevaag TSS2_RC
106*758e9fbaSOystein Eftevaag Esys_TR_Deserialize(
107*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context,
108*758e9fbaSOystein Eftevaag     uint8_t const *buffer,
109*758e9fbaSOystein Eftevaag     size_t buffer_size,
110*758e9fbaSOystein Eftevaag     ESYS_TR *esys_handle);
111*758e9fbaSOystein Eftevaag 
112*758e9fbaSOystein Eftevaag TSS2_RC
113*758e9fbaSOystein Eftevaag Esys_TR_FromTPMPublic_Async(
114*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
115*758e9fbaSOystein Eftevaag     TPM2_HANDLE tpm_handle,
116*758e9fbaSOystein Eftevaag     ESYS_TR optionalSession1,
117*758e9fbaSOystein Eftevaag     ESYS_TR optionalSession2,
118*758e9fbaSOystein Eftevaag     ESYS_TR optionalSession3);
119*758e9fbaSOystein Eftevaag 
120*758e9fbaSOystein Eftevaag TSS2_RC
121*758e9fbaSOystein Eftevaag Esys_TR_FromTPMPublic_Finish(
122*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
123*758e9fbaSOystein Eftevaag     ESYS_TR *object);
124*758e9fbaSOystein Eftevaag 
125*758e9fbaSOystein Eftevaag TSS2_RC
126*758e9fbaSOystein Eftevaag Esys_TR_FromTPMPublic(
127*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
128*758e9fbaSOystein Eftevaag     TPM2_HANDLE tpm_handle,
129*758e9fbaSOystein Eftevaag     ESYS_TR optionalSession1,
130*758e9fbaSOystein Eftevaag     ESYS_TR optionalSession2,
131*758e9fbaSOystein Eftevaag     ESYS_TR optionalSession3,
132*758e9fbaSOystein Eftevaag     ESYS_TR *object);
133*758e9fbaSOystein Eftevaag 
134*758e9fbaSOystein Eftevaag TSS2_RC
135*758e9fbaSOystein Eftevaag Esys_TR_Close(
136*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context,
137*758e9fbaSOystein Eftevaag     ESYS_TR *rsrc_handle);
138*758e9fbaSOystein Eftevaag 
139*758e9fbaSOystein Eftevaag TSS2_RC
140*758e9fbaSOystein Eftevaag Esys_TR_SetAuth(
141*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
142*758e9fbaSOystein Eftevaag     ESYS_TR handle,
143*758e9fbaSOystein Eftevaag     TPM2B_AUTH const *authValue);
144*758e9fbaSOystein Eftevaag 
145*758e9fbaSOystein Eftevaag TSS2_RC
146*758e9fbaSOystein Eftevaag Esys_TR_GetName(
147*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
148*758e9fbaSOystein Eftevaag     ESYS_TR handle,
149*758e9fbaSOystein Eftevaag     TPM2B_NAME **name);
150*758e9fbaSOystein Eftevaag 
151*758e9fbaSOystein Eftevaag TSS2_RC
152*758e9fbaSOystein Eftevaag Esys_TRSess_GetAttributes(
153*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
154*758e9fbaSOystein Eftevaag     ESYS_TR session,
155*758e9fbaSOystein Eftevaag     TPMA_SESSION *flags);
156*758e9fbaSOystein Eftevaag 
157*758e9fbaSOystein Eftevaag TSS2_RC
158*758e9fbaSOystein Eftevaag Esys_TRSess_SetAttributes(
159*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
160*758e9fbaSOystein Eftevaag     ESYS_TR session,
161*758e9fbaSOystein Eftevaag     TPMA_SESSION flags,
162*758e9fbaSOystein Eftevaag     TPMA_SESSION mask);
163*758e9fbaSOystein Eftevaag 
164*758e9fbaSOystein Eftevaag TSS2_RC
165*758e9fbaSOystein Eftevaag Esys_TRSess_GetNonceTPM(
166*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
167*758e9fbaSOystein Eftevaag     ESYS_TR session,
168*758e9fbaSOystein Eftevaag     TPM2B_NONCE **nonceTPM);
169*758e9fbaSOystein Eftevaag 
170*758e9fbaSOystein Eftevaag TSS2_RC
171*758e9fbaSOystein Eftevaag Esys_TR_GetTpmHandle(
172*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context,
173*758e9fbaSOystein Eftevaag     ESYS_TR esys_handle,
174*758e9fbaSOystein Eftevaag     TPM2_HANDLE *tpm_handle);
175*758e9fbaSOystein Eftevaag 
176*758e9fbaSOystein Eftevaag TSS2_RC
177*758e9fbaSOystein Eftevaag Esys_TRSess_GetAuthRequired(
178*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context,
179*758e9fbaSOystein Eftevaag     ESYS_TR esys_handle,
180*758e9fbaSOystein Eftevaag     TPMI_YES_NO *auth_needed);
181*758e9fbaSOystein Eftevaag 
182*758e9fbaSOystein Eftevaag /* Table 5 - TPM2_Startup Command */
183*758e9fbaSOystein Eftevaag 
184*758e9fbaSOystein Eftevaag TSS2_RC
185*758e9fbaSOystein Eftevaag Esys_Startup(
186*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
187*758e9fbaSOystein Eftevaag     TPM2_SU startupType);
188*758e9fbaSOystein Eftevaag 
189*758e9fbaSOystein Eftevaag TSS2_RC
190*758e9fbaSOystein Eftevaag Esys_Startup_Async(
191*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
192*758e9fbaSOystein Eftevaag     TPM2_SU startupType);
193*758e9fbaSOystein Eftevaag 
194*758e9fbaSOystein Eftevaag TSS2_RC
195*758e9fbaSOystein Eftevaag Esys_Startup_Finish(
196*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
197*758e9fbaSOystein Eftevaag 
198*758e9fbaSOystein Eftevaag /* Table 7 - TPM2_Shutdown Command */
199*758e9fbaSOystein Eftevaag 
200*758e9fbaSOystein Eftevaag TSS2_RC
201*758e9fbaSOystein Eftevaag Esys_Shutdown(
202*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
203*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
204*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
205*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
206*758e9fbaSOystein Eftevaag     TPM2_SU shutdownType);
207*758e9fbaSOystein Eftevaag 
208*758e9fbaSOystein Eftevaag TSS2_RC
209*758e9fbaSOystein Eftevaag Esys_Shutdown_Async(
210*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
211*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
212*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
213*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
214*758e9fbaSOystein Eftevaag     TPM2_SU shutdownType);
215*758e9fbaSOystein Eftevaag 
216*758e9fbaSOystein Eftevaag TSS2_RC
217*758e9fbaSOystein Eftevaag Esys_Shutdown_Finish(
218*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
219*758e9fbaSOystein Eftevaag 
220*758e9fbaSOystein Eftevaag /* Table 9 - TPM2_SelfTest Command */
221*758e9fbaSOystein Eftevaag 
222*758e9fbaSOystein Eftevaag TSS2_RC
223*758e9fbaSOystein Eftevaag Esys_SelfTest(
224*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
225*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
226*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
227*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
228*758e9fbaSOystein Eftevaag     TPMI_YES_NO fullTest);
229*758e9fbaSOystein Eftevaag 
230*758e9fbaSOystein Eftevaag TSS2_RC
231*758e9fbaSOystein Eftevaag Esys_SelfTest_Async(
232*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
233*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
234*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
235*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
236*758e9fbaSOystein Eftevaag     TPMI_YES_NO fullTest);
237*758e9fbaSOystein Eftevaag 
238*758e9fbaSOystein Eftevaag TSS2_RC
239*758e9fbaSOystein Eftevaag Esys_SelfTest_Finish(
240*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
241*758e9fbaSOystein Eftevaag 
242*758e9fbaSOystein Eftevaag /* Table 11 - TPM2_IncrementalSelfTest Command */
243*758e9fbaSOystein Eftevaag 
244*758e9fbaSOystein Eftevaag TSS2_RC
245*758e9fbaSOystein Eftevaag Esys_IncrementalSelfTest(
246*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
247*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
248*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
249*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
250*758e9fbaSOystein Eftevaag     const TPML_ALG *toTest,
251*758e9fbaSOystein Eftevaag     TPML_ALG **toDoList);
252*758e9fbaSOystein Eftevaag 
253*758e9fbaSOystein Eftevaag TSS2_RC
254*758e9fbaSOystein Eftevaag Esys_IncrementalSelfTest_Async(
255*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
256*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
257*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
258*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
259*758e9fbaSOystein Eftevaag     const TPML_ALG *toTest);
260*758e9fbaSOystein Eftevaag 
261*758e9fbaSOystein Eftevaag TSS2_RC
262*758e9fbaSOystein Eftevaag Esys_IncrementalSelfTest_Finish(
263*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
264*758e9fbaSOystein Eftevaag     TPML_ALG **toDoList);
265*758e9fbaSOystein Eftevaag 
266*758e9fbaSOystein Eftevaag /* Table 13 - TPM2_GetTestResult Command */
267*758e9fbaSOystein Eftevaag 
268*758e9fbaSOystein Eftevaag TSS2_RC
269*758e9fbaSOystein Eftevaag Esys_GetTestResult(
270*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
271*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
272*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
273*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
274*758e9fbaSOystein Eftevaag     TPM2B_MAX_BUFFER **outData,
275*758e9fbaSOystein Eftevaag     TPM2_RC *testResult);
276*758e9fbaSOystein Eftevaag 
277*758e9fbaSOystein Eftevaag TSS2_RC
278*758e9fbaSOystein Eftevaag Esys_GetTestResult_Async(
279*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
280*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
281*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
282*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
283*758e9fbaSOystein Eftevaag 
284*758e9fbaSOystein Eftevaag TSS2_RC
285*758e9fbaSOystein Eftevaag Esys_GetTestResult_Finish(
286*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
287*758e9fbaSOystein Eftevaag     TPM2B_MAX_BUFFER **outData,
288*758e9fbaSOystein Eftevaag     TPM2_RC *testResult);
289*758e9fbaSOystein Eftevaag 
290*758e9fbaSOystein Eftevaag /* Table 15 - TPM2_StartAuthSession Command */
291*758e9fbaSOystein Eftevaag 
292*758e9fbaSOystein Eftevaag TSS2_RC
293*758e9fbaSOystein Eftevaag Esys_StartAuthSession(
294*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
295*758e9fbaSOystein Eftevaag     ESYS_TR tpmKey,
296*758e9fbaSOystein Eftevaag     ESYS_TR bind,
297*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
298*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
299*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
300*758e9fbaSOystein Eftevaag     const TPM2B_NONCE *nonceCaller,
301*758e9fbaSOystein Eftevaag     TPM2_SE sessionType,
302*758e9fbaSOystein Eftevaag     const TPMT_SYM_DEF *symmetric,
303*758e9fbaSOystein Eftevaag     TPMI_ALG_HASH authHash,
304*758e9fbaSOystein Eftevaag     ESYS_TR *sessionHandle);
305*758e9fbaSOystein Eftevaag 
306*758e9fbaSOystein Eftevaag TSS2_RC
307*758e9fbaSOystein Eftevaag Esys_StartAuthSession_Async(
308*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
309*758e9fbaSOystein Eftevaag     ESYS_TR tpmKey,
310*758e9fbaSOystein Eftevaag     ESYS_TR bind,
311*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
312*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
313*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
314*758e9fbaSOystein Eftevaag     const TPM2B_NONCE *nonceCaller,
315*758e9fbaSOystein Eftevaag     TPM2_SE sessionType,
316*758e9fbaSOystein Eftevaag     const TPMT_SYM_DEF *symmetric,
317*758e9fbaSOystein Eftevaag     TPMI_ALG_HASH authHash);
318*758e9fbaSOystein Eftevaag 
319*758e9fbaSOystein Eftevaag TSS2_RC
320*758e9fbaSOystein Eftevaag Esys_StartAuthSession_Finish(
321*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
322*758e9fbaSOystein Eftevaag     ESYS_TR *sessionHandle);
323*758e9fbaSOystein Eftevaag 
324*758e9fbaSOystein Eftevaag /* Table 17 - TPM2_PolicyRestart Command */
325*758e9fbaSOystein Eftevaag 
326*758e9fbaSOystein Eftevaag TSS2_RC
327*758e9fbaSOystein Eftevaag Esys_PolicyRestart(
328*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
329*758e9fbaSOystein Eftevaag     ESYS_TR sessionHandle,
330*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
331*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
332*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
333*758e9fbaSOystein Eftevaag 
334*758e9fbaSOystein Eftevaag TSS2_RC
335*758e9fbaSOystein Eftevaag Esys_PolicyRestart_Async(
336*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
337*758e9fbaSOystein Eftevaag     ESYS_TR sessionHandle,
338*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
339*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
340*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
341*758e9fbaSOystein Eftevaag 
342*758e9fbaSOystein Eftevaag TSS2_RC
343*758e9fbaSOystein Eftevaag Esys_PolicyRestart_Finish(
344*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
345*758e9fbaSOystein Eftevaag 
346*758e9fbaSOystein Eftevaag /* Table 19 - TPM2_Create Command */
347*758e9fbaSOystein Eftevaag 
348*758e9fbaSOystein Eftevaag TSS2_RC
349*758e9fbaSOystein Eftevaag Esys_Create(
350*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
351*758e9fbaSOystein Eftevaag     ESYS_TR parentHandle,
352*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
353*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
354*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
355*758e9fbaSOystein Eftevaag     const TPM2B_SENSITIVE_CREATE *inSensitive,
356*758e9fbaSOystein Eftevaag     const TPM2B_PUBLIC *inPublic,
357*758e9fbaSOystein Eftevaag     const TPM2B_DATA *outsideInfo,
358*758e9fbaSOystein Eftevaag     const TPML_PCR_SELECTION *creationPCR,
359*758e9fbaSOystein Eftevaag     TPM2B_PRIVATE **outPrivate,
360*758e9fbaSOystein Eftevaag     TPM2B_PUBLIC **outPublic,
361*758e9fbaSOystein Eftevaag     TPM2B_CREATION_DATA **creationData,
362*758e9fbaSOystein Eftevaag     TPM2B_DIGEST **creationHash,
363*758e9fbaSOystein Eftevaag     TPMT_TK_CREATION **creationTicket);
364*758e9fbaSOystein Eftevaag 
365*758e9fbaSOystein Eftevaag TSS2_RC
366*758e9fbaSOystein Eftevaag Esys_Create_Async(
367*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
368*758e9fbaSOystein Eftevaag     ESYS_TR parentHandle,
369*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
370*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
371*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
372*758e9fbaSOystein Eftevaag     const TPM2B_SENSITIVE_CREATE *inSensitive,
373*758e9fbaSOystein Eftevaag     const TPM2B_PUBLIC *inPublic,
374*758e9fbaSOystein Eftevaag     const TPM2B_DATA *outsideInfo,
375*758e9fbaSOystein Eftevaag     const TPML_PCR_SELECTION *creationPCR);
376*758e9fbaSOystein Eftevaag 
377*758e9fbaSOystein Eftevaag TSS2_RC
378*758e9fbaSOystein Eftevaag Esys_Create_Finish(
379*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
380*758e9fbaSOystein Eftevaag     TPM2B_PRIVATE **outPrivate,
381*758e9fbaSOystein Eftevaag     TPM2B_PUBLIC **outPublic,
382*758e9fbaSOystein Eftevaag     TPM2B_CREATION_DATA **creationData,
383*758e9fbaSOystein Eftevaag     TPM2B_DIGEST **creationHash,
384*758e9fbaSOystein Eftevaag     TPMT_TK_CREATION **creationTicket);
385*758e9fbaSOystein Eftevaag 
386*758e9fbaSOystein Eftevaag /* Table 21 - TPM2_Load Command */
387*758e9fbaSOystein Eftevaag 
388*758e9fbaSOystein Eftevaag TSS2_RC
389*758e9fbaSOystein Eftevaag Esys_Load(
390*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
391*758e9fbaSOystein Eftevaag     ESYS_TR parentHandle,
392*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
393*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
394*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
395*758e9fbaSOystein Eftevaag     const TPM2B_PRIVATE *inPrivate,
396*758e9fbaSOystein Eftevaag     const TPM2B_PUBLIC *inPublic,
397*758e9fbaSOystein Eftevaag     ESYS_TR *objectHandle);
398*758e9fbaSOystein Eftevaag 
399*758e9fbaSOystein Eftevaag TSS2_RC
400*758e9fbaSOystein Eftevaag Esys_Load_Async(
401*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
402*758e9fbaSOystein Eftevaag     ESYS_TR parentHandle,
403*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
404*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
405*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
406*758e9fbaSOystein Eftevaag     const TPM2B_PRIVATE *inPrivate,
407*758e9fbaSOystein Eftevaag     const TPM2B_PUBLIC *inPublic);
408*758e9fbaSOystein Eftevaag 
409*758e9fbaSOystein Eftevaag TSS2_RC
410*758e9fbaSOystein Eftevaag Esys_Load_Finish(
411*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
412*758e9fbaSOystein Eftevaag     ESYS_TR *objectHandle);
413*758e9fbaSOystein Eftevaag 
414*758e9fbaSOystein Eftevaag /* Table 23 - TPM2_LoadExternal Command */
415*758e9fbaSOystein Eftevaag 
416*758e9fbaSOystein Eftevaag TSS2_RC
417*758e9fbaSOystein Eftevaag Esys_LoadExternal(
418*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
419*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
420*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
421*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
422*758e9fbaSOystein Eftevaag     const TPM2B_SENSITIVE *inPrivate,
423*758e9fbaSOystein Eftevaag     const TPM2B_PUBLIC *inPublic,
424*758e9fbaSOystein Eftevaag     TPMI_RH_HIERARCHY hierarchy,
425*758e9fbaSOystein Eftevaag     ESYS_TR *objectHandle);
426*758e9fbaSOystein Eftevaag 
427*758e9fbaSOystein Eftevaag TSS2_RC
428*758e9fbaSOystein Eftevaag Esys_LoadExternal_Async(
429*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
430*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
431*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
432*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
433*758e9fbaSOystein Eftevaag     const TPM2B_SENSITIVE *inPrivate,
434*758e9fbaSOystein Eftevaag     const TPM2B_PUBLIC *inPublic,
435*758e9fbaSOystein Eftevaag     TPMI_RH_HIERARCHY hierarchy);
436*758e9fbaSOystein Eftevaag 
437*758e9fbaSOystein Eftevaag TSS2_RC
438*758e9fbaSOystein Eftevaag Esys_LoadExternal_Finish(
439*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
440*758e9fbaSOystein Eftevaag     ESYS_TR *objectHandle);
441*758e9fbaSOystein Eftevaag 
442*758e9fbaSOystein Eftevaag /* Table 25 - TPM2_ReadPublic Command */
443*758e9fbaSOystein Eftevaag 
444*758e9fbaSOystein Eftevaag TSS2_RC
445*758e9fbaSOystein Eftevaag Esys_ReadPublic(
446*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
447*758e9fbaSOystein Eftevaag     ESYS_TR objectHandle,
448*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
449*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
450*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
451*758e9fbaSOystein Eftevaag     TPM2B_PUBLIC **outPublic,
452*758e9fbaSOystein Eftevaag     TPM2B_NAME **name,
453*758e9fbaSOystein Eftevaag     TPM2B_NAME **qualifiedName);
454*758e9fbaSOystein Eftevaag 
455*758e9fbaSOystein Eftevaag TSS2_RC
456*758e9fbaSOystein Eftevaag Esys_ReadPublic_Async(
457*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
458*758e9fbaSOystein Eftevaag     ESYS_TR objectHandle,
459*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
460*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
461*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
462*758e9fbaSOystein Eftevaag 
463*758e9fbaSOystein Eftevaag TSS2_RC
464*758e9fbaSOystein Eftevaag Esys_ReadPublic_Finish(
465*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
466*758e9fbaSOystein Eftevaag     TPM2B_PUBLIC **outPublic,
467*758e9fbaSOystein Eftevaag     TPM2B_NAME **name,
468*758e9fbaSOystein Eftevaag     TPM2B_NAME **qualifiedName);
469*758e9fbaSOystein Eftevaag 
470*758e9fbaSOystein Eftevaag /* Table 27 - TPM2_ActivateCredential Command */
471*758e9fbaSOystein Eftevaag 
472*758e9fbaSOystein Eftevaag TSS2_RC
473*758e9fbaSOystein Eftevaag Esys_ActivateCredential(
474*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
475*758e9fbaSOystein Eftevaag     ESYS_TR activateHandle,
476*758e9fbaSOystein Eftevaag     ESYS_TR keyHandle,
477*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
478*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
479*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
480*758e9fbaSOystein Eftevaag     const TPM2B_ID_OBJECT *credentialBlob,
481*758e9fbaSOystein Eftevaag     const TPM2B_ENCRYPTED_SECRET *secret,
482*758e9fbaSOystein Eftevaag     TPM2B_DIGEST **certInfo);
483*758e9fbaSOystein Eftevaag 
484*758e9fbaSOystein Eftevaag TSS2_RC
485*758e9fbaSOystein Eftevaag Esys_ActivateCredential_Async(
486*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
487*758e9fbaSOystein Eftevaag     ESYS_TR activateHandle,
488*758e9fbaSOystein Eftevaag     ESYS_TR keyHandle,
489*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
490*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
491*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
492*758e9fbaSOystein Eftevaag     const TPM2B_ID_OBJECT *credentialBlob,
493*758e9fbaSOystein Eftevaag     const TPM2B_ENCRYPTED_SECRET *secret);
494*758e9fbaSOystein Eftevaag 
495*758e9fbaSOystein Eftevaag TSS2_RC
496*758e9fbaSOystein Eftevaag Esys_ActivateCredential_Finish(
497*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
498*758e9fbaSOystein Eftevaag     TPM2B_DIGEST **certInfo);
499*758e9fbaSOystein Eftevaag 
500*758e9fbaSOystein Eftevaag /* Table 29 - TPM2_MakeCredential Command */
501*758e9fbaSOystein Eftevaag 
502*758e9fbaSOystein Eftevaag TSS2_RC
503*758e9fbaSOystein Eftevaag Esys_MakeCredential(
504*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
505*758e9fbaSOystein Eftevaag     ESYS_TR handle,
506*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
507*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
508*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
509*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *credential,
510*758e9fbaSOystein Eftevaag     const TPM2B_NAME *objectName,
511*758e9fbaSOystein Eftevaag     TPM2B_ID_OBJECT **credentialBlob,
512*758e9fbaSOystein Eftevaag     TPM2B_ENCRYPTED_SECRET **secret);
513*758e9fbaSOystein Eftevaag 
514*758e9fbaSOystein Eftevaag TSS2_RC
515*758e9fbaSOystein Eftevaag Esys_MakeCredential_Async(
516*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
517*758e9fbaSOystein Eftevaag     ESYS_TR handle,
518*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
519*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
520*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
521*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *credential,
522*758e9fbaSOystein Eftevaag     const TPM2B_NAME *objectName);
523*758e9fbaSOystein Eftevaag 
524*758e9fbaSOystein Eftevaag TSS2_RC
525*758e9fbaSOystein Eftevaag Esys_MakeCredential_Finish(
526*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
527*758e9fbaSOystein Eftevaag     TPM2B_ID_OBJECT **credentialBlob,
528*758e9fbaSOystein Eftevaag     TPM2B_ENCRYPTED_SECRET **secret);
529*758e9fbaSOystein Eftevaag 
530*758e9fbaSOystein Eftevaag /* Table 31 - TPM2_Unseal Command */
531*758e9fbaSOystein Eftevaag 
532*758e9fbaSOystein Eftevaag TSS2_RC
533*758e9fbaSOystein Eftevaag Esys_Unseal(
534*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
535*758e9fbaSOystein Eftevaag     ESYS_TR itemHandle,
536*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
537*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
538*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
539*758e9fbaSOystein Eftevaag     TPM2B_SENSITIVE_DATA **outData);
540*758e9fbaSOystein Eftevaag 
541*758e9fbaSOystein Eftevaag TSS2_RC
542*758e9fbaSOystein Eftevaag Esys_Unseal_Async(
543*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
544*758e9fbaSOystein Eftevaag     ESYS_TR itemHandle,
545*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
546*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
547*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
548*758e9fbaSOystein Eftevaag 
549*758e9fbaSOystein Eftevaag TSS2_RC
550*758e9fbaSOystein Eftevaag Esys_Unseal_Finish(
551*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
552*758e9fbaSOystein Eftevaag     TPM2B_SENSITIVE_DATA **outData);
553*758e9fbaSOystein Eftevaag 
554*758e9fbaSOystein Eftevaag /* Table 33 - TPM2_ObjectChangeAuth Command */
555*758e9fbaSOystein Eftevaag 
556*758e9fbaSOystein Eftevaag TSS2_RC
557*758e9fbaSOystein Eftevaag Esys_ObjectChangeAuth(
558*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
559*758e9fbaSOystein Eftevaag     ESYS_TR objectHandle,
560*758e9fbaSOystein Eftevaag     ESYS_TR parentHandle,
561*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
562*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
563*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
564*758e9fbaSOystein Eftevaag     const TPM2B_AUTH *newAuth,
565*758e9fbaSOystein Eftevaag     TPM2B_PRIVATE **outPrivate);
566*758e9fbaSOystein Eftevaag 
567*758e9fbaSOystein Eftevaag TSS2_RC
568*758e9fbaSOystein Eftevaag Esys_ObjectChangeAuth_Async(
569*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
570*758e9fbaSOystein Eftevaag     ESYS_TR objectHandle,
571*758e9fbaSOystein Eftevaag     ESYS_TR parentHandle,
572*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
573*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
574*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
575*758e9fbaSOystein Eftevaag     const TPM2B_AUTH *newAuth);
576*758e9fbaSOystein Eftevaag 
577*758e9fbaSOystein Eftevaag TSS2_RC
578*758e9fbaSOystein Eftevaag Esys_ObjectChangeAuth_Finish(
579*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
580*758e9fbaSOystein Eftevaag     TPM2B_PRIVATE **outPrivate);
581*758e9fbaSOystein Eftevaag 
582*758e9fbaSOystein Eftevaag /* Table 35 - TPM2_CreateLoaded Command */
583*758e9fbaSOystein Eftevaag 
584*758e9fbaSOystein Eftevaag TSS2_RC
585*758e9fbaSOystein Eftevaag Esys_CreateLoaded(
586*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
587*758e9fbaSOystein Eftevaag     ESYS_TR parentHandle,
588*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
589*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
590*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
591*758e9fbaSOystein Eftevaag     const TPM2B_SENSITIVE_CREATE *inSensitive,
592*758e9fbaSOystein Eftevaag     const TPM2B_TEMPLATE *inPublic,
593*758e9fbaSOystein Eftevaag     ESYS_TR *objectHandle,
594*758e9fbaSOystein Eftevaag     TPM2B_PRIVATE **outPrivate,
595*758e9fbaSOystein Eftevaag     TPM2B_PUBLIC **outPublic);
596*758e9fbaSOystein Eftevaag 
597*758e9fbaSOystein Eftevaag TSS2_RC
598*758e9fbaSOystein Eftevaag Esys_CreateLoaded_Async(
599*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
600*758e9fbaSOystein Eftevaag     ESYS_TR parentHandle,
601*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
602*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
603*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
604*758e9fbaSOystein Eftevaag     const TPM2B_SENSITIVE_CREATE *inSensitive,
605*758e9fbaSOystein Eftevaag     const TPM2B_TEMPLATE *inPublic);
606*758e9fbaSOystein Eftevaag 
607*758e9fbaSOystein Eftevaag TSS2_RC
608*758e9fbaSOystein Eftevaag Esys_CreateLoaded_Finish(
609*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
610*758e9fbaSOystein Eftevaag     ESYS_TR *objectHandle,
611*758e9fbaSOystein Eftevaag     TPM2B_PRIVATE **outPrivate,
612*758e9fbaSOystein Eftevaag     TPM2B_PUBLIC **outPublic);
613*758e9fbaSOystein Eftevaag 
614*758e9fbaSOystein Eftevaag /* Table 37 - TPM2_Duplicate Command */
615*758e9fbaSOystein Eftevaag 
616*758e9fbaSOystein Eftevaag TSS2_RC
617*758e9fbaSOystein Eftevaag Esys_Duplicate(
618*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
619*758e9fbaSOystein Eftevaag     ESYS_TR objectHandle,
620*758e9fbaSOystein Eftevaag     ESYS_TR newParentHandle,
621*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
622*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
623*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
624*758e9fbaSOystein Eftevaag     const TPM2B_DATA *encryptionKeyIn,
625*758e9fbaSOystein Eftevaag     const TPMT_SYM_DEF_OBJECT *symmetricAlg,
626*758e9fbaSOystein Eftevaag     TPM2B_DATA **encryptionKeyOut,
627*758e9fbaSOystein Eftevaag     TPM2B_PRIVATE **duplicate,
628*758e9fbaSOystein Eftevaag     TPM2B_ENCRYPTED_SECRET **outSymSeed);
629*758e9fbaSOystein Eftevaag 
630*758e9fbaSOystein Eftevaag TSS2_RC
631*758e9fbaSOystein Eftevaag Esys_Duplicate_Async(
632*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
633*758e9fbaSOystein Eftevaag     ESYS_TR objectHandle,
634*758e9fbaSOystein Eftevaag     ESYS_TR newParentHandle,
635*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
636*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
637*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
638*758e9fbaSOystein Eftevaag     const TPM2B_DATA *encryptionKeyIn,
639*758e9fbaSOystein Eftevaag     const TPMT_SYM_DEF_OBJECT *symmetricAlg);
640*758e9fbaSOystein Eftevaag 
641*758e9fbaSOystein Eftevaag TSS2_RC
642*758e9fbaSOystein Eftevaag Esys_Duplicate_Finish(
643*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
644*758e9fbaSOystein Eftevaag     TPM2B_DATA **encryptionKeyOut,
645*758e9fbaSOystein Eftevaag     TPM2B_PRIVATE **duplicate,
646*758e9fbaSOystein Eftevaag     TPM2B_ENCRYPTED_SECRET **outSymSeed);
647*758e9fbaSOystein Eftevaag 
648*758e9fbaSOystein Eftevaag /* Table 39 - TPM2_Rewrap Command */
649*758e9fbaSOystein Eftevaag 
650*758e9fbaSOystein Eftevaag TSS2_RC
651*758e9fbaSOystein Eftevaag Esys_Rewrap(
652*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
653*758e9fbaSOystein Eftevaag     ESYS_TR oldParent,
654*758e9fbaSOystein Eftevaag     ESYS_TR newParent,
655*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
656*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
657*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
658*758e9fbaSOystein Eftevaag     const TPM2B_PRIVATE *inDuplicate,
659*758e9fbaSOystein Eftevaag     const TPM2B_NAME *name,
660*758e9fbaSOystein Eftevaag     const TPM2B_ENCRYPTED_SECRET *inSymSeed,
661*758e9fbaSOystein Eftevaag     TPM2B_PRIVATE **outDuplicate,
662*758e9fbaSOystein Eftevaag     TPM2B_ENCRYPTED_SECRET **outSymSeed);
663*758e9fbaSOystein Eftevaag 
664*758e9fbaSOystein Eftevaag TSS2_RC
665*758e9fbaSOystein Eftevaag Esys_Rewrap_Async(
666*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
667*758e9fbaSOystein Eftevaag     ESYS_TR oldParent,
668*758e9fbaSOystein Eftevaag     ESYS_TR newParent,
669*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
670*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
671*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
672*758e9fbaSOystein Eftevaag     const TPM2B_PRIVATE *inDuplicate,
673*758e9fbaSOystein Eftevaag     const TPM2B_NAME *name,
674*758e9fbaSOystein Eftevaag     const TPM2B_ENCRYPTED_SECRET *inSymSeed);
675*758e9fbaSOystein Eftevaag 
676*758e9fbaSOystein Eftevaag TSS2_RC
677*758e9fbaSOystein Eftevaag Esys_Rewrap_Finish(
678*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
679*758e9fbaSOystein Eftevaag     TPM2B_PRIVATE **outDuplicate,
680*758e9fbaSOystein Eftevaag     TPM2B_ENCRYPTED_SECRET **outSymSeed);
681*758e9fbaSOystein Eftevaag 
682*758e9fbaSOystein Eftevaag /* Table 41 - TPM2_Import Command */
683*758e9fbaSOystein Eftevaag 
684*758e9fbaSOystein Eftevaag TSS2_RC
685*758e9fbaSOystein Eftevaag Esys_Import(
686*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
687*758e9fbaSOystein Eftevaag     ESYS_TR parentHandle,
688*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
689*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
690*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
691*758e9fbaSOystein Eftevaag     const TPM2B_DATA *encryptionKey,
692*758e9fbaSOystein Eftevaag     const TPM2B_PUBLIC *objectPublic,
693*758e9fbaSOystein Eftevaag     const TPM2B_PRIVATE *duplicate,
694*758e9fbaSOystein Eftevaag     const TPM2B_ENCRYPTED_SECRET *inSymSeed,
695*758e9fbaSOystein Eftevaag     const TPMT_SYM_DEF_OBJECT *symmetricAlg,
696*758e9fbaSOystein Eftevaag     TPM2B_PRIVATE **outPrivate);
697*758e9fbaSOystein Eftevaag 
698*758e9fbaSOystein Eftevaag TSS2_RC
699*758e9fbaSOystein Eftevaag Esys_Import_Async(
700*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
701*758e9fbaSOystein Eftevaag     ESYS_TR parentHandle,
702*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
703*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
704*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
705*758e9fbaSOystein Eftevaag     const TPM2B_DATA *encryptionKey,
706*758e9fbaSOystein Eftevaag     const TPM2B_PUBLIC *objectPublic,
707*758e9fbaSOystein Eftevaag     const TPM2B_PRIVATE *duplicate,
708*758e9fbaSOystein Eftevaag     const TPM2B_ENCRYPTED_SECRET *inSymSeed,
709*758e9fbaSOystein Eftevaag     const TPMT_SYM_DEF_OBJECT *symmetricAlg);
710*758e9fbaSOystein Eftevaag 
711*758e9fbaSOystein Eftevaag TSS2_RC
712*758e9fbaSOystein Eftevaag Esys_Import_Finish(
713*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
714*758e9fbaSOystein Eftevaag     TPM2B_PRIVATE **outPrivate);
715*758e9fbaSOystein Eftevaag 
716*758e9fbaSOystein Eftevaag /* Table 45 - TPM2_RSA_Encrypt Command */
717*758e9fbaSOystein Eftevaag 
718*758e9fbaSOystein Eftevaag TSS2_RC
719*758e9fbaSOystein Eftevaag Esys_RSA_Encrypt(
720*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
721*758e9fbaSOystein Eftevaag     ESYS_TR keyHandle,
722*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
723*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
724*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
725*758e9fbaSOystein Eftevaag     const TPM2B_PUBLIC_KEY_RSA *message,
726*758e9fbaSOystein Eftevaag     const TPMT_RSA_DECRYPT *inScheme,
727*758e9fbaSOystein Eftevaag     const TPM2B_DATA *label,
728*758e9fbaSOystein Eftevaag     TPM2B_PUBLIC_KEY_RSA **outData);
729*758e9fbaSOystein Eftevaag 
730*758e9fbaSOystein Eftevaag TSS2_RC
731*758e9fbaSOystein Eftevaag Esys_RSA_Encrypt_Async(
732*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
733*758e9fbaSOystein Eftevaag     ESYS_TR keyHandle,
734*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
735*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
736*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
737*758e9fbaSOystein Eftevaag     const TPM2B_PUBLIC_KEY_RSA *message,
738*758e9fbaSOystein Eftevaag     const TPMT_RSA_DECRYPT *inScheme,
739*758e9fbaSOystein Eftevaag     const TPM2B_DATA *label);
740*758e9fbaSOystein Eftevaag 
741*758e9fbaSOystein Eftevaag TSS2_RC
742*758e9fbaSOystein Eftevaag Esys_RSA_Encrypt_Finish(
743*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
744*758e9fbaSOystein Eftevaag     TPM2B_PUBLIC_KEY_RSA **outData);
745*758e9fbaSOystein Eftevaag 
746*758e9fbaSOystein Eftevaag /* Table 47 - TPM2_RSA_Decrypt Command */
747*758e9fbaSOystein Eftevaag 
748*758e9fbaSOystein Eftevaag TSS2_RC
749*758e9fbaSOystein Eftevaag Esys_RSA_Decrypt(
750*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
751*758e9fbaSOystein Eftevaag     ESYS_TR keyHandle,
752*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
753*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
754*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
755*758e9fbaSOystein Eftevaag     const TPM2B_PUBLIC_KEY_RSA *cipherText,
756*758e9fbaSOystein Eftevaag     const TPMT_RSA_DECRYPT *inScheme,
757*758e9fbaSOystein Eftevaag     const TPM2B_DATA *label,
758*758e9fbaSOystein Eftevaag     TPM2B_PUBLIC_KEY_RSA **message);
759*758e9fbaSOystein Eftevaag 
760*758e9fbaSOystein Eftevaag TSS2_RC
761*758e9fbaSOystein Eftevaag Esys_RSA_Decrypt_Async(
762*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
763*758e9fbaSOystein Eftevaag     ESYS_TR keyHandle,
764*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
765*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
766*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
767*758e9fbaSOystein Eftevaag     const TPM2B_PUBLIC_KEY_RSA *cipherText,
768*758e9fbaSOystein Eftevaag     const TPMT_RSA_DECRYPT *inScheme,
769*758e9fbaSOystein Eftevaag     const TPM2B_DATA *label);
770*758e9fbaSOystein Eftevaag 
771*758e9fbaSOystein Eftevaag TSS2_RC
772*758e9fbaSOystein Eftevaag Esys_RSA_Decrypt_Finish(
773*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
774*758e9fbaSOystein Eftevaag     TPM2B_PUBLIC_KEY_RSA **message);
775*758e9fbaSOystein Eftevaag 
776*758e9fbaSOystein Eftevaag /* Table 49 - TPM2_ECDH_KeyGen Command */
777*758e9fbaSOystein Eftevaag 
778*758e9fbaSOystein Eftevaag TSS2_RC
779*758e9fbaSOystein Eftevaag Esys_ECDH_KeyGen(
780*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
781*758e9fbaSOystein Eftevaag     ESYS_TR keyHandle,
782*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
783*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
784*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
785*758e9fbaSOystein Eftevaag     TPM2B_ECC_POINT **zPoint,
786*758e9fbaSOystein Eftevaag     TPM2B_ECC_POINT **pubPoint);
787*758e9fbaSOystein Eftevaag 
788*758e9fbaSOystein Eftevaag TSS2_RC
789*758e9fbaSOystein Eftevaag Esys_ECDH_KeyGen_Async(
790*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
791*758e9fbaSOystein Eftevaag     ESYS_TR keyHandle,
792*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
793*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
794*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
795*758e9fbaSOystein Eftevaag 
796*758e9fbaSOystein Eftevaag TSS2_RC
797*758e9fbaSOystein Eftevaag Esys_ECDH_KeyGen_Finish(
798*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
799*758e9fbaSOystein Eftevaag     TPM2B_ECC_POINT **zPoint,
800*758e9fbaSOystein Eftevaag     TPM2B_ECC_POINT **pubPoint);
801*758e9fbaSOystein Eftevaag 
802*758e9fbaSOystein Eftevaag /* Table 51 - TPM2_ECDH_ZGen Command */
803*758e9fbaSOystein Eftevaag 
804*758e9fbaSOystein Eftevaag TSS2_RC
805*758e9fbaSOystein Eftevaag Esys_ECDH_ZGen(
806*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
807*758e9fbaSOystein Eftevaag     ESYS_TR keyHandle,
808*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
809*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
810*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
811*758e9fbaSOystein Eftevaag     const TPM2B_ECC_POINT *inPoint,
812*758e9fbaSOystein Eftevaag     TPM2B_ECC_POINT **outPoint);
813*758e9fbaSOystein Eftevaag 
814*758e9fbaSOystein Eftevaag TSS2_RC
815*758e9fbaSOystein Eftevaag Esys_ECDH_ZGen_Async(
816*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
817*758e9fbaSOystein Eftevaag     ESYS_TR keyHandle,
818*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
819*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
820*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
821*758e9fbaSOystein Eftevaag     const TPM2B_ECC_POINT *inPoint);
822*758e9fbaSOystein Eftevaag 
823*758e9fbaSOystein Eftevaag TSS2_RC
824*758e9fbaSOystein Eftevaag Esys_ECDH_ZGen_Finish(
825*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
826*758e9fbaSOystein Eftevaag     TPM2B_ECC_POINT **outPoint);
827*758e9fbaSOystein Eftevaag 
828*758e9fbaSOystein Eftevaag /* Table 53 - TPM2_ECC_Parameters Command */
829*758e9fbaSOystein Eftevaag 
830*758e9fbaSOystein Eftevaag TSS2_RC
831*758e9fbaSOystein Eftevaag Esys_ECC_Parameters(
832*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
833*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
834*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
835*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
836*758e9fbaSOystein Eftevaag     TPMI_ECC_CURVE curveID,
837*758e9fbaSOystein Eftevaag     TPMS_ALGORITHM_DETAIL_ECC **parameters);
838*758e9fbaSOystein Eftevaag 
839*758e9fbaSOystein Eftevaag TSS2_RC
840*758e9fbaSOystein Eftevaag Esys_ECC_Parameters_Async(
841*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
842*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
843*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
844*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
845*758e9fbaSOystein Eftevaag     TPMI_ECC_CURVE curveID);
846*758e9fbaSOystein Eftevaag 
847*758e9fbaSOystein Eftevaag TSS2_RC
848*758e9fbaSOystein Eftevaag Esys_ECC_Parameters_Finish(
849*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
850*758e9fbaSOystein Eftevaag     TPMS_ALGORITHM_DETAIL_ECC **parameters);
851*758e9fbaSOystein Eftevaag 
852*758e9fbaSOystein Eftevaag /* Table 55 - TPM2_ZGen_2Phase Command */
853*758e9fbaSOystein Eftevaag 
854*758e9fbaSOystein Eftevaag TSS2_RC
855*758e9fbaSOystein Eftevaag Esys_ZGen_2Phase(
856*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
857*758e9fbaSOystein Eftevaag     ESYS_TR keyA,
858*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
859*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
860*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
861*758e9fbaSOystein Eftevaag     const TPM2B_ECC_POINT *inQsB,
862*758e9fbaSOystein Eftevaag     const TPM2B_ECC_POINT *inQeB,
863*758e9fbaSOystein Eftevaag     TPMI_ECC_KEY_EXCHANGE inScheme,
864*758e9fbaSOystein Eftevaag     UINT16 counter,
865*758e9fbaSOystein Eftevaag     TPM2B_ECC_POINT **outZ1,
866*758e9fbaSOystein Eftevaag     TPM2B_ECC_POINT **outZ2);
867*758e9fbaSOystein Eftevaag 
868*758e9fbaSOystein Eftevaag TSS2_RC
869*758e9fbaSOystein Eftevaag Esys_ZGen_2Phase_Async(
870*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
871*758e9fbaSOystein Eftevaag     ESYS_TR keyA,
872*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
873*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
874*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
875*758e9fbaSOystein Eftevaag     const TPM2B_ECC_POINT *inQsB,
876*758e9fbaSOystein Eftevaag     const TPM2B_ECC_POINT *inQeB,
877*758e9fbaSOystein Eftevaag     TPMI_ECC_KEY_EXCHANGE inScheme,
878*758e9fbaSOystein Eftevaag     UINT16 counter);
879*758e9fbaSOystein Eftevaag 
880*758e9fbaSOystein Eftevaag TSS2_RC
881*758e9fbaSOystein Eftevaag Esys_ZGen_2Phase_Finish(
882*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
883*758e9fbaSOystein Eftevaag     TPM2B_ECC_POINT **outZ1,
884*758e9fbaSOystein Eftevaag     TPM2B_ECC_POINT **outZ2);
885*758e9fbaSOystein Eftevaag 
886*758e9fbaSOystein Eftevaag /* Table 58 - TPM2_EncryptDecrypt Command */
887*758e9fbaSOystein Eftevaag 
888*758e9fbaSOystein Eftevaag TSS2_RC
889*758e9fbaSOystein Eftevaag Esys_EncryptDecrypt(
890*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
891*758e9fbaSOystein Eftevaag     ESYS_TR keyHandle,
892*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
893*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
894*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
895*758e9fbaSOystein Eftevaag     TPMI_YES_NO decrypt,
896*758e9fbaSOystein Eftevaag     TPMI_ALG_SYM_MODE mode,
897*758e9fbaSOystein Eftevaag     const TPM2B_IV *ivIn,
898*758e9fbaSOystein Eftevaag     const TPM2B_MAX_BUFFER *inData,
899*758e9fbaSOystein Eftevaag     TPM2B_MAX_BUFFER **outData,
900*758e9fbaSOystein Eftevaag     TPM2B_IV **ivOut);
901*758e9fbaSOystein Eftevaag 
902*758e9fbaSOystein Eftevaag TSS2_RC
903*758e9fbaSOystein Eftevaag Esys_EncryptDecrypt_Async(
904*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
905*758e9fbaSOystein Eftevaag     ESYS_TR keyHandle,
906*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
907*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
908*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
909*758e9fbaSOystein Eftevaag     TPMI_YES_NO decrypt,
910*758e9fbaSOystein Eftevaag     TPMI_ALG_SYM_MODE mode,
911*758e9fbaSOystein Eftevaag     const TPM2B_IV *ivIn,
912*758e9fbaSOystein Eftevaag     const TPM2B_MAX_BUFFER *inData);
913*758e9fbaSOystein Eftevaag 
914*758e9fbaSOystein Eftevaag TSS2_RC
915*758e9fbaSOystein Eftevaag Esys_EncryptDecrypt_Finish(
916*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
917*758e9fbaSOystein Eftevaag     TPM2B_MAX_BUFFER **outData,
918*758e9fbaSOystein Eftevaag     TPM2B_IV **ivOut);
919*758e9fbaSOystein Eftevaag 
920*758e9fbaSOystein Eftevaag /* Table 60 - TPM2_EncryptDecrypt2 Command */
921*758e9fbaSOystein Eftevaag 
922*758e9fbaSOystein Eftevaag TSS2_RC
923*758e9fbaSOystein Eftevaag Esys_EncryptDecrypt2(
924*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
925*758e9fbaSOystein Eftevaag     ESYS_TR keyHandle,
926*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
927*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
928*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
929*758e9fbaSOystein Eftevaag     const TPM2B_MAX_BUFFER *inData,
930*758e9fbaSOystein Eftevaag     TPMI_YES_NO decrypt,
931*758e9fbaSOystein Eftevaag     TPMI_ALG_SYM_MODE mode,
932*758e9fbaSOystein Eftevaag     const TPM2B_IV *ivIn,
933*758e9fbaSOystein Eftevaag     TPM2B_MAX_BUFFER **outData,
934*758e9fbaSOystein Eftevaag     TPM2B_IV **ivOut);
935*758e9fbaSOystein Eftevaag 
936*758e9fbaSOystein Eftevaag TSS2_RC
937*758e9fbaSOystein Eftevaag Esys_EncryptDecrypt2_Async(
938*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
939*758e9fbaSOystein Eftevaag     ESYS_TR keyHandle,
940*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
941*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
942*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
943*758e9fbaSOystein Eftevaag     const TPM2B_MAX_BUFFER *inData,
944*758e9fbaSOystein Eftevaag     TPMI_YES_NO decrypt,
945*758e9fbaSOystein Eftevaag     TPMI_ALG_SYM_MODE mode,
946*758e9fbaSOystein Eftevaag     const TPM2B_IV *ivIn);
947*758e9fbaSOystein Eftevaag 
948*758e9fbaSOystein Eftevaag TSS2_RC
949*758e9fbaSOystein Eftevaag Esys_EncryptDecrypt2_Finish(
950*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
951*758e9fbaSOystein Eftevaag     TPM2B_MAX_BUFFER **outData,
952*758e9fbaSOystein Eftevaag     TPM2B_IV **ivOut);
953*758e9fbaSOystein Eftevaag 
954*758e9fbaSOystein Eftevaag /* Table 62 - TPM2_Hash Command */
955*758e9fbaSOystein Eftevaag 
956*758e9fbaSOystein Eftevaag TSS2_RC
957*758e9fbaSOystein Eftevaag Esys_Hash(
958*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
959*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
960*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
961*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
962*758e9fbaSOystein Eftevaag     const TPM2B_MAX_BUFFER *data,
963*758e9fbaSOystein Eftevaag     TPMI_ALG_HASH hashAlg,
964*758e9fbaSOystein Eftevaag     TPMI_RH_HIERARCHY hierarchy,
965*758e9fbaSOystein Eftevaag     TPM2B_DIGEST **outHash,
966*758e9fbaSOystein Eftevaag     TPMT_TK_HASHCHECK **validation);
967*758e9fbaSOystein Eftevaag 
968*758e9fbaSOystein Eftevaag TSS2_RC
969*758e9fbaSOystein Eftevaag Esys_Hash_Async(
970*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
971*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
972*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
973*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
974*758e9fbaSOystein Eftevaag     const TPM2B_MAX_BUFFER *data,
975*758e9fbaSOystein Eftevaag     TPMI_ALG_HASH hashAlg,
976*758e9fbaSOystein Eftevaag     TPMI_RH_HIERARCHY hierarchy);
977*758e9fbaSOystein Eftevaag 
978*758e9fbaSOystein Eftevaag TSS2_RC
979*758e9fbaSOystein Eftevaag Esys_Hash_Finish(
980*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
981*758e9fbaSOystein Eftevaag     TPM2B_DIGEST **outHash,
982*758e9fbaSOystein Eftevaag     TPMT_TK_HASHCHECK **validation);
983*758e9fbaSOystein Eftevaag 
984*758e9fbaSOystein Eftevaag /* Table 64 - TPM2_HMAC Command */
985*758e9fbaSOystein Eftevaag 
986*758e9fbaSOystein Eftevaag TSS2_RC
987*758e9fbaSOystein Eftevaag Esys_HMAC(
988*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
989*758e9fbaSOystein Eftevaag     ESYS_TR handle,
990*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
991*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
992*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
993*758e9fbaSOystein Eftevaag     const TPM2B_MAX_BUFFER *buffer,
994*758e9fbaSOystein Eftevaag     TPMI_ALG_HASH hashAlg,
995*758e9fbaSOystein Eftevaag     TPM2B_DIGEST **outHMAC);
996*758e9fbaSOystein Eftevaag 
997*758e9fbaSOystein Eftevaag TSS2_RC
998*758e9fbaSOystein Eftevaag Esys_HMAC_Async(
999*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1000*758e9fbaSOystein Eftevaag     ESYS_TR handle,
1001*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1002*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1003*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1004*758e9fbaSOystein Eftevaag     const TPM2B_MAX_BUFFER *buffer,
1005*758e9fbaSOystein Eftevaag     TPMI_ALG_HASH hashAlg);
1006*758e9fbaSOystein Eftevaag 
1007*758e9fbaSOystein Eftevaag TSS2_RC
1008*758e9fbaSOystein Eftevaag Esys_HMAC_Finish(
1009*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1010*758e9fbaSOystein Eftevaag     TPM2B_DIGEST **outHMAC);
1011*758e9fbaSOystein Eftevaag 
1012*758e9fbaSOystein Eftevaag /* Table 66 - TPM2_GetRandom Command */
1013*758e9fbaSOystein Eftevaag 
1014*758e9fbaSOystein Eftevaag TSS2_RC
1015*758e9fbaSOystein Eftevaag Esys_GetRandom(
1016*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1017*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1018*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1019*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1020*758e9fbaSOystein Eftevaag     UINT16 bytesRequested,
1021*758e9fbaSOystein Eftevaag     TPM2B_DIGEST **randomBytes);
1022*758e9fbaSOystein Eftevaag 
1023*758e9fbaSOystein Eftevaag TSS2_RC
1024*758e9fbaSOystein Eftevaag Esys_GetRandom_Async(
1025*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1026*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1027*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1028*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1029*758e9fbaSOystein Eftevaag     UINT16 bytesRequested);
1030*758e9fbaSOystein Eftevaag 
1031*758e9fbaSOystein Eftevaag TSS2_RC
1032*758e9fbaSOystein Eftevaag Esys_GetRandom_Finish(
1033*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1034*758e9fbaSOystein Eftevaag     TPM2B_DIGEST **randomBytes);
1035*758e9fbaSOystein Eftevaag 
1036*758e9fbaSOystein Eftevaag /* Table 68 - TPM2_StirRandom Command */
1037*758e9fbaSOystein Eftevaag 
1038*758e9fbaSOystein Eftevaag TSS2_RC
1039*758e9fbaSOystein Eftevaag Esys_StirRandom(
1040*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1041*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1042*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1043*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1044*758e9fbaSOystein Eftevaag     const TPM2B_SENSITIVE_DATA *inData);
1045*758e9fbaSOystein Eftevaag 
1046*758e9fbaSOystein Eftevaag TSS2_RC
1047*758e9fbaSOystein Eftevaag Esys_StirRandom_Async(
1048*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1049*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1050*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1051*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1052*758e9fbaSOystein Eftevaag     const TPM2B_SENSITIVE_DATA *inData);
1053*758e9fbaSOystein Eftevaag 
1054*758e9fbaSOystein Eftevaag TSS2_RC
1055*758e9fbaSOystein Eftevaag Esys_StirRandom_Finish(
1056*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
1057*758e9fbaSOystein Eftevaag 
1058*758e9fbaSOystein Eftevaag /* Table 71 - TPM2_HMAC_Start Command */
1059*758e9fbaSOystein Eftevaag 
1060*758e9fbaSOystein Eftevaag TSS2_RC
1061*758e9fbaSOystein Eftevaag Esys_HMAC_Start(
1062*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1063*758e9fbaSOystein Eftevaag     ESYS_TR handle,
1064*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1065*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1066*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1067*758e9fbaSOystein Eftevaag     const TPM2B_AUTH *auth,
1068*758e9fbaSOystein Eftevaag     TPMI_ALG_HASH hashAlg,
1069*758e9fbaSOystein Eftevaag     ESYS_TR *sequenceHandle);
1070*758e9fbaSOystein Eftevaag 
1071*758e9fbaSOystein Eftevaag TSS2_RC
1072*758e9fbaSOystein Eftevaag Esys_HMAC_Start_Async(
1073*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1074*758e9fbaSOystein Eftevaag     ESYS_TR handle,
1075*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1076*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1077*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1078*758e9fbaSOystein Eftevaag     const TPM2B_AUTH *auth,
1079*758e9fbaSOystein Eftevaag     TPMI_ALG_HASH hashAlg);
1080*758e9fbaSOystein Eftevaag 
1081*758e9fbaSOystein Eftevaag TSS2_RC
1082*758e9fbaSOystein Eftevaag Esys_HMAC_Start_Finish(
1083*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1084*758e9fbaSOystein Eftevaag     ESYS_TR *sequenceHandle);
1085*758e9fbaSOystein Eftevaag 
1086*758e9fbaSOystein Eftevaag /* Table 73 - TPM2_HashSequenceStart Command */
1087*758e9fbaSOystein Eftevaag 
1088*758e9fbaSOystein Eftevaag TSS2_RC
1089*758e9fbaSOystein Eftevaag Esys_HashSequenceStart(
1090*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1091*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1092*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1093*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1094*758e9fbaSOystein Eftevaag     const TPM2B_AUTH *auth,
1095*758e9fbaSOystein Eftevaag     TPMI_ALG_HASH hashAlg,
1096*758e9fbaSOystein Eftevaag     ESYS_TR *sequenceHandle);
1097*758e9fbaSOystein Eftevaag 
1098*758e9fbaSOystein Eftevaag TSS2_RC
1099*758e9fbaSOystein Eftevaag Esys_HashSequenceStart_Async(
1100*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1101*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1102*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1103*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1104*758e9fbaSOystein Eftevaag     const TPM2B_AUTH *auth,
1105*758e9fbaSOystein Eftevaag     TPMI_ALG_HASH hashAlg);
1106*758e9fbaSOystein Eftevaag 
1107*758e9fbaSOystein Eftevaag TSS2_RC
1108*758e9fbaSOystein Eftevaag Esys_HashSequenceStart_Finish(
1109*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1110*758e9fbaSOystein Eftevaag     ESYS_TR *sequenceHandle);
1111*758e9fbaSOystein Eftevaag 
1112*758e9fbaSOystein Eftevaag /* Table 75 - TPM2_SequenceUpdate Command */
1113*758e9fbaSOystein Eftevaag 
1114*758e9fbaSOystein Eftevaag TSS2_RC
1115*758e9fbaSOystein Eftevaag Esys_SequenceUpdate(
1116*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1117*758e9fbaSOystein Eftevaag     ESYS_TR sequenceHandle,
1118*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1119*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1120*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1121*758e9fbaSOystein Eftevaag     const TPM2B_MAX_BUFFER *buffer);
1122*758e9fbaSOystein Eftevaag 
1123*758e9fbaSOystein Eftevaag TSS2_RC
1124*758e9fbaSOystein Eftevaag Esys_SequenceUpdate_Async(
1125*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1126*758e9fbaSOystein Eftevaag     ESYS_TR sequenceHandle,
1127*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1128*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1129*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1130*758e9fbaSOystein Eftevaag     const TPM2B_MAX_BUFFER *buffer);
1131*758e9fbaSOystein Eftevaag 
1132*758e9fbaSOystein Eftevaag TSS2_RC
1133*758e9fbaSOystein Eftevaag Esys_SequenceUpdate_Finish(
1134*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
1135*758e9fbaSOystein Eftevaag 
1136*758e9fbaSOystein Eftevaag /* Table 77 - TPM2_SequenceComplete Command */
1137*758e9fbaSOystein Eftevaag 
1138*758e9fbaSOystein Eftevaag TSS2_RC
1139*758e9fbaSOystein Eftevaag Esys_SequenceComplete(
1140*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1141*758e9fbaSOystein Eftevaag     ESYS_TR sequenceHandle,
1142*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1143*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1144*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1145*758e9fbaSOystein Eftevaag     const TPM2B_MAX_BUFFER *buffer,
1146*758e9fbaSOystein Eftevaag     TPMI_RH_HIERARCHY hierarchy,
1147*758e9fbaSOystein Eftevaag     TPM2B_DIGEST **result,
1148*758e9fbaSOystein Eftevaag     TPMT_TK_HASHCHECK **validation);
1149*758e9fbaSOystein Eftevaag 
1150*758e9fbaSOystein Eftevaag TSS2_RC
1151*758e9fbaSOystein Eftevaag Esys_SequenceComplete_Async(
1152*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1153*758e9fbaSOystein Eftevaag     ESYS_TR sequenceHandle,
1154*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1155*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1156*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1157*758e9fbaSOystein Eftevaag     const TPM2B_MAX_BUFFER *buffer,
1158*758e9fbaSOystein Eftevaag     TPMI_RH_HIERARCHY hierarchy);
1159*758e9fbaSOystein Eftevaag 
1160*758e9fbaSOystein Eftevaag TSS2_RC
1161*758e9fbaSOystein Eftevaag Esys_SequenceComplete_Finish(
1162*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1163*758e9fbaSOystein Eftevaag     TPM2B_DIGEST **result,
1164*758e9fbaSOystein Eftevaag     TPMT_TK_HASHCHECK **validation);
1165*758e9fbaSOystein Eftevaag 
1166*758e9fbaSOystein Eftevaag /* Table 79 - TPM2_EventSequenceComplete Command */
1167*758e9fbaSOystein Eftevaag 
1168*758e9fbaSOystein Eftevaag TSS2_RC
1169*758e9fbaSOystein Eftevaag Esys_EventSequenceComplete(
1170*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1171*758e9fbaSOystein Eftevaag     ESYS_TR pcrHandle,
1172*758e9fbaSOystein Eftevaag     ESYS_TR sequenceHandle,
1173*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1174*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1175*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1176*758e9fbaSOystein Eftevaag     const TPM2B_MAX_BUFFER *buffer,
1177*758e9fbaSOystein Eftevaag     TPML_DIGEST_VALUES **results);
1178*758e9fbaSOystein Eftevaag 
1179*758e9fbaSOystein Eftevaag TSS2_RC
1180*758e9fbaSOystein Eftevaag Esys_EventSequenceComplete_Async(
1181*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1182*758e9fbaSOystein Eftevaag     ESYS_TR pcrHandle,
1183*758e9fbaSOystein Eftevaag     ESYS_TR sequenceHandle,
1184*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1185*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1186*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1187*758e9fbaSOystein Eftevaag     const TPM2B_MAX_BUFFER *buffer);
1188*758e9fbaSOystein Eftevaag 
1189*758e9fbaSOystein Eftevaag TSS2_RC
1190*758e9fbaSOystein Eftevaag Esys_EventSequenceComplete_Finish(
1191*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1192*758e9fbaSOystein Eftevaag     TPML_DIGEST_VALUES **results);
1193*758e9fbaSOystein Eftevaag 
1194*758e9fbaSOystein Eftevaag /* Table 81 - TPM2_Certify Command */
1195*758e9fbaSOystein Eftevaag 
1196*758e9fbaSOystein Eftevaag TSS2_RC
1197*758e9fbaSOystein Eftevaag Esys_Certify(
1198*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1199*758e9fbaSOystein Eftevaag     ESYS_TR objectHandle,
1200*758e9fbaSOystein Eftevaag     ESYS_TR signHandle,
1201*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1202*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1203*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1204*758e9fbaSOystein Eftevaag     const TPM2B_DATA *qualifyingData,
1205*758e9fbaSOystein Eftevaag     const TPMT_SIG_SCHEME *inScheme,
1206*758e9fbaSOystein Eftevaag     TPM2B_ATTEST **certifyInfo,
1207*758e9fbaSOystein Eftevaag     TPMT_SIGNATURE **signature);
1208*758e9fbaSOystein Eftevaag 
1209*758e9fbaSOystein Eftevaag TSS2_RC
1210*758e9fbaSOystein Eftevaag Esys_Certify_Async(
1211*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1212*758e9fbaSOystein Eftevaag     ESYS_TR objectHandle,
1213*758e9fbaSOystein Eftevaag     ESYS_TR signHandle,
1214*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1215*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1216*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1217*758e9fbaSOystein Eftevaag     const TPM2B_DATA *qualifyingData,
1218*758e9fbaSOystein Eftevaag     const TPMT_SIG_SCHEME *inScheme);
1219*758e9fbaSOystein Eftevaag 
1220*758e9fbaSOystein Eftevaag TSS2_RC
1221*758e9fbaSOystein Eftevaag Esys_Certify_Finish(
1222*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1223*758e9fbaSOystein Eftevaag     TPM2B_ATTEST **certifyInfo,
1224*758e9fbaSOystein Eftevaag     TPMT_SIGNATURE **signature);
1225*758e9fbaSOystein Eftevaag 
1226*758e9fbaSOystein Eftevaag /* Table 83 - TPM2_CertifyCreation Command */
1227*758e9fbaSOystein Eftevaag 
1228*758e9fbaSOystein Eftevaag TSS2_RC
1229*758e9fbaSOystein Eftevaag Esys_CertifyCreation(
1230*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1231*758e9fbaSOystein Eftevaag     ESYS_TR signHandle,
1232*758e9fbaSOystein Eftevaag     ESYS_TR objectHandle,
1233*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1234*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1235*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1236*758e9fbaSOystein Eftevaag     const TPM2B_DATA *qualifyingData,
1237*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *creationHash,
1238*758e9fbaSOystein Eftevaag     const TPMT_SIG_SCHEME *inScheme,
1239*758e9fbaSOystein Eftevaag     const TPMT_TK_CREATION *creationTicket,
1240*758e9fbaSOystein Eftevaag     TPM2B_ATTEST **certifyInfo,
1241*758e9fbaSOystein Eftevaag     TPMT_SIGNATURE **signature);
1242*758e9fbaSOystein Eftevaag 
1243*758e9fbaSOystein Eftevaag TSS2_RC
1244*758e9fbaSOystein Eftevaag Esys_CertifyCreation_Async(
1245*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1246*758e9fbaSOystein Eftevaag     ESYS_TR signHandle,
1247*758e9fbaSOystein Eftevaag     ESYS_TR objectHandle,
1248*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1249*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1250*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1251*758e9fbaSOystein Eftevaag     const TPM2B_DATA *qualifyingData,
1252*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *creationHash,
1253*758e9fbaSOystein Eftevaag     const TPMT_SIG_SCHEME *inScheme,
1254*758e9fbaSOystein Eftevaag     const TPMT_TK_CREATION *creationTicket);
1255*758e9fbaSOystein Eftevaag 
1256*758e9fbaSOystein Eftevaag TSS2_RC
1257*758e9fbaSOystein Eftevaag Esys_CertifyCreation_Finish(
1258*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1259*758e9fbaSOystein Eftevaag     TPM2B_ATTEST **certifyInfo,
1260*758e9fbaSOystein Eftevaag     TPMT_SIGNATURE **signature);
1261*758e9fbaSOystein Eftevaag 
1262*758e9fbaSOystein Eftevaag /* Table 85 - TPM2_Quote Command */
1263*758e9fbaSOystein Eftevaag 
1264*758e9fbaSOystein Eftevaag TSS2_RC
1265*758e9fbaSOystein Eftevaag Esys_Quote(
1266*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1267*758e9fbaSOystein Eftevaag     ESYS_TR signHandle,
1268*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1269*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1270*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1271*758e9fbaSOystein Eftevaag     const TPM2B_DATA *qualifyingData,
1272*758e9fbaSOystein Eftevaag     const TPMT_SIG_SCHEME *inScheme,
1273*758e9fbaSOystein Eftevaag     const TPML_PCR_SELECTION *PCRselect,
1274*758e9fbaSOystein Eftevaag     TPM2B_ATTEST **quoted,
1275*758e9fbaSOystein Eftevaag     TPMT_SIGNATURE **signature);
1276*758e9fbaSOystein Eftevaag 
1277*758e9fbaSOystein Eftevaag TSS2_RC
1278*758e9fbaSOystein Eftevaag Esys_Quote_Async(
1279*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1280*758e9fbaSOystein Eftevaag     ESYS_TR signHandle,
1281*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1282*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1283*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1284*758e9fbaSOystein Eftevaag     const TPM2B_DATA *qualifyingData,
1285*758e9fbaSOystein Eftevaag     const TPMT_SIG_SCHEME *inScheme,
1286*758e9fbaSOystein Eftevaag     const TPML_PCR_SELECTION *PCRselect);
1287*758e9fbaSOystein Eftevaag 
1288*758e9fbaSOystein Eftevaag TSS2_RC
1289*758e9fbaSOystein Eftevaag Esys_Quote_Finish(
1290*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1291*758e9fbaSOystein Eftevaag     TPM2B_ATTEST **quoted,
1292*758e9fbaSOystein Eftevaag     TPMT_SIGNATURE **signature);
1293*758e9fbaSOystein Eftevaag 
1294*758e9fbaSOystein Eftevaag /* Table 87 - TPM2_GetSessionAuditDigest Command */
1295*758e9fbaSOystein Eftevaag 
1296*758e9fbaSOystein Eftevaag TSS2_RC
1297*758e9fbaSOystein Eftevaag Esys_GetSessionAuditDigest(
1298*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1299*758e9fbaSOystein Eftevaag     ESYS_TR privacyAdminHandle,
1300*758e9fbaSOystein Eftevaag     ESYS_TR signHandle,
1301*758e9fbaSOystein Eftevaag     ESYS_TR sessionHandle,
1302*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1303*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1304*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1305*758e9fbaSOystein Eftevaag     const TPM2B_DATA *qualifyingData,
1306*758e9fbaSOystein Eftevaag     const TPMT_SIG_SCHEME *inScheme,
1307*758e9fbaSOystein Eftevaag     TPM2B_ATTEST **auditInfo,
1308*758e9fbaSOystein Eftevaag     TPMT_SIGNATURE **signature);
1309*758e9fbaSOystein Eftevaag 
1310*758e9fbaSOystein Eftevaag TSS2_RC
1311*758e9fbaSOystein Eftevaag Esys_GetSessionAuditDigest_Async(
1312*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1313*758e9fbaSOystein Eftevaag     ESYS_TR privacyAdminHandle,
1314*758e9fbaSOystein Eftevaag     ESYS_TR signHandle,
1315*758e9fbaSOystein Eftevaag     ESYS_TR sessionHandle,
1316*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1317*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1318*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1319*758e9fbaSOystein Eftevaag     const TPM2B_DATA *qualifyingData,
1320*758e9fbaSOystein Eftevaag     const TPMT_SIG_SCHEME *inScheme);
1321*758e9fbaSOystein Eftevaag 
1322*758e9fbaSOystein Eftevaag TSS2_RC
1323*758e9fbaSOystein Eftevaag Esys_GetSessionAuditDigest_Finish(
1324*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1325*758e9fbaSOystein Eftevaag     TPM2B_ATTEST **auditInfo,
1326*758e9fbaSOystein Eftevaag     TPMT_SIGNATURE **signature);
1327*758e9fbaSOystein Eftevaag 
1328*758e9fbaSOystein Eftevaag /* Table 89 - TPM2_GetCommandAuditDigest Command */
1329*758e9fbaSOystein Eftevaag 
1330*758e9fbaSOystein Eftevaag TSS2_RC
1331*758e9fbaSOystein Eftevaag Esys_GetCommandAuditDigest(
1332*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1333*758e9fbaSOystein Eftevaag     ESYS_TR privacyHandle,
1334*758e9fbaSOystein Eftevaag     ESYS_TR signHandle,
1335*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1336*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1337*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1338*758e9fbaSOystein Eftevaag     const TPM2B_DATA *qualifyingData,
1339*758e9fbaSOystein Eftevaag     const TPMT_SIG_SCHEME *inScheme,
1340*758e9fbaSOystein Eftevaag     TPM2B_ATTEST **auditInfo,
1341*758e9fbaSOystein Eftevaag     TPMT_SIGNATURE **signature);
1342*758e9fbaSOystein Eftevaag 
1343*758e9fbaSOystein Eftevaag TSS2_RC
1344*758e9fbaSOystein Eftevaag Esys_GetCommandAuditDigest_Async(
1345*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1346*758e9fbaSOystein Eftevaag     ESYS_TR privacyHandle,
1347*758e9fbaSOystein Eftevaag     ESYS_TR signHandle,
1348*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1349*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1350*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1351*758e9fbaSOystein Eftevaag     const TPM2B_DATA *qualifyingData,
1352*758e9fbaSOystein Eftevaag     const TPMT_SIG_SCHEME *inScheme);
1353*758e9fbaSOystein Eftevaag 
1354*758e9fbaSOystein Eftevaag TSS2_RC
1355*758e9fbaSOystein Eftevaag Esys_GetCommandAuditDigest_Finish(
1356*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1357*758e9fbaSOystein Eftevaag     TPM2B_ATTEST **auditInfo,
1358*758e9fbaSOystein Eftevaag     TPMT_SIGNATURE **signature);
1359*758e9fbaSOystein Eftevaag 
1360*758e9fbaSOystein Eftevaag /* Table 91 - TPM2_GetTime Command */
1361*758e9fbaSOystein Eftevaag 
1362*758e9fbaSOystein Eftevaag TSS2_RC
1363*758e9fbaSOystein Eftevaag Esys_GetTime(
1364*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1365*758e9fbaSOystein Eftevaag     ESYS_TR privacyAdminHandle,
1366*758e9fbaSOystein Eftevaag     ESYS_TR signHandle,
1367*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1368*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1369*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1370*758e9fbaSOystein Eftevaag     const TPM2B_DATA *qualifyingData,
1371*758e9fbaSOystein Eftevaag     const TPMT_SIG_SCHEME *inScheme,
1372*758e9fbaSOystein Eftevaag     TPM2B_ATTEST **timeInfo,
1373*758e9fbaSOystein Eftevaag     TPMT_SIGNATURE **signature);
1374*758e9fbaSOystein Eftevaag 
1375*758e9fbaSOystein Eftevaag TSS2_RC
1376*758e9fbaSOystein Eftevaag Esys_GetTime_Async(
1377*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1378*758e9fbaSOystein Eftevaag     ESYS_TR privacyAdminHandle,
1379*758e9fbaSOystein Eftevaag     ESYS_TR signHandle,
1380*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1381*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1382*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1383*758e9fbaSOystein Eftevaag     const TPM2B_DATA *qualifyingData,
1384*758e9fbaSOystein Eftevaag     const TPMT_SIG_SCHEME *inScheme);
1385*758e9fbaSOystein Eftevaag 
1386*758e9fbaSOystein Eftevaag TSS2_RC
1387*758e9fbaSOystein Eftevaag Esys_GetTime_Finish(
1388*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1389*758e9fbaSOystein Eftevaag     TPM2B_ATTEST **timeInfo,
1390*758e9fbaSOystein Eftevaag     TPMT_SIGNATURE **signature);
1391*758e9fbaSOystein Eftevaag 
1392*758e9fbaSOystein Eftevaag /* Table 93 - TPM2_Commit Command */
1393*758e9fbaSOystein Eftevaag 
1394*758e9fbaSOystein Eftevaag TSS2_RC
1395*758e9fbaSOystein Eftevaag Esys_Commit(
1396*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1397*758e9fbaSOystein Eftevaag     ESYS_TR signHandle,
1398*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1399*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1400*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1401*758e9fbaSOystein Eftevaag     const TPM2B_ECC_POINT *P1,
1402*758e9fbaSOystein Eftevaag     const TPM2B_SENSITIVE_DATA *s2,
1403*758e9fbaSOystein Eftevaag     const TPM2B_ECC_PARAMETER *y2,
1404*758e9fbaSOystein Eftevaag     TPM2B_ECC_POINT **K,
1405*758e9fbaSOystein Eftevaag     TPM2B_ECC_POINT **L,
1406*758e9fbaSOystein Eftevaag     TPM2B_ECC_POINT **E,
1407*758e9fbaSOystein Eftevaag     UINT16 *counter);
1408*758e9fbaSOystein Eftevaag 
1409*758e9fbaSOystein Eftevaag TSS2_RC
1410*758e9fbaSOystein Eftevaag Esys_Commit_Async(
1411*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1412*758e9fbaSOystein Eftevaag     ESYS_TR signHandle,
1413*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1414*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1415*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1416*758e9fbaSOystein Eftevaag     const TPM2B_ECC_POINT *P1,
1417*758e9fbaSOystein Eftevaag     const TPM2B_SENSITIVE_DATA *s2,
1418*758e9fbaSOystein Eftevaag     const TPM2B_ECC_PARAMETER *y2);
1419*758e9fbaSOystein Eftevaag 
1420*758e9fbaSOystein Eftevaag TSS2_RC
1421*758e9fbaSOystein Eftevaag Esys_Commit_Finish(
1422*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1423*758e9fbaSOystein Eftevaag     TPM2B_ECC_POINT **K,
1424*758e9fbaSOystein Eftevaag     TPM2B_ECC_POINT **L,
1425*758e9fbaSOystein Eftevaag     TPM2B_ECC_POINT **E,
1426*758e9fbaSOystein Eftevaag     UINT16 *counter);
1427*758e9fbaSOystein Eftevaag 
1428*758e9fbaSOystein Eftevaag /* Table 95 - TPM2_EC_Ephemeral Command */
1429*758e9fbaSOystein Eftevaag 
1430*758e9fbaSOystein Eftevaag TSS2_RC
1431*758e9fbaSOystein Eftevaag Esys_EC_Ephemeral(
1432*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1433*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1434*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1435*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1436*758e9fbaSOystein Eftevaag     TPMI_ECC_CURVE curveID,
1437*758e9fbaSOystein Eftevaag     TPM2B_ECC_POINT **Q,
1438*758e9fbaSOystein Eftevaag     UINT16 *counter);
1439*758e9fbaSOystein Eftevaag 
1440*758e9fbaSOystein Eftevaag TSS2_RC
1441*758e9fbaSOystein Eftevaag Esys_EC_Ephemeral_Async(
1442*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1443*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1444*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1445*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1446*758e9fbaSOystein Eftevaag     TPMI_ECC_CURVE curveID);
1447*758e9fbaSOystein Eftevaag 
1448*758e9fbaSOystein Eftevaag TSS2_RC
1449*758e9fbaSOystein Eftevaag Esys_EC_Ephemeral_Finish(
1450*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1451*758e9fbaSOystein Eftevaag     TPM2B_ECC_POINT **Q,
1452*758e9fbaSOystein Eftevaag     UINT16 *counter);
1453*758e9fbaSOystein Eftevaag 
1454*758e9fbaSOystein Eftevaag /* Table 97 - TPM2_VerifySignature Command */
1455*758e9fbaSOystein Eftevaag 
1456*758e9fbaSOystein Eftevaag TSS2_RC
1457*758e9fbaSOystein Eftevaag Esys_VerifySignature(
1458*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1459*758e9fbaSOystein Eftevaag     ESYS_TR keyHandle,
1460*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1461*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1462*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1463*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *digest,
1464*758e9fbaSOystein Eftevaag     const TPMT_SIGNATURE *signature,
1465*758e9fbaSOystein Eftevaag     TPMT_TK_VERIFIED **validation);
1466*758e9fbaSOystein Eftevaag 
1467*758e9fbaSOystein Eftevaag TSS2_RC
1468*758e9fbaSOystein Eftevaag Esys_VerifySignature_Async(
1469*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1470*758e9fbaSOystein Eftevaag     ESYS_TR keyHandle,
1471*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1472*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1473*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1474*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *digest,
1475*758e9fbaSOystein Eftevaag     const TPMT_SIGNATURE *signature);
1476*758e9fbaSOystein Eftevaag 
1477*758e9fbaSOystein Eftevaag TSS2_RC
1478*758e9fbaSOystein Eftevaag Esys_VerifySignature_Finish(
1479*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1480*758e9fbaSOystein Eftevaag     TPMT_TK_VERIFIED **validation);
1481*758e9fbaSOystein Eftevaag 
1482*758e9fbaSOystein Eftevaag /* Table 99 - TPM2_Sign Command */
1483*758e9fbaSOystein Eftevaag 
1484*758e9fbaSOystein Eftevaag TSS2_RC
1485*758e9fbaSOystein Eftevaag Esys_Sign(
1486*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1487*758e9fbaSOystein Eftevaag     ESYS_TR keyHandle,
1488*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1489*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1490*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1491*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *digest,
1492*758e9fbaSOystein Eftevaag     const TPMT_SIG_SCHEME *inScheme,
1493*758e9fbaSOystein Eftevaag     const TPMT_TK_HASHCHECK *validation,
1494*758e9fbaSOystein Eftevaag     TPMT_SIGNATURE **signature);
1495*758e9fbaSOystein Eftevaag 
1496*758e9fbaSOystein Eftevaag TSS2_RC
1497*758e9fbaSOystein Eftevaag Esys_Sign_Async(
1498*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1499*758e9fbaSOystein Eftevaag     ESYS_TR keyHandle,
1500*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1501*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1502*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1503*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *digest,
1504*758e9fbaSOystein Eftevaag     const TPMT_SIG_SCHEME *inScheme,
1505*758e9fbaSOystein Eftevaag     const TPMT_TK_HASHCHECK *validation);
1506*758e9fbaSOystein Eftevaag 
1507*758e9fbaSOystein Eftevaag TSS2_RC
1508*758e9fbaSOystein Eftevaag Esys_Sign_Finish(
1509*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1510*758e9fbaSOystein Eftevaag     TPMT_SIGNATURE **signature);
1511*758e9fbaSOystein Eftevaag 
1512*758e9fbaSOystein Eftevaag /* Table 101 - TPM2_SetCommandCodeAuditStatus Command */
1513*758e9fbaSOystein Eftevaag 
1514*758e9fbaSOystein Eftevaag TSS2_RC
1515*758e9fbaSOystein Eftevaag Esys_SetCommandCodeAuditStatus(
1516*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1517*758e9fbaSOystein Eftevaag     ESYS_TR auth,
1518*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1519*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1520*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1521*758e9fbaSOystein Eftevaag     TPMI_ALG_HASH auditAlg,
1522*758e9fbaSOystein Eftevaag     const TPML_CC *setList,
1523*758e9fbaSOystein Eftevaag     const TPML_CC *clearList);
1524*758e9fbaSOystein Eftevaag 
1525*758e9fbaSOystein Eftevaag TSS2_RC
1526*758e9fbaSOystein Eftevaag Esys_SetCommandCodeAuditStatus_Async(
1527*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1528*758e9fbaSOystein Eftevaag     ESYS_TR auth,
1529*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1530*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1531*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1532*758e9fbaSOystein Eftevaag     TPMI_ALG_HASH auditAlg,
1533*758e9fbaSOystein Eftevaag     const TPML_CC *setList,
1534*758e9fbaSOystein Eftevaag     const TPML_CC *clearList);
1535*758e9fbaSOystein Eftevaag 
1536*758e9fbaSOystein Eftevaag TSS2_RC
1537*758e9fbaSOystein Eftevaag Esys_SetCommandCodeAuditStatus_Finish(
1538*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
1539*758e9fbaSOystein Eftevaag 
1540*758e9fbaSOystein Eftevaag /* Table 103 - TPM2_PCR_Extend Command */
1541*758e9fbaSOystein Eftevaag 
1542*758e9fbaSOystein Eftevaag TSS2_RC
1543*758e9fbaSOystein Eftevaag Esys_PCR_Extend(
1544*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1545*758e9fbaSOystein Eftevaag     ESYS_TR pcrHandle,
1546*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1547*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1548*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1549*758e9fbaSOystein Eftevaag     const TPML_DIGEST_VALUES *digests);
1550*758e9fbaSOystein Eftevaag 
1551*758e9fbaSOystein Eftevaag TSS2_RC
1552*758e9fbaSOystein Eftevaag Esys_PCR_Extend_Async(
1553*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1554*758e9fbaSOystein Eftevaag     ESYS_TR pcrHandle,
1555*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1556*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1557*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1558*758e9fbaSOystein Eftevaag     const TPML_DIGEST_VALUES *digests);
1559*758e9fbaSOystein Eftevaag 
1560*758e9fbaSOystein Eftevaag TSS2_RC
1561*758e9fbaSOystein Eftevaag Esys_PCR_Extend_Finish(
1562*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
1563*758e9fbaSOystein Eftevaag 
1564*758e9fbaSOystein Eftevaag /* Table 105 - TPM2_PCR_Event Command */
1565*758e9fbaSOystein Eftevaag 
1566*758e9fbaSOystein Eftevaag TSS2_RC
1567*758e9fbaSOystein Eftevaag Esys_PCR_Event(
1568*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1569*758e9fbaSOystein Eftevaag     ESYS_TR pcrHandle,
1570*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1571*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1572*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1573*758e9fbaSOystein Eftevaag     const TPM2B_EVENT *eventData,
1574*758e9fbaSOystein Eftevaag     TPML_DIGEST_VALUES **digests);
1575*758e9fbaSOystein Eftevaag 
1576*758e9fbaSOystein Eftevaag TSS2_RC
1577*758e9fbaSOystein Eftevaag Esys_PCR_Event_Async(
1578*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1579*758e9fbaSOystein Eftevaag     ESYS_TR pcrHandle,
1580*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1581*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1582*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1583*758e9fbaSOystein Eftevaag     const TPM2B_EVENT *eventData);
1584*758e9fbaSOystein Eftevaag 
1585*758e9fbaSOystein Eftevaag TSS2_RC
1586*758e9fbaSOystein Eftevaag Esys_PCR_Event_Finish(
1587*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1588*758e9fbaSOystein Eftevaag     TPML_DIGEST_VALUES **digests);
1589*758e9fbaSOystein Eftevaag 
1590*758e9fbaSOystein Eftevaag /* Table 107 - TPM2_PCR_Read Command */
1591*758e9fbaSOystein Eftevaag 
1592*758e9fbaSOystein Eftevaag TSS2_RC
1593*758e9fbaSOystein Eftevaag Esys_PCR_Read(
1594*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1595*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1596*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1597*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1598*758e9fbaSOystein Eftevaag     const TPML_PCR_SELECTION *pcrSelectionIn,
1599*758e9fbaSOystein Eftevaag     UINT32 *pcrUpdateCounter,
1600*758e9fbaSOystein Eftevaag     TPML_PCR_SELECTION **pcrSelectionOut,
1601*758e9fbaSOystein Eftevaag     TPML_DIGEST **pcrValues);
1602*758e9fbaSOystein Eftevaag 
1603*758e9fbaSOystein Eftevaag TSS2_RC
1604*758e9fbaSOystein Eftevaag Esys_PCR_Read_Async(
1605*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1606*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1607*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1608*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1609*758e9fbaSOystein Eftevaag     const TPML_PCR_SELECTION *pcrSelectionIn);
1610*758e9fbaSOystein Eftevaag 
1611*758e9fbaSOystein Eftevaag TSS2_RC
1612*758e9fbaSOystein Eftevaag Esys_PCR_Read_Finish(
1613*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1614*758e9fbaSOystein Eftevaag     UINT32 *pcrUpdateCounter,
1615*758e9fbaSOystein Eftevaag     TPML_PCR_SELECTION **pcrSelectionOut,
1616*758e9fbaSOystein Eftevaag     TPML_DIGEST **pcrValues);
1617*758e9fbaSOystein Eftevaag 
1618*758e9fbaSOystein Eftevaag /* Table 109 - TPM2_PCR_Allocate Command */
1619*758e9fbaSOystein Eftevaag 
1620*758e9fbaSOystein Eftevaag TSS2_RC
1621*758e9fbaSOystein Eftevaag Esys_PCR_Allocate(
1622*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1623*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
1624*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1625*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1626*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1627*758e9fbaSOystein Eftevaag     const TPML_PCR_SELECTION *pcrAllocation,
1628*758e9fbaSOystein Eftevaag     TPMI_YES_NO *allocationSuccess,
1629*758e9fbaSOystein Eftevaag     UINT32 *maxPCR,
1630*758e9fbaSOystein Eftevaag     UINT32 *sizeNeeded,
1631*758e9fbaSOystein Eftevaag     UINT32 *sizeAvailable);
1632*758e9fbaSOystein Eftevaag 
1633*758e9fbaSOystein Eftevaag TSS2_RC
1634*758e9fbaSOystein Eftevaag Esys_PCR_Allocate_Async(
1635*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1636*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
1637*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1638*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1639*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1640*758e9fbaSOystein Eftevaag     const TPML_PCR_SELECTION *pcrAllocation);
1641*758e9fbaSOystein Eftevaag 
1642*758e9fbaSOystein Eftevaag TSS2_RC
1643*758e9fbaSOystein Eftevaag Esys_PCR_Allocate_Finish(
1644*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1645*758e9fbaSOystein Eftevaag     TPMI_YES_NO *allocationSuccess,
1646*758e9fbaSOystein Eftevaag     UINT32 *maxPCR,
1647*758e9fbaSOystein Eftevaag     UINT32 *sizeNeeded,
1648*758e9fbaSOystein Eftevaag     UINT32 *sizeAvailable);
1649*758e9fbaSOystein Eftevaag 
1650*758e9fbaSOystein Eftevaag /* Table 111 - TPM2_PCR_SetAuthPolicy Command */
1651*758e9fbaSOystein Eftevaag 
1652*758e9fbaSOystein Eftevaag TSS2_RC
1653*758e9fbaSOystein Eftevaag Esys_PCR_SetAuthPolicy(
1654*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1655*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
1656*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1657*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1658*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1659*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *authPolicy,
1660*758e9fbaSOystein Eftevaag     TPMI_ALG_HASH hashAlg,
1661*758e9fbaSOystein Eftevaag     TPMI_DH_PCR pcrNum);
1662*758e9fbaSOystein Eftevaag 
1663*758e9fbaSOystein Eftevaag TSS2_RC
1664*758e9fbaSOystein Eftevaag Esys_PCR_SetAuthPolicy_Async(
1665*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1666*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
1667*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1668*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1669*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1670*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *authPolicy,
1671*758e9fbaSOystein Eftevaag     TPMI_ALG_HASH hashAlg,
1672*758e9fbaSOystein Eftevaag     TPMI_DH_PCR pcrNum);
1673*758e9fbaSOystein Eftevaag 
1674*758e9fbaSOystein Eftevaag TSS2_RC
1675*758e9fbaSOystein Eftevaag Esys_PCR_SetAuthPolicy_Finish(
1676*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
1677*758e9fbaSOystein Eftevaag 
1678*758e9fbaSOystein Eftevaag /* Table 113 - TPM2_PCR_SetAuthValue Command */
1679*758e9fbaSOystein Eftevaag 
1680*758e9fbaSOystein Eftevaag TSS2_RC
1681*758e9fbaSOystein Eftevaag Esys_PCR_SetAuthValue(
1682*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1683*758e9fbaSOystein Eftevaag     ESYS_TR pcrHandle,
1684*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1685*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1686*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1687*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *auth);
1688*758e9fbaSOystein Eftevaag 
1689*758e9fbaSOystein Eftevaag TSS2_RC
1690*758e9fbaSOystein Eftevaag Esys_PCR_SetAuthValue_Async(
1691*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1692*758e9fbaSOystein Eftevaag     ESYS_TR pcrHandle,
1693*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1694*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1695*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1696*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *auth);
1697*758e9fbaSOystein Eftevaag 
1698*758e9fbaSOystein Eftevaag TSS2_RC
1699*758e9fbaSOystein Eftevaag Esys_PCR_SetAuthValue_Finish(
1700*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
1701*758e9fbaSOystein Eftevaag 
1702*758e9fbaSOystein Eftevaag /* Table 115 - TPM2_PCR_Reset Command */
1703*758e9fbaSOystein Eftevaag 
1704*758e9fbaSOystein Eftevaag TSS2_RC
1705*758e9fbaSOystein Eftevaag Esys_PCR_Reset(
1706*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1707*758e9fbaSOystein Eftevaag     ESYS_TR pcrHandle,
1708*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1709*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1710*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
1711*758e9fbaSOystein Eftevaag 
1712*758e9fbaSOystein Eftevaag TSS2_RC
1713*758e9fbaSOystein Eftevaag Esys_PCR_Reset_Async(
1714*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1715*758e9fbaSOystein Eftevaag     ESYS_TR pcrHandle,
1716*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1717*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1718*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
1719*758e9fbaSOystein Eftevaag 
1720*758e9fbaSOystein Eftevaag TSS2_RC
1721*758e9fbaSOystein Eftevaag Esys_PCR_Reset_Finish(
1722*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
1723*758e9fbaSOystein Eftevaag 
1724*758e9fbaSOystein Eftevaag /* Table 117 - TPM2_PolicySigned Command */
1725*758e9fbaSOystein Eftevaag 
1726*758e9fbaSOystein Eftevaag TSS2_RC
1727*758e9fbaSOystein Eftevaag Esys_PolicySigned(
1728*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1729*758e9fbaSOystein Eftevaag     ESYS_TR authObject,
1730*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
1731*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1732*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1733*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1734*758e9fbaSOystein Eftevaag     const TPM2B_NONCE *nonceTPM,
1735*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *cpHashA,
1736*758e9fbaSOystein Eftevaag     const TPM2B_NONCE *policyRef,
1737*758e9fbaSOystein Eftevaag     INT32 expiration,
1738*758e9fbaSOystein Eftevaag     const TPMT_SIGNATURE *auth,
1739*758e9fbaSOystein Eftevaag     TPM2B_TIMEOUT **timeout,
1740*758e9fbaSOystein Eftevaag     TPMT_TK_AUTH **policyTicket);
1741*758e9fbaSOystein Eftevaag 
1742*758e9fbaSOystein Eftevaag TSS2_RC
1743*758e9fbaSOystein Eftevaag Esys_PolicySigned_Async(
1744*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1745*758e9fbaSOystein Eftevaag     ESYS_TR authObject,
1746*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
1747*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1748*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1749*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1750*758e9fbaSOystein Eftevaag     const TPM2B_NONCE *nonceTPM,
1751*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *cpHashA,
1752*758e9fbaSOystein Eftevaag     const TPM2B_NONCE *policyRef,
1753*758e9fbaSOystein Eftevaag     INT32 expiration,
1754*758e9fbaSOystein Eftevaag     const TPMT_SIGNATURE *auth);
1755*758e9fbaSOystein Eftevaag 
1756*758e9fbaSOystein Eftevaag TSS2_RC
1757*758e9fbaSOystein Eftevaag Esys_PolicySigned_Finish(
1758*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1759*758e9fbaSOystein Eftevaag     TPM2B_TIMEOUT **timeout,
1760*758e9fbaSOystein Eftevaag     TPMT_TK_AUTH **policyTicket);
1761*758e9fbaSOystein Eftevaag 
1762*758e9fbaSOystein Eftevaag /* Table 119 - TPM2_PolicySecret Command */
1763*758e9fbaSOystein Eftevaag 
1764*758e9fbaSOystein Eftevaag TSS2_RC
1765*758e9fbaSOystein Eftevaag Esys_PolicySecret(
1766*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1767*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
1768*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
1769*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1770*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1771*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1772*758e9fbaSOystein Eftevaag     const TPM2B_NONCE *nonceTPM,
1773*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *cpHashA,
1774*758e9fbaSOystein Eftevaag     const TPM2B_NONCE *policyRef,
1775*758e9fbaSOystein Eftevaag     INT32 expiration,
1776*758e9fbaSOystein Eftevaag     TPM2B_TIMEOUT **timeout,
1777*758e9fbaSOystein Eftevaag     TPMT_TK_AUTH **policyTicket);
1778*758e9fbaSOystein Eftevaag 
1779*758e9fbaSOystein Eftevaag TSS2_RC
1780*758e9fbaSOystein Eftevaag Esys_PolicySecret_Async(
1781*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1782*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
1783*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
1784*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1785*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1786*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1787*758e9fbaSOystein Eftevaag     const TPM2B_NONCE *nonceTPM,
1788*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *cpHashA,
1789*758e9fbaSOystein Eftevaag     const TPM2B_NONCE *policyRef,
1790*758e9fbaSOystein Eftevaag     INT32 expiration);
1791*758e9fbaSOystein Eftevaag 
1792*758e9fbaSOystein Eftevaag TSS2_RC
1793*758e9fbaSOystein Eftevaag Esys_PolicySecret_Finish(
1794*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1795*758e9fbaSOystein Eftevaag     TPM2B_TIMEOUT **timeout,
1796*758e9fbaSOystein Eftevaag     TPMT_TK_AUTH **policyTicket);
1797*758e9fbaSOystein Eftevaag 
1798*758e9fbaSOystein Eftevaag /* Table 121 - TPM2_PolicyTicket Command */
1799*758e9fbaSOystein Eftevaag 
1800*758e9fbaSOystein Eftevaag TSS2_RC
1801*758e9fbaSOystein Eftevaag Esys_PolicyTicket(
1802*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1803*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
1804*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1805*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1806*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1807*758e9fbaSOystein Eftevaag     const TPM2B_TIMEOUT *timeout,
1808*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *cpHashA,
1809*758e9fbaSOystein Eftevaag     const TPM2B_NONCE *policyRef,
1810*758e9fbaSOystein Eftevaag     const TPM2B_NAME *authName,
1811*758e9fbaSOystein Eftevaag     const TPMT_TK_AUTH *ticket);
1812*758e9fbaSOystein Eftevaag 
1813*758e9fbaSOystein Eftevaag TSS2_RC
1814*758e9fbaSOystein Eftevaag Esys_PolicyTicket_Async(
1815*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1816*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
1817*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1818*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1819*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1820*758e9fbaSOystein Eftevaag     const TPM2B_TIMEOUT *timeout,
1821*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *cpHashA,
1822*758e9fbaSOystein Eftevaag     const TPM2B_NONCE *policyRef,
1823*758e9fbaSOystein Eftevaag     const TPM2B_NAME *authName,
1824*758e9fbaSOystein Eftevaag     const TPMT_TK_AUTH *ticket);
1825*758e9fbaSOystein Eftevaag 
1826*758e9fbaSOystein Eftevaag TSS2_RC
1827*758e9fbaSOystein Eftevaag Esys_PolicyTicket_Finish(
1828*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
1829*758e9fbaSOystein Eftevaag 
1830*758e9fbaSOystein Eftevaag /* Table 123 - TPM2_PolicyOR Command */
1831*758e9fbaSOystein Eftevaag 
1832*758e9fbaSOystein Eftevaag TSS2_RC
1833*758e9fbaSOystein Eftevaag Esys_PolicyOR(
1834*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1835*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
1836*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1837*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1838*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1839*758e9fbaSOystein Eftevaag     const TPML_DIGEST *pHashList);
1840*758e9fbaSOystein Eftevaag 
1841*758e9fbaSOystein Eftevaag TSS2_RC
1842*758e9fbaSOystein Eftevaag Esys_PolicyOR_Async(
1843*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1844*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
1845*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1846*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1847*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1848*758e9fbaSOystein Eftevaag     const TPML_DIGEST *pHashList);
1849*758e9fbaSOystein Eftevaag 
1850*758e9fbaSOystein Eftevaag TSS2_RC
1851*758e9fbaSOystein Eftevaag Esys_PolicyOR_Finish(
1852*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
1853*758e9fbaSOystein Eftevaag 
1854*758e9fbaSOystein Eftevaag /* Table 125 - TPM2_PolicyPCR Command */
1855*758e9fbaSOystein Eftevaag 
1856*758e9fbaSOystein Eftevaag TSS2_RC
1857*758e9fbaSOystein Eftevaag Esys_PolicyPCR(
1858*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1859*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
1860*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1861*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1862*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1863*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *pcrDigest,
1864*758e9fbaSOystein Eftevaag     const TPML_PCR_SELECTION *pcrs);
1865*758e9fbaSOystein Eftevaag 
1866*758e9fbaSOystein Eftevaag TSS2_RC
1867*758e9fbaSOystein Eftevaag Esys_PolicyPCR_Async(
1868*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1869*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
1870*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1871*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1872*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1873*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *pcrDigest,
1874*758e9fbaSOystein Eftevaag     const TPML_PCR_SELECTION *pcrs);
1875*758e9fbaSOystein Eftevaag 
1876*758e9fbaSOystein Eftevaag TSS2_RC
1877*758e9fbaSOystein Eftevaag Esys_PolicyPCR_Finish(
1878*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
1879*758e9fbaSOystein Eftevaag 
1880*758e9fbaSOystein Eftevaag /* Table 127 - TPM2_PolicyLocality Command */
1881*758e9fbaSOystein Eftevaag 
1882*758e9fbaSOystein Eftevaag TSS2_RC
1883*758e9fbaSOystein Eftevaag Esys_PolicyLocality(
1884*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1885*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
1886*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1887*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1888*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1889*758e9fbaSOystein Eftevaag     TPMA_LOCALITY locality);
1890*758e9fbaSOystein Eftevaag 
1891*758e9fbaSOystein Eftevaag TSS2_RC
1892*758e9fbaSOystein Eftevaag Esys_PolicyLocality_Async(
1893*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1894*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
1895*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1896*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1897*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1898*758e9fbaSOystein Eftevaag     TPMA_LOCALITY locality);
1899*758e9fbaSOystein Eftevaag 
1900*758e9fbaSOystein Eftevaag TSS2_RC
1901*758e9fbaSOystein Eftevaag Esys_PolicyLocality_Finish(
1902*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
1903*758e9fbaSOystein Eftevaag 
1904*758e9fbaSOystein Eftevaag /* Table 129 - TPM2_PolicyNV Command */
1905*758e9fbaSOystein Eftevaag 
1906*758e9fbaSOystein Eftevaag TSS2_RC
1907*758e9fbaSOystein Eftevaag Esys_PolicyNV(
1908*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1909*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
1910*758e9fbaSOystein Eftevaag     ESYS_TR nvIndex,
1911*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
1912*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1913*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1914*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1915*758e9fbaSOystein Eftevaag     const TPM2B_OPERAND *operandB,
1916*758e9fbaSOystein Eftevaag     UINT16 offset,
1917*758e9fbaSOystein Eftevaag     TPM2_EO operation);
1918*758e9fbaSOystein Eftevaag 
1919*758e9fbaSOystein Eftevaag TSS2_RC
1920*758e9fbaSOystein Eftevaag Esys_PolicyNV_Async(
1921*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1922*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
1923*758e9fbaSOystein Eftevaag     ESYS_TR nvIndex,
1924*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
1925*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1926*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1927*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1928*758e9fbaSOystein Eftevaag     const TPM2B_OPERAND *operandB,
1929*758e9fbaSOystein Eftevaag     UINT16 offset,
1930*758e9fbaSOystein Eftevaag     TPM2_EO operation);
1931*758e9fbaSOystein Eftevaag 
1932*758e9fbaSOystein Eftevaag TSS2_RC
1933*758e9fbaSOystein Eftevaag Esys_PolicyNV_Finish(
1934*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
1935*758e9fbaSOystein Eftevaag 
1936*758e9fbaSOystein Eftevaag /* Table 131 - TPM2_PolicyCounterTimer Command */
1937*758e9fbaSOystein Eftevaag 
1938*758e9fbaSOystein Eftevaag TSS2_RC
1939*758e9fbaSOystein Eftevaag Esys_PolicyCounterTimer(
1940*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1941*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
1942*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1943*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1944*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1945*758e9fbaSOystein Eftevaag     const TPM2B_OPERAND *operandB,
1946*758e9fbaSOystein Eftevaag     UINT16 offset,
1947*758e9fbaSOystein Eftevaag     TPM2_EO operation);
1948*758e9fbaSOystein Eftevaag 
1949*758e9fbaSOystein Eftevaag TSS2_RC
1950*758e9fbaSOystein Eftevaag Esys_PolicyCounterTimer_Async(
1951*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1952*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
1953*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1954*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1955*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1956*758e9fbaSOystein Eftevaag     const TPM2B_OPERAND *operandB,
1957*758e9fbaSOystein Eftevaag     UINT16 offset,
1958*758e9fbaSOystein Eftevaag     TPM2_EO operation);
1959*758e9fbaSOystein Eftevaag 
1960*758e9fbaSOystein Eftevaag TSS2_RC
1961*758e9fbaSOystein Eftevaag Esys_PolicyCounterTimer_Finish(
1962*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
1963*758e9fbaSOystein Eftevaag 
1964*758e9fbaSOystein Eftevaag /* Table 133 - TPM2_PolicyCommandCode Command */
1965*758e9fbaSOystein Eftevaag 
1966*758e9fbaSOystein Eftevaag TSS2_RC
1967*758e9fbaSOystein Eftevaag Esys_PolicyCommandCode(
1968*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1969*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
1970*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1971*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1972*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1973*758e9fbaSOystein Eftevaag     TPM2_CC code);
1974*758e9fbaSOystein Eftevaag 
1975*758e9fbaSOystein Eftevaag TSS2_RC
1976*758e9fbaSOystein Eftevaag Esys_PolicyCommandCode_Async(
1977*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1978*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
1979*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1980*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1981*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
1982*758e9fbaSOystein Eftevaag     TPM2_CC code);
1983*758e9fbaSOystein Eftevaag 
1984*758e9fbaSOystein Eftevaag TSS2_RC
1985*758e9fbaSOystein Eftevaag Esys_PolicyCommandCode_Finish(
1986*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
1987*758e9fbaSOystein Eftevaag 
1988*758e9fbaSOystein Eftevaag /* Table 135 - TPM2_PolicyPhysicalPresence Command */
1989*758e9fbaSOystein Eftevaag 
1990*758e9fbaSOystein Eftevaag TSS2_RC
1991*758e9fbaSOystein Eftevaag Esys_PolicyPhysicalPresence(
1992*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
1993*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
1994*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
1995*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
1996*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
1997*758e9fbaSOystein Eftevaag 
1998*758e9fbaSOystein Eftevaag TSS2_RC
1999*758e9fbaSOystein Eftevaag Esys_PolicyPhysicalPresence_Async(
2000*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2001*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
2002*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2003*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2004*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
2005*758e9fbaSOystein Eftevaag 
2006*758e9fbaSOystein Eftevaag TSS2_RC
2007*758e9fbaSOystein Eftevaag Esys_PolicyPhysicalPresence_Finish(
2008*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2009*758e9fbaSOystein Eftevaag 
2010*758e9fbaSOystein Eftevaag /* Table 137 - TPM2_PolicyCpHash Command */
2011*758e9fbaSOystein Eftevaag 
2012*758e9fbaSOystein Eftevaag TSS2_RC
2013*758e9fbaSOystein Eftevaag Esys_PolicyCpHash(
2014*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2015*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
2016*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2017*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2018*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2019*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *cpHashA);
2020*758e9fbaSOystein Eftevaag 
2021*758e9fbaSOystein Eftevaag TSS2_RC
2022*758e9fbaSOystein Eftevaag Esys_PolicyCpHash_Async(
2023*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2024*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
2025*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2026*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2027*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2028*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *cpHashA);
2029*758e9fbaSOystein Eftevaag 
2030*758e9fbaSOystein Eftevaag TSS2_RC
2031*758e9fbaSOystein Eftevaag Esys_PolicyCpHash_Finish(
2032*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2033*758e9fbaSOystein Eftevaag 
2034*758e9fbaSOystein Eftevaag /* Table 139 - TPM2_PolicyNameHash Command */
2035*758e9fbaSOystein Eftevaag 
2036*758e9fbaSOystein Eftevaag TSS2_RC
2037*758e9fbaSOystein Eftevaag Esys_PolicyNameHash(
2038*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2039*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
2040*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2041*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2042*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2043*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *nameHash);
2044*758e9fbaSOystein Eftevaag 
2045*758e9fbaSOystein Eftevaag TSS2_RC
2046*758e9fbaSOystein Eftevaag Esys_PolicyNameHash_Async(
2047*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2048*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
2049*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2050*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2051*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2052*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *nameHash);
2053*758e9fbaSOystein Eftevaag 
2054*758e9fbaSOystein Eftevaag TSS2_RC
2055*758e9fbaSOystein Eftevaag Esys_PolicyNameHash_Finish(
2056*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2057*758e9fbaSOystein Eftevaag 
2058*758e9fbaSOystein Eftevaag /* Table 141 - TPM2_PolicyDuplicationSelect Command */
2059*758e9fbaSOystein Eftevaag 
2060*758e9fbaSOystein Eftevaag TSS2_RC
2061*758e9fbaSOystein Eftevaag Esys_PolicyDuplicationSelect(
2062*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2063*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
2064*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2065*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2066*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2067*758e9fbaSOystein Eftevaag     const TPM2B_NAME *objectName,
2068*758e9fbaSOystein Eftevaag     const TPM2B_NAME *newParentName,
2069*758e9fbaSOystein Eftevaag     TPMI_YES_NO includeObject);
2070*758e9fbaSOystein Eftevaag 
2071*758e9fbaSOystein Eftevaag TSS2_RC
2072*758e9fbaSOystein Eftevaag Esys_PolicyDuplicationSelect_Async(
2073*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2074*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
2075*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2076*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2077*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2078*758e9fbaSOystein Eftevaag     const TPM2B_NAME *objectName,
2079*758e9fbaSOystein Eftevaag     const TPM2B_NAME *newParentName,
2080*758e9fbaSOystein Eftevaag     TPMI_YES_NO includeObject);
2081*758e9fbaSOystein Eftevaag 
2082*758e9fbaSOystein Eftevaag TSS2_RC
2083*758e9fbaSOystein Eftevaag Esys_PolicyDuplicationSelect_Finish(
2084*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2085*758e9fbaSOystein Eftevaag 
2086*758e9fbaSOystein Eftevaag /* Table 143 - TPM2_PolicyAuthorize Command */
2087*758e9fbaSOystein Eftevaag 
2088*758e9fbaSOystein Eftevaag TSS2_RC
2089*758e9fbaSOystein Eftevaag Esys_PolicyAuthorize(
2090*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2091*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
2092*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2093*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2094*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2095*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *approvedPolicy,
2096*758e9fbaSOystein Eftevaag     const TPM2B_NONCE *policyRef,
2097*758e9fbaSOystein Eftevaag     const TPM2B_NAME *keySign,
2098*758e9fbaSOystein Eftevaag     const TPMT_TK_VERIFIED *checkTicket);
2099*758e9fbaSOystein Eftevaag 
2100*758e9fbaSOystein Eftevaag TSS2_RC
2101*758e9fbaSOystein Eftevaag Esys_PolicyAuthorize_Async(
2102*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2103*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
2104*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2105*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2106*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2107*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *approvedPolicy,
2108*758e9fbaSOystein Eftevaag     const TPM2B_NONCE *policyRef,
2109*758e9fbaSOystein Eftevaag     const TPM2B_NAME *keySign,
2110*758e9fbaSOystein Eftevaag     const TPMT_TK_VERIFIED *checkTicket);
2111*758e9fbaSOystein Eftevaag 
2112*758e9fbaSOystein Eftevaag TSS2_RC
2113*758e9fbaSOystein Eftevaag Esys_PolicyAuthorize_Finish(
2114*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2115*758e9fbaSOystein Eftevaag 
2116*758e9fbaSOystein Eftevaag /* Table 145 - TPM2_PolicyAuthValue Command */
2117*758e9fbaSOystein Eftevaag 
2118*758e9fbaSOystein Eftevaag TSS2_RC
2119*758e9fbaSOystein Eftevaag Esys_PolicyAuthValue(
2120*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2121*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
2122*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2123*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2124*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
2125*758e9fbaSOystein Eftevaag 
2126*758e9fbaSOystein Eftevaag TSS2_RC
2127*758e9fbaSOystein Eftevaag Esys_PolicyAuthValue_Async(
2128*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2129*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
2130*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2131*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2132*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
2133*758e9fbaSOystein Eftevaag 
2134*758e9fbaSOystein Eftevaag TSS2_RC
2135*758e9fbaSOystein Eftevaag Esys_PolicyAuthValue_Finish(
2136*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2137*758e9fbaSOystein Eftevaag 
2138*758e9fbaSOystein Eftevaag /* Table 147 - TPM2_PolicyPassword Command */
2139*758e9fbaSOystein Eftevaag 
2140*758e9fbaSOystein Eftevaag TSS2_RC
2141*758e9fbaSOystein Eftevaag Esys_PolicyPassword(
2142*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2143*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
2144*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2145*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2146*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
2147*758e9fbaSOystein Eftevaag 
2148*758e9fbaSOystein Eftevaag TSS2_RC
2149*758e9fbaSOystein Eftevaag Esys_PolicyPassword_Async(
2150*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2151*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
2152*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2153*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2154*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
2155*758e9fbaSOystein Eftevaag 
2156*758e9fbaSOystein Eftevaag TSS2_RC
2157*758e9fbaSOystein Eftevaag Esys_PolicyPassword_Finish(
2158*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2159*758e9fbaSOystein Eftevaag 
2160*758e9fbaSOystein Eftevaag /* Table 149 - TPM2_PolicyGetDigest Command */
2161*758e9fbaSOystein Eftevaag 
2162*758e9fbaSOystein Eftevaag TSS2_RC
2163*758e9fbaSOystein Eftevaag Esys_PolicyGetDigest(
2164*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2165*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
2166*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2167*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2168*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2169*758e9fbaSOystein Eftevaag     TPM2B_DIGEST **policyDigest);
2170*758e9fbaSOystein Eftevaag 
2171*758e9fbaSOystein Eftevaag TSS2_RC
2172*758e9fbaSOystein Eftevaag Esys_PolicyGetDigest_Async(
2173*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2174*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
2175*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2176*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2177*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
2178*758e9fbaSOystein Eftevaag 
2179*758e9fbaSOystein Eftevaag TSS2_RC
2180*758e9fbaSOystein Eftevaag Esys_PolicyGetDigest_Finish(
2181*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2182*758e9fbaSOystein Eftevaag     TPM2B_DIGEST **policyDigest);
2183*758e9fbaSOystein Eftevaag 
2184*758e9fbaSOystein Eftevaag /* Table 151 - TPM2_PolicyNvWritten Command */
2185*758e9fbaSOystein Eftevaag 
2186*758e9fbaSOystein Eftevaag TSS2_RC
2187*758e9fbaSOystein Eftevaag Esys_PolicyNvWritten(
2188*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2189*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
2190*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2191*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2192*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2193*758e9fbaSOystein Eftevaag     TPMI_YES_NO writtenSet);
2194*758e9fbaSOystein Eftevaag 
2195*758e9fbaSOystein Eftevaag TSS2_RC
2196*758e9fbaSOystein Eftevaag Esys_PolicyNvWritten_Async(
2197*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2198*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
2199*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2200*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2201*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2202*758e9fbaSOystein Eftevaag     TPMI_YES_NO writtenSet);
2203*758e9fbaSOystein Eftevaag 
2204*758e9fbaSOystein Eftevaag TSS2_RC
2205*758e9fbaSOystein Eftevaag Esys_PolicyNvWritten_Finish(
2206*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2207*758e9fbaSOystein Eftevaag 
2208*758e9fbaSOystein Eftevaag /* Table 153 - TPM2_PolicyTemplate Command */
2209*758e9fbaSOystein Eftevaag 
2210*758e9fbaSOystein Eftevaag TSS2_RC
2211*758e9fbaSOystein Eftevaag Esys_PolicyTemplate(
2212*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2213*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
2214*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2215*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2216*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2217*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *templateHash);
2218*758e9fbaSOystein Eftevaag 
2219*758e9fbaSOystein Eftevaag TSS2_RC
2220*758e9fbaSOystein Eftevaag Esys_PolicyTemplate_Async(
2221*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2222*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
2223*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2224*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2225*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2226*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *templateHash);
2227*758e9fbaSOystein Eftevaag 
2228*758e9fbaSOystein Eftevaag TSS2_RC
2229*758e9fbaSOystein Eftevaag Esys_PolicyTemplate_Finish(
2230*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2231*758e9fbaSOystein Eftevaag 
2232*758e9fbaSOystein Eftevaag /* Table 155 - TPM2_PolicyAuthorizeNV Command */
2233*758e9fbaSOystein Eftevaag 
2234*758e9fbaSOystein Eftevaag TSS2_RC
2235*758e9fbaSOystein Eftevaag Esys_PolicyAuthorizeNV(
2236*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2237*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
2238*758e9fbaSOystein Eftevaag     ESYS_TR nvIndex,
2239*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
2240*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2241*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2242*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
2243*758e9fbaSOystein Eftevaag 
2244*758e9fbaSOystein Eftevaag TSS2_RC
2245*758e9fbaSOystein Eftevaag Esys_PolicyAuthorizeNV_Async(
2246*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2247*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
2248*758e9fbaSOystein Eftevaag     ESYS_TR nvIndex,
2249*758e9fbaSOystein Eftevaag     ESYS_TR policySession,
2250*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2251*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2252*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
2253*758e9fbaSOystein Eftevaag 
2254*758e9fbaSOystein Eftevaag TSS2_RC
2255*758e9fbaSOystein Eftevaag Esys_PolicyAuthorizeNV_Finish(
2256*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2257*758e9fbaSOystein Eftevaag 
2258*758e9fbaSOystein Eftevaag /* Table 157 - TPM2_CreatePrimary Command */
2259*758e9fbaSOystein Eftevaag 
2260*758e9fbaSOystein Eftevaag TSS2_RC
2261*758e9fbaSOystein Eftevaag Esys_CreatePrimary(
2262*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2263*758e9fbaSOystein Eftevaag     ESYS_TR primaryHandle,
2264*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2265*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2266*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2267*758e9fbaSOystein Eftevaag     const TPM2B_SENSITIVE_CREATE *inSensitive,
2268*758e9fbaSOystein Eftevaag     const TPM2B_PUBLIC *inPublic,
2269*758e9fbaSOystein Eftevaag     const TPM2B_DATA *outsideInfo,
2270*758e9fbaSOystein Eftevaag     const TPML_PCR_SELECTION *creationPCR,
2271*758e9fbaSOystein Eftevaag     ESYS_TR *objectHandle,
2272*758e9fbaSOystein Eftevaag     TPM2B_PUBLIC **outPublic,
2273*758e9fbaSOystein Eftevaag     TPM2B_CREATION_DATA **creationData,
2274*758e9fbaSOystein Eftevaag     TPM2B_DIGEST **creationHash,
2275*758e9fbaSOystein Eftevaag     TPMT_TK_CREATION **creationTicket);
2276*758e9fbaSOystein Eftevaag 
2277*758e9fbaSOystein Eftevaag TSS2_RC
2278*758e9fbaSOystein Eftevaag Esys_CreatePrimary_Async(
2279*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2280*758e9fbaSOystein Eftevaag     ESYS_TR primaryHandle,
2281*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2282*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2283*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2284*758e9fbaSOystein Eftevaag     const TPM2B_SENSITIVE_CREATE *inSensitive,
2285*758e9fbaSOystein Eftevaag     const TPM2B_PUBLIC *inPublic,
2286*758e9fbaSOystein Eftevaag     const TPM2B_DATA *outsideInfo,
2287*758e9fbaSOystein Eftevaag     const TPML_PCR_SELECTION *creationPCR);
2288*758e9fbaSOystein Eftevaag 
2289*758e9fbaSOystein Eftevaag TSS2_RC
2290*758e9fbaSOystein Eftevaag Esys_CreatePrimary_Finish(
2291*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2292*758e9fbaSOystein Eftevaag     ESYS_TR *objectHandle,
2293*758e9fbaSOystein Eftevaag     TPM2B_PUBLIC **outPublic,
2294*758e9fbaSOystein Eftevaag     TPM2B_CREATION_DATA **creationData,
2295*758e9fbaSOystein Eftevaag     TPM2B_DIGEST **creationHash,
2296*758e9fbaSOystein Eftevaag     TPMT_TK_CREATION **creationTicket);
2297*758e9fbaSOystein Eftevaag 
2298*758e9fbaSOystein Eftevaag /* Table 159 - TPM2_HierarchyControl Command */
2299*758e9fbaSOystein Eftevaag 
2300*758e9fbaSOystein Eftevaag TSS2_RC
2301*758e9fbaSOystein Eftevaag Esys_HierarchyControl(
2302*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2303*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
2304*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2305*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2306*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2307*758e9fbaSOystein Eftevaag     TPMI_RH_ENABLES enable,
2308*758e9fbaSOystein Eftevaag     TPMI_YES_NO state);
2309*758e9fbaSOystein Eftevaag 
2310*758e9fbaSOystein Eftevaag TSS2_RC
2311*758e9fbaSOystein Eftevaag Esys_HierarchyControl_Async(
2312*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2313*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
2314*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2315*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2316*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2317*758e9fbaSOystein Eftevaag     TPMI_RH_ENABLES enable,
2318*758e9fbaSOystein Eftevaag     TPMI_YES_NO state);
2319*758e9fbaSOystein Eftevaag 
2320*758e9fbaSOystein Eftevaag TSS2_RC
2321*758e9fbaSOystein Eftevaag Esys_HierarchyControl_Finish(
2322*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2323*758e9fbaSOystein Eftevaag 
2324*758e9fbaSOystein Eftevaag /* Table 161 - TPM2_SetPrimaryPolicy Command */
2325*758e9fbaSOystein Eftevaag 
2326*758e9fbaSOystein Eftevaag TSS2_RC
2327*758e9fbaSOystein Eftevaag Esys_SetPrimaryPolicy(
2328*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2329*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
2330*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2331*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2332*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2333*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *authPolicy,
2334*758e9fbaSOystein Eftevaag     TPMI_ALG_HASH hashAlg);
2335*758e9fbaSOystein Eftevaag 
2336*758e9fbaSOystein Eftevaag TSS2_RC
2337*758e9fbaSOystein Eftevaag Esys_SetPrimaryPolicy_Async(
2338*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2339*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
2340*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2341*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2342*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2343*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *authPolicy,
2344*758e9fbaSOystein Eftevaag     TPMI_ALG_HASH hashAlg);
2345*758e9fbaSOystein Eftevaag 
2346*758e9fbaSOystein Eftevaag TSS2_RC
2347*758e9fbaSOystein Eftevaag Esys_SetPrimaryPolicy_Finish(
2348*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2349*758e9fbaSOystein Eftevaag 
2350*758e9fbaSOystein Eftevaag /* Table 163 - TPM2_ChangePPS Command */
2351*758e9fbaSOystein Eftevaag 
2352*758e9fbaSOystein Eftevaag TSS2_RC
2353*758e9fbaSOystein Eftevaag Esys_ChangePPS(
2354*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2355*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
2356*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2357*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2358*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
2359*758e9fbaSOystein Eftevaag 
2360*758e9fbaSOystein Eftevaag TSS2_RC
2361*758e9fbaSOystein Eftevaag Esys_ChangePPS_Async(
2362*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2363*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
2364*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2365*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2366*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
2367*758e9fbaSOystein Eftevaag 
2368*758e9fbaSOystein Eftevaag TSS2_RC
2369*758e9fbaSOystein Eftevaag Esys_ChangePPS_Finish(
2370*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2371*758e9fbaSOystein Eftevaag 
2372*758e9fbaSOystein Eftevaag /* Table 165 - TPM2_ChangeEPS Command */
2373*758e9fbaSOystein Eftevaag 
2374*758e9fbaSOystein Eftevaag TSS2_RC
2375*758e9fbaSOystein Eftevaag Esys_ChangeEPS(
2376*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2377*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
2378*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2379*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2380*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
2381*758e9fbaSOystein Eftevaag 
2382*758e9fbaSOystein Eftevaag TSS2_RC
2383*758e9fbaSOystein Eftevaag Esys_ChangeEPS_Async(
2384*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2385*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
2386*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2387*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2388*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
2389*758e9fbaSOystein Eftevaag 
2390*758e9fbaSOystein Eftevaag TSS2_RC
2391*758e9fbaSOystein Eftevaag Esys_ChangeEPS_Finish(
2392*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2393*758e9fbaSOystein Eftevaag 
2394*758e9fbaSOystein Eftevaag /* Table 167 - TPM2_Clear Command */
2395*758e9fbaSOystein Eftevaag 
2396*758e9fbaSOystein Eftevaag TSS2_RC
2397*758e9fbaSOystein Eftevaag Esys_Clear(
2398*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2399*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
2400*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2401*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2402*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
2403*758e9fbaSOystein Eftevaag 
2404*758e9fbaSOystein Eftevaag TSS2_RC
2405*758e9fbaSOystein Eftevaag Esys_Clear_Async(
2406*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2407*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
2408*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2409*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2410*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
2411*758e9fbaSOystein Eftevaag 
2412*758e9fbaSOystein Eftevaag TSS2_RC
2413*758e9fbaSOystein Eftevaag Esys_Clear_Finish(
2414*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2415*758e9fbaSOystein Eftevaag 
2416*758e9fbaSOystein Eftevaag /* Table 169 - TPM2_ClearControl Command */
2417*758e9fbaSOystein Eftevaag 
2418*758e9fbaSOystein Eftevaag TSS2_RC
2419*758e9fbaSOystein Eftevaag Esys_ClearControl(
2420*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2421*758e9fbaSOystein Eftevaag     ESYS_TR auth,
2422*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2423*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2424*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2425*758e9fbaSOystein Eftevaag     TPMI_YES_NO disable);
2426*758e9fbaSOystein Eftevaag 
2427*758e9fbaSOystein Eftevaag TSS2_RC
2428*758e9fbaSOystein Eftevaag Esys_ClearControl_Async(
2429*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2430*758e9fbaSOystein Eftevaag     ESYS_TR auth,
2431*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2432*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2433*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2434*758e9fbaSOystein Eftevaag     TPMI_YES_NO disable);
2435*758e9fbaSOystein Eftevaag 
2436*758e9fbaSOystein Eftevaag TSS2_RC
2437*758e9fbaSOystein Eftevaag Esys_ClearControl_Finish(
2438*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2439*758e9fbaSOystein Eftevaag 
2440*758e9fbaSOystein Eftevaag /* Table 171 - TPM2_HierarchyChangeAuth Command */
2441*758e9fbaSOystein Eftevaag 
2442*758e9fbaSOystein Eftevaag TSS2_RC
2443*758e9fbaSOystein Eftevaag Esys_HierarchyChangeAuth(
2444*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2445*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
2446*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2447*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2448*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2449*758e9fbaSOystein Eftevaag     const TPM2B_AUTH *newAuth);
2450*758e9fbaSOystein Eftevaag 
2451*758e9fbaSOystein Eftevaag TSS2_RC
2452*758e9fbaSOystein Eftevaag Esys_HierarchyChangeAuth_Async(
2453*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2454*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
2455*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2456*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2457*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2458*758e9fbaSOystein Eftevaag     const TPM2B_AUTH *newAuth);
2459*758e9fbaSOystein Eftevaag 
2460*758e9fbaSOystein Eftevaag TSS2_RC
2461*758e9fbaSOystein Eftevaag Esys_HierarchyChangeAuth_Finish(
2462*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2463*758e9fbaSOystein Eftevaag 
2464*758e9fbaSOystein Eftevaag /* Table 173 - TPM2_DictionaryAttackLockReset Command */
2465*758e9fbaSOystein Eftevaag 
2466*758e9fbaSOystein Eftevaag TSS2_RC
2467*758e9fbaSOystein Eftevaag Esys_DictionaryAttackLockReset(
2468*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2469*758e9fbaSOystein Eftevaag     ESYS_TR lockHandle,
2470*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2471*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2472*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
2473*758e9fbaSOystein Eftevaag 
2474*758e9fbaSOystein Eftevaag TSS2_RC
2475*758e9fbaSOystein Eftevaag Esys_DictionaryAttackLockReset_Async(
2476*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2477*758e9fbaSOystein Eftevaag     ESYS_TR lockHandle,
2478*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2479*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2480*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
2481*758e9fbaSOystein Eftevaag 
2482*758e9fbaSOystein Eftevaag TSS2_RC
2483*758e9fbaSOystein Eftevaag Esys_DictionaryAttackLockReset_Finish(
2484*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2485*758e9fbaSOystein Eftevaag 
2486*758e9fbaSOystein Eftevaag /* Table 175 - TPM2_DictionaryAttackParameters Command */
2487*758e9fbaSOystein Eftevaag 
2488*758e9fbaSOystein Eftevaag TSS2_RC
2489*758e9fbaSOystein Eftevaag Esys_DictionaryAttackParameters(
2490*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2491*758e9fbaSOystein Eftevaag     ESYS_TR lockHandle,
2492*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2493*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2494*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2495*758e9fbaSOystein Eftevaag     UINT32 newMaxTries,
2496*758e9fbaSOystein Eftevaag     UINT32 newRecoveryTime,
2497*758e9fbaSOystein Eftevaag     UINT32 lockoutRecovery);
2498*758e9fbaSOystein Eftevaag 
2499*758e9fbaSOystein Eftevaag TSS2_RC
2500*758e9fbaSOystein Eftevaag Esys_DictionaryAttackParameters_Async(
2501*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2502*758e9fbaSOystein Eftevaag     ESYS_TR lockHandle,
2503*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2504*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2505*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2506*758e9fbaSOystein Eftevaag     UINT32 newMaxTries,
2507*758e9fbaSOystein Eftevaag     UINT32 newRecoveryTime,
2508*758e9fbaSOystein Eftevaag     UINT32 lockoutRecovery);
2509*758e9fbaSOystein Eftevaag 
2510*758e9fbaSOystein Eftevaag TSS2_RC
2511*758e9fbaSOystein Eftevaag Esys_DictionaryAttackParameters_Finish(
2512*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2513*758e9fbaSOystein Eftevaag 
2514*758e9fbaSOystein Eftevaag /* Table 177 - TPM2_PP_Commands Command */
2515*758e9fbaSOystein Eftevaag 
2516*758e9fbaSOystein Eftevaag TSS2_RC
2517*758e9fbaSOystein Eftevaag Esys_PP_Commands(
2518*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2519*758e9fbaSOystein Eftevaag     ESYS_TR auth,
2520*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2521*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2522*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2523*758e9fbaSOystein Eftevaag     const TPML_CC *setList,
2524*758e9fbaSOystein Eftevaag     const TPML_CC *clearList);
2525*758e9fbaSOystein Eftevaag 
2526*758e9fbaSOystein Eftevaag TSS2_RC
2527*758e9fbaSOystein Eftevaag Esys_PP_Commands_Async(
2528*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2529*758e9fbaSOystein Eftevaag     ESYS_TR auth,
2530*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2531*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2532*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2533*758e9fbaSOystein Eftevaag     const TPML_CC *setList,
2534*758e9fbaSOystein Eftevaag     const TPML_CC *clearList);
2535*758e9fbaSOystein Eftevaag 
2536*758e9fbaSOystein Eftevaag TSS2_RC
2537*758e9fbaSOystein Eftevaag Esys_PP_Commands_Finish(
2538*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2539*758e9fbaSOystein Eftevaag 
2540*758e9fbaSOystein Eftevaag /* Table 179 - TPM2_SetAlgorithmSet Command */
2541*758e9fbaSOystein Eftevaag 
2542*758e9fbaSOystein Eftevaag TSS2_RC
2543*758e9fbaSOystein Eftevaag Esys_SetAlgorithmSet(
2544*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2545*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
2546*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2547*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2548*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2549*758e9fbaSOystein Eftevaag     UINT32 algorithmSet);
2550*758e9fbaSOystein Eftevaag 
2551*758e9fbaSOystein Eftevaag TSS2_RC
2552*758e9fbaSOystein Eftevaag Esys_SetAlgorithmSet_Async(
2553*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2554*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
2555*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2556*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2557*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2558*758e9fbaSOystein Eftevaag     UINT32 algorithmSet);
2559*758e9fbaSOystein Eftevaag 
2560*758e9fbaSOystein Eftevaag TSS2_RC
2561*758e9fbaSOystein Eftevaag Esys_SetAlgorithmSet_Finish(
2562*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2563*758e9fbaSOystein Eftevaag 
2564*758e9fbaSOystein Eftevaag /* Table 181 - TPM2_FieldUpgradeStart Command */
2565*758e9fbaSOystein Eftevaag 
2566*758e9fbaSOystein Eftevaag TSS2_RC
2567*758e9fbaSOystein Eftevaag Esys_FieldUpgradeStart(
2568*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2569*758e9fbaSOystein Eftevaag     ESYS_TR authorization,
2570*758e9fbaSOystein Eftevaag     ESYS_TR keyHandle,
2571*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2572*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2573*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2574*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *fuDigest,
2575*758e9fbaSOystein Eftevaag     const TPMT_SIGNATURE *manifestSignature);
2576*758e9fbaSOystein Eftevaag 
2577*758e9fbaSOystein Eftevaag TSS2_RC
2578*758e9fbaSOystein Eftevaag Esys_FieldUpgradeStart_Async(
2579*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2580*758e9fbaSOystein Eftevaag     ESYS_TR authorization,
2581*758e9fbaSOystein Eftevaag     ESYS_TR keyHandle,
2582*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2583*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2584*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2585*758e9fbaSOystein Eftevaag     const TPM2B_DIGEST *fuDigest,
2586*758e9fbaSOystein Eftevaag     const TPMT_SIGNATURE *manifestSignature);
2587*758e9fbaSOystein Eftevaag 
2588*758e9fbaSOystein Eftevaag TSS2_RC
2589*758e9fbaSOystein Eftevaag Esys_FieldUpgradeStart_Finish(
2590*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2591*758e9fbaSOystein Eftevaag 
2592*758e9fbaSOystein Eftevaag /* Table 183 - TPM2_FieldUpgradeData Command */
2593*758e9fbaSOystein Eftevaag 
2594*758e9fbaSOystein Eftevaag TSS2_RC
2595*758e9fbaSOystein Eftevaag Esys_FieldUpgradeData(
2596*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2597*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2598*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2599*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2600*758e9fbaSOystein Eftevaag     const TPM2B_MAX_BUFFER *fuData,
2601*758e9fbaSOystein Eftevaag     TPMT_HA **nextDigest,
2602*758e9fbaSOystein Eftevaag     TPMT_HA **firstDigest);
2603*758e9fbaSOystein Eftevaag 
2604*758e9fbaSOystein Eftevaag TSS2_RC
2605*758e9fbaSOystein Eftevaag Esys_FieldUpgradeData_Async(
2606*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2607*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2608*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2609*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2610*758e9fbaSOystein Eftevaag     const TPM2B_MAX_BUFFER *fuData);
2611*758e9fbaSOystein Eftevaag 
2612*758e9fbaSOystein Eftevaag TSS2_RC
2613*758e9fbaSOystein Eftevaag Esys_FieldUpgradeData_Finish(
2614*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2615*758e9fbaSOystein Eftevaag     TPMT_HA **nextDigest,
2616*758e9fbaSOystein Eftevaag     TPMT_HA **firstDigest);
2617*758e9fbaSOystein Eftevaag 
2618*758e9fbaSOystein Eftevaag /* Table 185 - TPM2_FirmwareRead Command */
2619*758e9fbaSOystein Eftevaag 
2620*758e9fbaSOystein Eftevaag TSS2_RC
2621*758e9fbaSOystein Eftevaag Esys_FirmwareRead(
2622*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2623*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2624*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2625*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2626*758e9fbaSOystein Eftevaag     UINT32 sequenceNumber,
2627*758e9fbaSOystein Eftevaag     TPM2B_MAX_BUFFER **fuData);
2628*758e9fbaSOystein Eftevaag 
2629*758e9fbaSOystein Eftevaag TSS2_RC
2630*758e9fbaSOystein Eftevaag Esys_FirmwareRead_Async(
2631*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2632*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2633*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2634*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2635*758e9fbaSOystein Eftevaag     UINT32 sequenceNumber);
2636*758e9fbaSOystein Eftevaag 
2637*758e9fbaSOystein Eftevaag TSS2_RC
2638*758e9fbaSOystein Eftevaag Esys_FirmwareRead_Finish(
2639*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2640*758e9fbaSOystein Eftevaag     TPM2B_MAX_BUFFER **fuData);
2641*758e9fbaSOystein Eftevaag 
2642*758e9fbaSOystein Eftevaag /* Table 187 - TPM2_ContextSave Command */
2643*758e9fbaSOystein Eftevaag 
2644*758e9fbaSOystein Eftevaag TSS2_RC
2645*758e9fbaSOystein Eftevaag Esys_ContextSave(
2646*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2647*758e9fbaSOystein Eftevaag     ESYS_TR saveHandle,
2648*758e9fbaSOystein Eftevaag     TPMS_CONTEXT **context);
2649*758e9fbaSOystein Eftevaag 
2650*758e9fbaSOystein Eftevaag TSS2_RC
2651*758e9fbaSOystein Eftevaag Esys_ContextSave_Async(
2652*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2653*758e9fbaSOystein Eftevaag     ESYS_TR saveHandle);
2654*758e9fbaSOystein Eftevaag 
2655*758e9fbaSOystein Eftevaag TSS2_RC
2656*758e9fbaSOystein Eftevaag Esys_ContextSave_Finish(
2657*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2658*758e9fbaSOystein Eftevaag     TPMS_CONTEXT **context);
2659*758e9fbaSOystein Eftevaag 
2660*758e9fbaSOystein Eftevaag /* Table 189 - TPM2_ContextLoad Command */
2661*758e9fbaSOystein Eftevaag 
2662*758e9fbaSOystein Eftevaag TSS2_RC
2663*758e9fbaSOystein Eftevaag Esys_ContextLoad(
2664*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2665*758e9fbaSOystein Eftevaag     const TPMS_CONTEXT *context,
2666*758e9fbaSOystein Eftevaag     ESYS_TR *loadedHandle);
2667*758e9fbaSOystein Eftevaag 
2668*758e9fbaSOystein Eftevaag TSS2_RC
2669*758e9fbaSOystein Eftevaag Esys_ContextLoad_Async(
2670*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2671*758e9fbaSOystein Eftevaag     const TPMS_CONTEXT *context);
2672*758e9fbaSOystein Eftevaag 
2673*758e9fbaSOystein Eftevaag TSS2_RC
2674*758e9fbaSOystein Eftevaag Esys_ContextLoad_Finish(
2675*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2676*758e9fbaSOystein Eftevaag     ESYS_TR *loadedHandle);
2677*758e9fbaSOystein Eftevaag 
2678*758e9fbaSOystein Eftevaag /* Table 191 - TPM2_FlushContext Command */
2679*758e9fbaSOystein Eftevaag 
2680*758e9fbaSOystein Eftevaag TSS2_RC
2681*758e9fbaSOystein Eftevaag Esys_FlushContext(
2682*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2683*758e9fbaSOystein Eftevaag     ESYS_TR flushHandle);
2684*758e9fbaSOystein Eftevaag 
2685*758e9fbaSOystein Eftevaag TSS2_RC
2686*758e9fbaSOystein Eftevaag Esys_FlushContext_Async(
2687*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2688*758e9fbaSOystein Eftevaag     ESYS_TR flushHandle);
2689*758e9fbaSOystein Eftevaag 
2690*758e9fbaSOystein Eftevaag TSS2_RC
2691*758e9fbaSOystein Eftevaag Esys_FlushContext_Finish(
2692*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2693*758e9fbaSOystein Eftevaag 
2694*758e9fbaSOystein Eftevaag /* Table 193 - TPM2_EvictControl Command */
2695*758e9fbaSOystein Eftevaag 
2696*758e9fbaSOystein Eftevaag TSS2_RC
2697*758e9fbaSOystein Eftevaag Esys_EvictControl(
2698*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2699*758e9fbaSOystein Eftevaag     ESYS_TR auth,
2700*758e9fbaSOystein Eftevaag     ESYS_TR objectHandle,
2701*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2702*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2703*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2704*758e9fbaSOystein Eftevaag     TPMI_DH_PERSISTENT persistentHandle,
2705*758e9fbaSOystein Eftevaag     ESYS_TR *newObjectHandle);
2706*758e9fbaSOystein Eftevaag 
2707*758e9fbaSOystein Eftevaag TSS2_RC
2708*758e9fbaSOystein Eftevaag Esys_EvictControl_Async(
2709*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2710*758e9fbaSOystein Eftevaag     ESYS_TR auth,
2711*758e9fbaSOystein Eftevaag     ESYS_TR objectHandle,
2712*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2713*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2714*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2715*758e9fbaSOystein Eftevaag     TPMI_DH_PERSISTENT persistentHandle);
2716*758e9fbaSOystein Eftevaag 
2717*758e9fbaSOystein Eftevaag TSS2_RC
2718*758e9fbaSOystein Eftevaag Esys_EvictControl_Finish(
2719*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2720*758e9fbaSOystein Eftevaag     ESYS_TR *newObjectHandle);
2721*758e9fbaSOystein Eftevaag 
2722*758e9fbaSOystein Eftevaag /* Table 195 - TPM2_ReadClock Command */
2723*758e9fbaSOystein Eftevaag 
2724*758e9fbaSOystein Eftevaag TSS2_RC
2725*758e9fbaSOystein Eftevaag Esys_ReadClock(
2726*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2727*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2728*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2729*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2730*758e9fbaSOystein Eftevaag     TPMS_TIME_INFO **currentTime);
2731*758e9fbaSOystein Eftevaag 
2732*758e9fbaSOystein Eftevaag TSS2_RC
2733*758e9fbaSOystein Eftevaag Esys_ReadClock_Async(
2734*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2735*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2736*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2737*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
2738*758e9fbaSOystein Eftevaag 
2739*758e9fbaSOystein Eftevaag TSS2_RC
2740*758e9fbaSOystein Eftevaag Esys_ReadClock_Finish(
2741*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2742*758e9fbaSOystein Eftevaag     TPMS_TIME_INFO **currentTime);
2743*758e9fbaSOystein Eftevaag 
2744*758e9fbaSOystein Eftevaag /* Table 197 - TPM2_ClockSet Command */
2745*758e9fbaSOystein Eftevaag 
2746*758e9fbaSOystein Eftevaag TSS2_RC
2747*758e9fbaSOystein Eftevaag Esys_ClockSet(
2748*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2749*758e9fbaSOystein Eftevaag     ESYS_TR auth,
2750*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2751*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2752*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2753*758e9fbaSOystein Eftevaag     UINT64 newTime);
2754*758e9fbaSOystein Eftevaag 
2755*758e9fbaSOystein Eftevaag TSS2_RC
2756*758e9fbaSOystein Eftevaag Esys_ClockSet_Async(
2757*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2758*758e9fbaSOystein Eftevaag     ESYS_TR auth,
2759*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2760*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2761*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2762*758e9fbaSOystein Eftevaag     UINT64 newTime);
2763*758e9fbaSOystein Eftevaag 
2764*758e9fbaSOystein Eftevaag TSS2_RC
2765*758e9fbaSOystein Eftevaag Esys_ClockSet_Finish(
2766*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2767*758e9fbaSOystein Eftevaag 
2768*758e9fbaSOystein Eftevaag /* Table 199 - TPM2_ClockRateAdjust Command */
2769*758e9fbaSOystein Eftevaag 
2770*758e9fbaSOystein Eftevaag TSS2_RC
2771*758e9fbaSOystein Eftevaag Esys_ClockRateAdjust(
2772*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2773*758e9fbaSOystein Eftevaag     ESYS_TR auth,
2774*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2775*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2776*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2777*758e9fbaSOystein Eftevaag     TPM2_CLOCK_ADJUST rateAdjust);
2778*758e9fbaSOystein Eftevaag 
2779*758e9fbaSOystein Eftevaag TSS2_RC
2780*758e9fbaSOystein Eftevaag Esys_ClockRateAdjust_Async(
2781*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2782*758e9fbaSOystein Eftevaag     ESYS_TR auth,
2783*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2784*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2785*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2786*758e9fbaSOystein Eftevaag     TPM2_CLOCK_ADJUST rateAdjust);
2787*758e9fbaSOystein Eftevaag 
2788*758e9fbaSOystein Eftevaag TSS2_RC
2789*758e9fbaSOystein Eftevaag Esys_ClockRateAdjust_Finish(
2790*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2791*758e9fbaSOystein Eftevaag 
2792*758e9fbaSOystein Eftevaag /* Table 201 - TPM2_GetCapability Command */
2793*758e9fbaSOystein Eftevaag 
2794*758e9fbaSOystein Eftevaag TSS2_RC
2795*758e9fbaSOystein Eftevaag Esys_GetCapability(
2796*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2797*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2798*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2799*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2800*758e9fbaSOystein Eftevaag     TPM2_CAP capability,
2801*758e9fbaSOystein Eftevaag     UINT32 property,
2802*758e9fbaSOystein Eftevaag     UINT32 propertyCount,
2803*758e9fbaSOystein Eftevaag     TPMI_YES_NO *moreData,
2804*758e9fbaSOystein Eftevaag     TPMS_CAPABILITY_DATA **capabilityData);
2805*758e9fbaSOystein Eftevaag 
2806*758e9fbaSOystein Eftevaag TSS2_RC
2807*758e9fbaSOystein Eftevaag Esys_GetCapability_Async(
2808*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2809*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2810*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2811*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2812*758e9fbaSOystein Eftevaag     TPM2_CAP capability,
2813*758e9fbaSOystein Eftevaag     UINT32 property,
2814*758e9fbaSOystein Eftevaag     UINT32 propertyCount);
2815*758e9fbaSOystein Eftevaag 
2816*758e9fbaSOystein Eftevaag TSS2_RC
2817*758e9fbaSOystein Eftevaag Esys_GetCapability_Finish(
2818*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2819*758e9fbaSOystein Eftevaag     TPMI_YES_NO *moreData,
2820*758e9fbaSOystein Eftevaag     TPMS_CAPABILITY_DATA **capabilityData);
2821*758e9fbaSOystein Eftevaag 
2822*758e9fbaSOystein Eftevaag /* Table 203 - TPM2_TestParms Command */
2823*758e9fbaSOystein Eftevaag 
2824*758e9fbaSOystein Eftevaag TSS2_RC
2825*758e9fbaSOystein Eftevaag Esys_TestParms(
2826*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2827*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2828*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2829*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2830*758e9fbaSOystein Eftevaag     const TPMT_PUBLIC_PARMS *parameters);
2831*758e9fbaSOystein Eftevaag 
2832*758e9fbaSOystein Eftevaag TSS2_RC
2833*758e9fbaSOystein Eftevaag Esys_TestParms_Async(
2834*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2835*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2836*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2837*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2838*758e9fbaSOystein Eftevaag     const TPMT_PUBLIC_PARMS *parameters);
2839*758e9fbaSOystein Eftevaag 
2840*758e9fbaSOystein Eftevaag TSS2_RC
2841*758e9fbaSOystein Eftevaag Esys_TestParms_Finish(
2842*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2843*758e9fbaSOystein Eftevaag 
2844*758e9fbaSOystein Eftevaag /* Table 205 - TPM2_NV_DefineSpace Command */
2845*758e9fbaSOystein Eftevaag 
2846*758e9fbaSOystein Eftevaag TSS2_RC
2847*758e9fbaSOystein Eftevaag Esys_NV_DefineSpace(
2848*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2849*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
2850*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2851*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2852*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2853*758e9fbaSOystein Eftevaag     const TPM2B_AUTH *auth,
2854*758e9fbaSOystein Eftevaag     const TPM2B_NV_PUBLIC *publicInfo,
2855*758e9fbaSOystein Eftevaag     ESYS_TR *nvHandle);
2856*758e9fbaSOystein Eftevaag 
2857*758e9fbaSOystein Eftevaag TSS2_RC
2858*758e9fbaSOystein Eftevaag Esys_NV_DefineSpace_Async(
2859*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2860*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
2861*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2862*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2863*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2864*758e9fbaSOystein Eftevaag     const TPM2B_AUTH *auth,
2865*758e9fbaSOystein Eftevaag     const TPM2B_NV_PUBLIC *publicInfo);
2866*758e9fbaSOystein Eftevaag 
2867*758e9fbaSOystein Eftevaag TSS2_RC
2868*758e9fbaSOystein Eftevaag Esys_NV_DefineSpace_Finish(
2869*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2870*758e9fbaSOystein Eftevaag     ESYS_TR *nvHandle);
2871*758e9fbaSOystein Eftevaag 
2872*758e9fbaSOystein Eftevaag /* Table 207 - TPM2_NV_UndefineSpace Command */
2873*758e9fbaSOystein Eftevaag 
2874*758e9fbaSOystein Eftevaag TSS2_RC
2875*758e9fbaSOystein Eftevaag Esys_NV_UndefineSpace(
2876*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2877*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
2878*758e9fbaSOystein Eftevaag     ESYS_TR nvIndex,
2879*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2880*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2881*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
2882*758e9fbaSOystein Eftevaag 
2883*758e9fbaSOystein Eftevaag TSS2_RC
2884*758e9fbaSOystein Eftevaag Esys_NV_UndefineSpace_Async(
2885*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2886*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
2887*758e9fbaSOystein Eftevaag     ESYS_TR nvIndex,
2888*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2889*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2890*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
2891*758e9fbaSOystein Eftevaag 
2892*758e9fbaSOystein Eftevaag TSS2_RC
2893*758e9fbaSOystein Eftevaag Esys_NV_UndefineSpace_Finish(
2894*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2895*758e9fbaSOystein Eftevaag 
2896*758e9fbaSOystein Eftevaag /* Table 209 - TPM2_NV_UndefineSpaceSpecial Command */
2897*758e9fbaSOystein Eftevaag 
2898*758e9fbaSOystein Eftevaag TSS2_RC
2899*758e9fbaSOystein Eftevaag Esys_NV_UndefineSpaceSpecial(
2900*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2901*758e9fbaSOystein Eftevaag     ESYS_TR nvIndex,
2902*758e9fbaSOystein Eftevaag     ESYS_TR platform,
2903*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2904*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2905*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
2906*758e9fbaSOystein Eftevaag 
2907*758e9fbaSOystein Eftevaag TSS2_RC
2908*758e9fbaSOystein Eftevaag Esys_NV_UndefineSpaceSpecial_Async(
2909*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2910*758e9fbaSOystein Eftevaag     ESYS_TR nvIndex,
2911*758e9fbaSOystein Eftevaag     ESYS_TR platform,
2912*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2913*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2914*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
2915*758e9fbaSOystein Eftevaag 
2916*758e9fbaSOystein Eftevaag TSS2_RC
2917*758e9fbaSOystein Eftevaag Esys_NV_UndefineSpaceSpecial_Finish(
2918*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2919*758e9fbaSOystein Eftevaag 
2920*758e9fbaSOystein Eftevaag /* Table 211 - TPM2_NV_ReadPublic Command */
2921*758e9fbaSOystein Eftevaag 
2922*758e9fbaSOystein Eftevaag TSS2_RC
2923*758e9fbaSOystein Eftevaag Esys_NV_ReadPublic(
2924*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2925*758e9fbaSOystein Eftevaag     ESYS_TR nvIndex,
2926*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2927*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2928*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2929*758e9fbaSOystein Eftevaag     TPM2B_NV_PUBLIC **nvPublic,
2930*758e9fbaSOystein Eftevaag     TPM2B_NAME **nvName);
2931*758e9fbaSOystein Eftevaag 
2932*758e9fbaSOystein Eftevaag TSS2_RC
2933*758e9fbaSOystein Eftevaag Esys_NV_ReadPublic_Async(
2934*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2935*758e9fbaSOystein Eftevaag     ESYS_TR nvIndex,
2936*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2937*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2938*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
2939*758e9fbaSOystein Eftevaag 
2940*758e9fbaSOystein Eftevaag TSS2_RC
2941*758e9fbaSOystein Eftevaag Esys_NV_ReadPublic_Finish(
2942*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2943*758e9fbaSOystein Eftevaag     TPM2B_NV_PUBLIC **nvPublic,
2944*758e9fbaSOystein Eftevaag     TPM2B_NAME **nvName);
2945*758e9fbaSOystein Eftevaag 
2946*758e9fbaSOystein Eftevaag /* Table 213 - TPM2_NV_Write Command */
2947*758e9fbaSOystein Eftevaag 
2948*758e9fbaSOystein Eftevaag TSS2_RC
2949*758e9fbaSOystein Eftevaag Esys_NV_Write(
2950*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2951*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
2952*758e9fbaSOystein Eftevaag     ESYS_TR nvIndex,
2953*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2954*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2955*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2956*758e9fbaSOystein Eftevaag     const TPM2B_MAX_NV_BUFFER *data,
2957*758e9fbaSOystein Eftevaag     UINT16 offset);
2958*758e9fbaSOystein Eftevaag 
2959*758e9fbaSOystein Eftevaag TSS2_RC
2960*758e9fbaSOystein Eftevaag Esys_NV_Write_Async(
2961*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2962*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
2963*758e9fbaSOystein Eftevaag     ESYS_TR nvIndex,
2964*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2965*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2966*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
2967*758e9fbaSOystein Eftevaag     const TPM2B_MAX_NV_BUFFER *data,
2968*758e9fbaSOystein Eftevaag     UINT16 offset);
2969*758e9fbaSOystein Eftevaag 
2970*758e9fbaSOystein Eftevaag TSS2_RC
2971*758e9fbaSOystein Eftevaag Esys_NV_Write_Finish(
2972*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2973*758e9fbaSOystein Eftevaag 
2974*758e9fbaSOystein Eftevaag /* Table 215 - TPM2_NV_Increment Command */
2975*758e9fbaSOystein Eftevaag 
2976*758e9fbaSOystein Eftevaag TSS2_RC
2977*758e9fbaSOystein Eftevaag Esys_NV_Increment(
2978*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2979*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
2980*758e9fbaSOystein Eftevaag     ESYS_TR nvIndex,
2981*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2982*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2983*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
2984*758e9fbaSOystein Eftevaag 
2985*758e9fbaSOystein Eftevaag TSS2_RC
2986*758e9fbaSOystein Eftevaag Esys_NV_Increment_Async(
2987*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
2988*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
2989*758e9fbaSOystein Eftevaag     ESYS_TR nvIndex,
2990*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
2991*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
2992*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
2993*758e9fbaSOystein Eftevaag 
2994*758e9fbaSOystein Eftevaag TSS2_RC
2995*758e9fbaSOystein Eftevaag Esys_NV_Increment_Finish(
2996*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
2997*758e9fbaSOystein Eftevaag 
2998*758e9fbaSOystein Eftevaag /* Table 217 - TPM2_NV_Extend Command */
2999*758e9fbaSOystein Eftevaag 
3000*758e9fbaSOystein Eftevaag TSS2_RC
3001*758e9fbaSOystein Eftevaag Esys_NV_Extend(
3002*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
3003*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
3004*758e9fbaSOystein Eftevaag     ESYS_TR nvIndex,
3005*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
3006*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
3007*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
3008*758e9fbaSOystein Eftevaag     const TPM2B_MAX_NV_BUFFER *data);
3009*758e9fbaSOystein Eftevaag 
3010*758e9fbaSOystein Eftevaag TSS2_RC
3011*758e9fbaSOystein Eftevaag Esys_NV_Extend_Async(
3012*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
3013*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
3014*758e9fbaSOystein Eftevaag     ESYS_TR nvIndex,
3015*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
3016*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
3017*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
3018*758e9fbaSOystein Eftevaag     const TPM2B_MAX_NV_BUFFER *data);
3019*758e9fbaSOystein Eftevaag 
3020*758e9fbaSOystein Eftevaag TSS2_RC
3021*758e9fbaSOystein Eftevaag Esys_NV_Extend_Finish(
3022*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
3023*758e9fbaSOystein Eftevaag 
3024*758e9fbaSOystein Eftevaag /* Table 219 - TPM2_NV_SetBits Command */
3025*758e9fbaSOystein Eftevaag 
3026*758e9fbaSOystein Eftevaag TSS2_RC
3027*758e9fbaSOystein Eftevaag Esys_NV_SetBits(
3028*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
3029*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
3030*758e9fbaSOystein Eftevaag     ESYS_TR nvIndex,
3031*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
3032*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
3033*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
3034*758e9fbaSOystein Eftevaag     UINT64 bits);
3035*758e9fbaSOystein Eftevaag 
3036*758e9fbaSOystein Eftevaag TSS2_RC
3037*758e9fbaSOystein Eftevaag Esys_NV_SetBits_Async(
3038*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
3039*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
3040*758e9fbaSOystein Eftevaag     ESYS_TR nvIndex,
3041*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
3042*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
3043*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
3044*758e9fbaSOystein Eftevaag     UINT64 bits);
3045*758e9fbaSOystein Eftevaag 
3046*758e9fbaSOystein Eftevaag TSS2_RC
3047*758e9fbaSOystein Eftevaag Esys_NV_SetBits_Finish(
3048*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
3049*758e9fbaSOystein Eftevaag 
3050*758e9fbaSOystein Eftevaag /* Table 221 - TPM2_NV_WriteLock Command */
3051*758e9fbaSOystein Eftevaag 
3052*758e9fbaSOystein Eftevaag TSS2_RC
3053*758e9fbaSOystein Eftevaag Esys_NV_WriteLock(
3054*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
3055*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
3056*758e9fbaSOystein Eftevaag     ESYS_TR nvIndex,
3057*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
3058*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
3059*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
3060*758e9fbaSOystein Eftevaag 
3061*758e9fbaSOystein Eftevaag TSS2_RC
3062*758e9fbaSOystein Eftevaag Esys_NV_WriteLock_Async(
3063*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
3064*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
3065*758e9fbaSOystein Eftevaag     ESYS_TR nvIndex,
3066*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
3067*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
3068*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
3069*758e9fbaSOystein Eftevaag 
3070*758e9fbaSOystein Eftevaag TSS2_RC
3071*758e9fbaSOystein Eftevaag Esys_NV_WriteLock_Finish(
3072*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
3073*758e9fbaSOystein Eftevaag 
3074*758e9fbaSOystein Eftevaag /* Table 223 - TPM2_NV_GlobalWriteLock Command */
3075*758e9fbaSOystein Eftevaag 
3076*758e9fbaSOystein Eftevaag TSS2_RC
3077*758e9fbaSOystein Eftevaag Esys_NV_GlobalWriteLock(
3078*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
3079*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
3080*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
3081*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
3082*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
3083*758e9fbaSOystein Eftevaag 
3084*758e9fbaSOystein Eftevaag TSS2_RC
3085*758e9fbaSOystein Eftevaag Esys_NV_GlobalWriteLock_Async(
3086*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
3087*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
3088*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
3089*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
3090*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
3091*758e9fbaSOystein Eftevaag 
3092*758e9fbaSOystein Eftevaag TSS2_RC
3093*758e9fbaSOystein Eftevaag Esys_NV_GlobalWriteLock_Finish(
3094*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
3095*758e9fbaSOystein Eftevaag 
3096*758e9fbaSOystein Eftevaag /* Table 225 - TPM2_NV_Read Command */
3097*758e9fbaSOystein Eftevaag 
3098*758e9fbaSOystein Eftevaag TSS2_RC
3099*758e9fbaSOystein Eftevaag Esys_NV_Read(
3100*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
3101*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
3102*758e9fbaSOystein Eftevaag     ESYS_TR nvIndex,
3103*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
3104*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
3105*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
3106*758e9fbaSOystein Eftevaag     UINT16 size,
3107*758e9fbaSOystein Eftevaag     UINT16 offset,
3108*758e9fbaSOystein Eftevaag     TPM2B_MAX_NV_BUFFER **data);
3109*758e9fbaSOystein Eftevaag 
3110*758e9fbaSOystein Eftevaag TSS2_RC
3111*758e9fbaSOystein Eftevaag Esys_NV_Read_Async(
3112*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
3113*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
3114*758e9fbaSOystein Eftevaag     ESYS_TR nvIndex,
3115*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
3116*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
3117*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
3118*758e9fbaSOystein Eftevaag     UINT16 size,
3119*758e9fbaSOystein Eftevaag     UINT16 offset);
3120*758e9fbaSOystein Eftevaag 
3121*758e9fbaSOystein Eftevaag TSS2_RC
3122*758e9fbaSOystein Eftevaag Esys_NV_Read_Finish(
3123*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
3124*758e9fbaSOystein Eftevaag     TPM2B_MAX_NV_BUFFER **data);
3125*758e9fbaSOystein Eftevaag 
3126*758e9fbaSOystein Eftevaag /* Table 227 - TPM2_NV_ReadLock Command */
3127*758e9fbaSOystein Eftevaag 
3128*758e9fbaSOystein Eftevaag TSS2_RC
3129*758e9fbaSOystein Eftevaag Esys_NV_ReadLock(
3130*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
3131*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
3132*758e9fbaSOystein Eftevaag     ESYS_TR nvIndex,
3133*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
3134*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
3135*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
3136*758e9fbaSOystein Eftevaag 
3137*758e9fbaSOystein Eftevaag TSS2_RC
3138*758e9fbaSOystein Eftevaag Esys_NV_ReadLock_Async(
3139*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
3140*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
3141*758e9fbaSOystein Eftevaag     ESYS_TR nvIndex,
3142*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
3143*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
3144*758e9fbaSOystein Eftevaag     ESYS_TR shandle3);
3145*758e9fbaSOystein Eftevaag 
3146*758e9fbaSOystein Eftevaag TSS2_RC
3147*758e9fbaSOystein Eftevaag Esys_NV_ReadLock_Finish(
3148*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
3149*758e9fbaSOystein Eftevaag 
3150*758e9fbaSOystein Eftevaag /* Table 229 - TPM2_NV_ChangeAuth Command */
3151*758e9fbaSOystein Eftevaag 
3152*758e9fbaSOystein Eftevaag TSS2_RC
3153*758e9fbaSOystein Eftevaag Esys_NV_ChangeAuth(
3154*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
3155*758e9fbaSOystein Eftevaag     ESYS_TR nvIndex,
3156*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
3157*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
3158*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
3159*758e9fbaSOystein Eftevaag     const TPM2B_AUTH *newAuth);
3160*758e9fbaSOystein Eftevaag 
3161*758e9fbaSOystein Eftevaag TSS2_RC
3162*758e9fbaSOystein Eftevaag Esys_NV_ChangeAuth_Async(
3163*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
3164*758e9fbaSOystein Eftevaag     ESYS_TR nvIndex,
3165*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
3166*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
3167*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
3168*758e9fbaSOystein Eftevaag     const TPM2B_AUTH *newAuth);
3169*758e9fbaSOystein Eftevaag 
3170*758e9fbaSOystein Eftevaag TSS2_RC
3171*758e9fbaSOystein Eftevaag Esys_NV_ChangeAuth_Finish(
3172*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext);
3173*758e9fbaSOystein Eftevaag 
3174*758e9fbaSOystein Eftevaag /* Table 231 - TPM2_NV_Certify Command */
3175*758e9fbaSOystein Eftevaag 
3176*758e9fbaSOystein Eftevaag TSS2_RC
3177*758e9fbaSOystein Eftevaag Esys_NV_Certify(
3178*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
3179*758e9fbaSOystein Eftevaag     ESYS_TR signHandle,
3180*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
3181*758e9fbaSOystein Eftevaag     ESYS_TR nvIndex,
3182*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
3183*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
3184*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
3185*758e9fbaSOystein Eftevaag     const TPM2B_DATA *qualifyingData,
3186*758e9fbaSOystein Eftevaag     const TPMT_SIG_SCHEME *inScheme,
3187*758e9fbaSOystein Eftevaag     UINT16 size,
3188*758e9fbaSOystein Eftevaag     UINT16 offset,
3189*758e9fbaSOystein Eftevaag     TPM2B_ATTEST **certifyInfo,
3190*758e9fbaSOystein Eftevaag     TPMT_SIGNATURE **signature);
3191*758e9fbaSOystein Eftevaag 
3192*758e9fbaSOystein Eftevaag TSS2_RC
3193*758e9fbaSOystein Eftevaag Esys_NV_Certify_Async(
3194*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
3195*758e9fbaSOystein Eftevaag     ESYS_TR signHandle,
3196*758e9fbaSOystein Eftevaag     ESYS_TR authHandle,
3197*758e9fbaSOystein Eftevaag     ESYS_TR nvIndex,
3198*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
3199*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
3200*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
3201*758e9fbaSOystein Eftevaag     const TPM2B_DATA *qualifyingData,
3202*758e9fbaSOystein Eftevaag     const TPMT_SIG_SCHEME *inScheme,
3203*758e9fbaSOystein Eftevaag     UINT16 size,
3204*758e9fbaSOystein Eftevaag     UINT16 offset);
3205*758e9fbaSOystein Eftevaag 
3206*758e9fbaSOystein Eftevaag TSS2_RC
3207*758e9fbaSOystein Eftevaag Esys_NV_Certify_Finish(
3208*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
3209*758e9fbaSOystein Eftevaag     TPM2B_ATTEST **certifyInfo,
3210*758e9fbaSOystein Eftevaag     TPMT_SIGNATURE **signature);
3211*758e9fbaSOystein Eftevaag 
3212*758e9fbaSOystein Eftevaag /* Table 233 - TPM2_Vendor_TCG_Test Command */
3213*758e9fbaSOystein Eftevaag 
3214*758e9fbaSOystein Eftevaag TSS2_RC
3215*758e9fbaSOystein Eftevaag Esys_Vendor_TCG_Test(
3216*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
3217*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
3218*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
3219*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
3220*758e9fbaSOystein Eftevaag     const TPM2B_DATA *inputData,
3221*758e9fbaSOystein Eftevaag     TPM2B_DATA **outputData);
3222*758e9fbaSOystein Eftevaag 
3223*758e9fbaSOystein Eftevaag TSS2_RC
3224*758e9fbaSOystein Eftevaag Esys_Vendor_TCG_Test_Async(
3225*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
3226*758e9fbaSOystein Eftevaag     ESYS_TR shandle1,
3227*758e9fbaSOystein Eftevaag     ESYS_TR shandle2,
3228*758e9fbaSOystein Eftevaag     ESYS_TR shandle3,
3229*758e9fbaSOystein Eftevaag     const TPM2B_DATA *inputData);
3230*758e9fbaSOystein Eftevaag 
3231*758e9fbaSOystein Eftevaag TSS2_RC
3232*758e9fbaSOystein Eftevaag Esys_Vendor_TCG_Test_Finish(
3233*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esysContext,
3234*758e9fbaSOystein Eftevaag     TPM2B_DATA **outputData);
3235*758e9fbaSOystein Eftevaag 
3236*758e9fbaSOystein Eftevaag /*
3237*758e9fbaSOystein Eftevaag  * TPM 2.0 ESAPI Helper Functions
3238*758e9fbaSOystein Eftevaag  */
3239*758e9fbaSOystein Eftevaag void
3240*758e9fbaSOystein Eftevaag Esys_Free(
3241*758e9fbaSOystein Eftevaag     void *__ptr);
3242*758e9fbaSOystein Eftevaag 
3243*758e9fbaSOystein Eftevaag TSS2_RC
3244*758e9fbaSOystein Eftevaag Esys_GetSysContext(
3245*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context,
3246*758e9fbaSOystein Eftevaag     TSS2_SYS_CONTEXT **sys_context);
3247*758e9fbaSOystein Eftevaag 
3248*758e9fbaSOystein Eftevaag #ifdef __cplusplus
3249*758e9fbaSOystein Eftevaag }
3250*758e9fbaSOystein Eftevaag #endif
3251*758e9fbaSOystein Eftevaag 
3252*758e9fbaSOystein Eftevaag #endif /* TSS2_ESYS_H */
3253