1 /* SPDX-License-Identifier: BSD-2-Clause */
2 /***********************************************************************;
3  * Copyright (c) 2015-2018, Intel Corporation
4  *
5  * Copyright 2015, Andreas Fuchs @ Fraunhofer SIT
6  *
7  * All rights reserved.
8  ***********************************************************************/
9 
10 #ifndef TSS2_SYS_H
11 #define TSS2_SYS_H
12 
13 #include "tss2_common.h"
14 #include "tss2_tcti.h"
15 #include "tss2_tpm2_types.h"
16 
17 #ifndef TSS2_API_VERSION_1_2_1_108
18 #error Version mismatch among TSS2 header files.
19 #endif  /* TSS2_API_VERSION_1_2_1_108 */
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
25 /* SAPI context blob */
26 typedef struct _TSS2_SYS_OPAQUE_CONTEXT_BLOB TSS2_SYS_CONTEXT;
27 
28 #define TSS2_SYS_MAX_SESSIONS 3
29 
30 /* Input structure for authorization area(s). */
31 typedef struct TSS2L_SYS_AUTH_COMMAND TSS2L_SYS_AUTH_COMMAND;
32 struct TSS2L_SYS_AUTH_COMMAND {
33     uint16_t count;
34     TPMS_AUTH_COMMAND auths[TSS2_SYS_MAX_SESSIONS];
35 };
36 
37 typedef struct TSS2L_SYS_AUTH_RESPONSE TSS2L_SYS_AUTH_RESPONSE;
38 struct TSS2L_SYS_AUTH_RESPONSE {
39     uint16_t count;
40     TPMS_AUTH_RESPONSE auths[TSS2_SYS_MAX_SESSIONS];
41 };
42 
43 size_t  Tss2_Sys_GetContextSize(
44     size_t maxCommandResponseSize);
45 
46 TSS2_RC Tss2_Sys_Initialize(
47     TSS2_SYS_CONTEXT *sysContext,
48     size_t contextSize,
49     TSS2_TCTI_CONTEXT *tctiContext,
50     TSS2_ABI_VERSION *abiVersion);
51 
52 void Tss2_Sys_Finalize(
53     TSS2_SYS_CONTEXT *sysContext);
54 
55 TSS2_RC Tss2_Sys_GetTctiContext(
56     TSS2_SYS_CONTEXT *sysContext,
57     TSS2_TCTI_CONTEXT **tctiContext);
58 
59 /* Command Preparation Functions */
60 TSS2_RC Tss2_Sys_GetDecryptParam(
61     TSS2_SYS_CONTEXT *sysContext,
62     size_t *decryptParamSize,
63     const uint8_t **decryptParamBuffer);
64 
65 TSS2_RC Tss2_Sys_SetDecryptParam(
66     TSS2_SYS_CONTEXT *sysContext,
67     size_t decryptParamSize,
68     const uint8_t *decryptParamBuffer);
69 
70 TSS2_RC Tss2_Sys_GetCpBuffer(
71     TSS2_SYS_CONTEXT *sysContext,
72     size_t *cpBufferUsedSize,
73     const uint8_t **cpBuffer);
74 
75 TSS2_RC Tss2_Sys_SetCmdAuths(
76     TSS2_SYS_CONTEXT *sysContext,
77     const TSS2L_SYS_AUTH_COMMAND *cmdAuthsArray);
78 
79 /* Command Execution Functions */
80 TSS2_RC Tss2_Sys_ExecuteAsync(
81     TSS2_SYS_CONTEXT *sysContext);
82 
83 TSS2_RC Tss2_Sys_ExecuteFinish(
84     TSS2_SYS_CONTEXT *sysContext,
85     int32_t timeout);
86 
87 TSS2_RC Tss2_Sys_Execute(
88     TSS2_SYS_CONTEXT *sysContext);
89 
90 /* Command Completion functions */
91 TSS2_RC Tss2_Sys_GetCommandCode(
92     TSS2_SYS_CONTEXT *sysContext,
93     UINT8 *commandCode);
94 
95 TSS2_RC Tss2_Sys_GetRspAuths(
96     TSS2_SYS_CONTEXT *sysContext,
97     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
98 
99 TSS2_RC Tss2_Sys_GetEncryptParam(
100     TSS2_SYS_CONTEXT *sysContext,
101     size_t *encryptParamSize,
102     const uint8_t **encryptParamBuffer);
103 
104 TSS2_RC Tss2_Sys_SetEncryptParam(
105     TSS2_SYS_CONTEXT *sysContext,
106     size_t encryptParamSize,
107     const uint8_t *encryptParamBuffer);
108 
109 TSS2_RC Tss2_Sys_GetRpBuffer(
110     TSS2_SYS_CONTEXT *sysContext,
111     size_t *rpBufferUsedSize,
112     const uint8_t **rpBuffer);
113 
114 TSS2_RC Tss2_Sys_Startup_Prepare(
115     TSS2_SYS_CONTEXT *sysContext,
116     TPM2_SU startupType);
117 
118 TSS2_RC Tss2_Sys_Startup_Complete(
119     TSS2_SYS_CONTEXT *sysContext);
120 
121 TSS2_RC Tss2_Sys_Startup(
122     TSS2_SYS_CONTEXT *sysContext,
123     TPM2_SU startupType);
124 
125 TSS2_RC Tss2_Sys_Shutdown_Prepare(
126     TSS2_SYS_CONTEXT *sysContext,
127     TPM2_SU shutdownType);
128 
129 TSS2_RC Tss2_Sys_Shutdown_Complete(
130     TSS2_SYS_CONTEXT *sysContext);
131 
132 TSS2_RC Tss2_Sys_Shutdown(
133     TSS2_SYS_CONTEXT *sysContext,
134     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
135     TPM2_SU shutdownType,
136     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
137 
138 TSS2_RC Tss2_Sys_SelfTest_Prepare(
139     TSS2_SYS_CONTEXT *sysContext,
140     TPMI_YES_NO fullTest);
141 
142 TSS2_RC Tss2_Sys_SelfTest_Complete(
143     TSS2_SYS_CONTEXT *sysContext);
144 
145 TSS2_RC Tss2_Sys_SelfTest(
146     TSS2_SYS_CONTEXT *sysContext,
147     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
148     TPMI_YES_NO fullTest,
149     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
150 
151 TSS2_RC Tss2_Sys_IncrementalSelfTest_Prepare(
152     TSS2_SYS_CONTEXT *sysContext,
153     const TPML_ALG *toTest);
154 
155 TSS2_RC Tss2_Sys_IncrementalSelfTest_Complete(
156     TSS2_SYS_CONTEXT *sysContext,
157     TPML_ALG *toDoList);
158 
159 TSS2_RC Tss2_Sys_IncrementalSelfTest(
160     TSS2_SYS_CONTEXT *sysContext,
161     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
162     const TPML_ALG *toTest,
163     TPML_ALG *toDoList,
164     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
165 
166 TSS2_RC Tss2_Sys_GetTestResult_Prepare(
167     TSS2_SYS_CONTEXT *sysContext);
168 
169 TSS2_RC Tss2_Sys_GetTestResult_Complete(
170     TSS2_SYS_CONTEXT *sysContext,
171     TPM2B_MAX_BUFFER *outData,
172     TPM2_RC *testResult);
173 
174 TSS2_RC Tss2_Sys_GetTestResult(
175     TSS2_SYS_CONTEXT *sysContext,
176     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
177     TPM2B_MAX_BUFFER *outData,
178     TPM2_RC *testResult,
179     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
180 
181 TSS2_RC Tss2_Sys_StartAuthSession_Prepare(
182     TSS2_SYS_CONTEXT *sysContext,
183     TPMI_DH_OBJECT tpmKey,
184     TPMI_DH_ENTITY bind,
185     const TPM2B_NONCE *nonceCaller,
186     const TPM2B_ENCRYPTED_SECRET *encryptedSalt,
187     TPM2_SE sessionType,
188     const TPMT_SYM_DEF    *symmetric,
189     TPMI_ALG_HASH authHash);
190 
191 TSS2_RC Tss2_Sys_StartAuthSession_Complete(
192     TSS2_SYS_CONTEXT *sysContext,
193     TPMI_SH_AUTH_SESSION *sessionHandle,
194     TPM2B_NONCE *nonceTPM);
195 
196 TSS2_RC Tss2_Sys_StartAuthSession(
197     TSS2_SYS_CONTEXT *sysContext,
198     TPMI_DH_OBJECT tpmKey,
199     TPMI_DH_ENTITY bind,
200     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
201     const TPM2B_NONCE *nonceCaller,
202     const TPM2B_ENCRYPTED_SECRET *encryptedSalt,
203     TPM2_SE sessionType,
204     const TPMT_SYM_DEF    *symmetric,
205     TPMI_ALG_HASH authHash,
206     TPMI_SH_AUTH_SESSION *sessionHandle,
207     TPM2B_NONCE *nonceTPM,
208     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
209 
210 TSS2_RC Tss2_Sys_PolicyRestart_Prepare(
211     TSS2_SYS_CONTEXT *sysContext,
212     TPMI_SH_POLICY sessionHandle);
213 
214 TSS2_RC Tss2_Sys_PolicyRestart_Complete(
215     TSS2_SYS_CONTEXT *sysContext);
216 
217 TSS2_RC Tss2_Sys_PolicyRestart(
218     TSS2_SYS_CONTEXT *sysContext,
219     TPMI_SH_POLICY sessionHandle,
220     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
221     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
222 
223 TSS2_RC Tss2_Sys_Create_Prepare(
224     TSS2_SYS_CONTEXT *sysContext,
225     TPMI_DH_OBJECT parentHandle,
226     const TPM2B_SENSITIVE_CREATE *inSensitive,
227     const TPM2B_PUBLIC *inPublic,
228     const TPM2B_DATA *outsideInfo,
229     const TPML_PCR_SELECTION *creationPCR);
230 
231 TSS2_RC Tss2_Sys_Create_Complete(
232     TSS2_SYS_CONTEXT *sysContext,
233     TPM2B_PRIVATE *outPrivate,
234     TPM2B_PUBLIC *outPublic,
235     TPM2B_CREATION_DATA *creationData,
236     TPM2B_DIGEST *creationHash,
237     TPMT_TK_CREATION *creationTicket);
238 
239 TSS2_RC Tss2_Sys_Create(
240     TSS2_SYS_CONTEXT *sysContext,
241     TPMI_DH_OBJECT parentHandle,
242     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
243     const TPM2B_SENSITIVE_CREATE *inSensitive,
244     const TPM2B_PUBLIC *inPublic,
245     const TPM2B_DATA *outsideInfo,
246     const TPML_PCR_SELECTION *creationPCR,
247     TPM2B_PRIVATE *outPrivate,
248     TPM2B_PUBLIC *outPublic,
249     TPM2B_CREATION_DATA *creationData,
250     TPM2B_DIGEST *creationHash,
251     TPMT_TK_CREATION *creationTicket,
252     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray
253     );
254 
255 TSS2_RC Tss2_Sys_Load_Prepare(
256     TSS2_SYS_CONTEXT *sysContext,
257     TPMI_DH_OBJECT parentHandle,
258     const TPM2B_PRIVATE *inPrivate,
259     const TPM2B_PUBLIC *inPublic
260     );
261 
262 TSS2_RC Tss2_Sys_Load_Complete(
263     TSS2_SYS_CONTEXT *sysContext,
264     TPM2_HANDLE *objectHandle,
265     TPM2B_NAME *name
266     );
267 
268 TSS2_RC Tss2_Sys_Load(
269     TSS2_SYS_CONTEXT *sysContext,
270     TPMI_DH_OBJECT parentHandle,
271     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
272     const TPM2B_PRIVATE *inPrivate,
273     const TPM2B_PUBLIC *inPublic,
274     TPM2_HANDLE *objectHandle,
275     TPM2B_NAME *name,
276     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray
277     );
278 
279 TSS2_RC Tss2_Sys_LoadExternal_Prepare(
280     TSS2_SYS_CONTEXT *sysContext,
281     const TPM2B_SENSITIVE *inPrivate,
282     const TPM2B_PUBLIC *inPublic,
283     TPMI_RH_HIERARCHY hierarchy);
284 
285 TSS2_RC Tss2_Sys_LoadExternal_Complete(
286     TSS2_SYS_CONTEXT *sysContext,
287     TPM2_HANDLE *objectHandle,
288     TPM2B_NAME *name);
289 
290 TSS2_RC Tss2_Sys_LoadExternal(
291     TSS2_SYS_CONTEXT *sysContext,
292     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
293     const TPM2B_SENSITIVE *inPrivate,
294     const TPM2B_PUBLIC *inPublic,
295     TPMI_RH_HIERARCHY hierarchy,
296     TPM2_HANDLE *objectHandle,
297     TPM2B_NAME *name,
298     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
299 
300 TSS2_RC Tss2_Sys_ReadPublic_Prepare(
301     TSS2_SYS_CONTEXT *sysContext,
302     TPMI_DH_OBJECT objectHandle);
303 
304 TSS2_RC Tss2_Sys_ReadPublic_Complete(
305     TSS2_SYS_CONTEXT *sysContext,
306     TPM2B_PUBLIC *outPublic,
307     TPM2B_NAME *name,
308     TPM2B_NAME *qualifiedName);
309 
310 TSS2_RC Tss2_Sys_ReadPublic(
311     TSS2_SYS_CONTEXT *sysContext,
312     TPMI_DH_OBJECT objectHandle,
313     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
314     TPM2B_PUBLIC *outPublic,
315     TPM2B_NAME *name,
316     TPM2B_NAME *qualifiedName,
317     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
318 
319 TSS2_RC Tss2_Sys_ActivateCredential_Prepare(
320     TSS2_SYS_CONTEXT *sysContext,
321     TPMI_DH_OBJECT activateHandle,
322     TPMI_DH_OBJECT keyHandle,
323     const TPM2B_ID_OBJECT *credentialBlob,
324     const TPM2B_ENCRYPTED_SECRET *secret);
325 
326 TSS2_RC Tss2_Sys_ActivateCredential_Complete(
327     TSS2_SYS_CONTEXT *sysContext,
328     TPM2B_DIGEST *certInfo);
329 
330 TSS2_RC Tss2_Sys_ActivateCredential(
331     TSS2_SYS_CONTEXT *sysContext,
332     TPMI_DH_OBJECT activateHandle,
333     TPMI_DH_OBJECT keyHandle,
334     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
335     const TPM2B_ID_OBJECT *credentialBlob,
336     const TPM2B_ENCRYPTED_SECRET *secret,
337     TPM2B_DIGEST *certInfo,
338     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
339 
340 TSS2_RC Tss2_Sys_MakeCredential_Prepare(
341     TSS2_SYS_CONTEXT *sysContext,
342     TPMI_DH_OBJECT handle,
343     const TPM2B_DIGEST *credential,
344     const TPM2B_NAME *objectName);
345 
346 TSS2_RC Tss2_Sys_MakeCredential_Complete(
347     TSS2_SYS_CONTEXT *sysContext,
348     TPM2B_ID_OBJECT *credentialBlob,
349     TPM2B_ENCRYPTED_SECRET *secret);
350 
351 TSS2_RC Tss2_Sys_MakeCredential(
352     TSS2_SYS_CONTEXT *sysContext,
353     TPMI_DH_OBJECT handle,
354     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
355     const TPM2B_DIGEST *credential,
356     const TPM2B_NAME *objectName,
357     TPM2B_ID_OBJECT *credentialBlob,
358     TPM2B_ENCRYPTED_SECRET *secret,
359     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
360 
361 TSS2_RC Tss2_Sys_Unseal_Prepare(
362     TSS2_SYS_CONTEXT *sysContext,
363     TPMI_DH_OBJECT itemHandle);
364 
365 TSS2_RC Tss2_Sys_Unseal_Complete(
366     TSS2_SYS_CONTEXT *sysContext,
367     TPM2B_SENSITIVE_DATA *outData);
368 
369 TSS2_RC Tss2_Sys_Unseal(
370     TSS2_SYS_CONTEXT *sysContext,
371     TPMI_DH_OBJECT itemHandle,
372     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
373     TPM2B_SENSITIVE_DATA *outData,
374     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
375 
376 TSS2_RC Tss2_Sys_ObjectChangeAuth_Prepare(
377     TSS2_SYS_CONTEXT *sysContext,
378     TPMI_DH_OBJECT objectHandle,
379     TPMI_DH_OBJECT parentHandle,
380     const TPM2B_AUTH *newAuth);
381 
382 TSS2_RC Tss2_Sys_ObjectChangeAuth_Complete(
383     TSS2_SYS_CONTEXT *sysContext,
384     TPM2B_PRIVATE *outPrivate);
385 
386 TSS2_RC Tss2_Sys_ObjectChangeAuth(
387     TSS2_SYS_CONTEXT *sysContext,
388     TPMI_DH_OBJECT objectHandle,
389     TPMI_DH_OBJECT parentHandle,
390     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
391     const TPM2B_AUTH *newAuth,
392     TPM2B_PRIVATE *outPrivate,
393     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
394 
395 TSS2_RC Tss2_Sys_Duplicate_Prepare(
396     TSS2_SYS_CONTEXT *sysContext,
397     TPMI_DH_OBJECT objectHandle,
398     TPMI_DH_OBJECT newParentHandle,
399     const TPM2B_DATA *encryptionKeyIn,
400     const TPMT_SYM_DEF_OBJECT *symmetricAlg);
401 
402 TSS2_RC Tss2_Sys_Duplicate_Complete(
403     TSS2_SYS_CONTEXT *sysContext,
404     TPM2B_DATA *encryptionKeyOut,
405     TPM2B_PRIVATE *duplicate,
406     TPM2B_ENCRYPTED_SECRET *outSymSeed);
407 
408 TSS2_RC Tss2_Sys_Duplicate(
409     TSS2_SYS_CONTEXT *sysContext,
410     TPMI_DH_OBJECT objectHandle,
411     TPMI_DH_OBJECT newParentHandle,
412     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
413     const TPM2B_DATA *encryptionKeyIn,
414     const TPMT_SYM_DEF_OBJECT *symmetricAlg,
415     TPM2B_DATA *encryptionKeyOut,
416     TPM2B_PRIVATE *duplicate,
417     TPM2B_ENCRYPTED_SECRET *outSymSeed,
418     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
419 
420 TSS2_RC Tss2_Sys_Rewrap_Prepare(
421     TSS2_SYS_CONTEXT *sysContext,
422     TPMI_DH_OBJECT oldParent,
423     TPMI_DH_OBJECT newParent,
424     const TPM2B_PRIVATE *inDuplicate,
425     const TPM2B_NAME *name,
426     const TPM2B_ENCRYPTED_SECRET *inSymSeed);
427 
428 TSS2_RC Tss2_Sys_Rewrap_Complete(
429     TSS2_SYS_CONTEXT *sysContext,
430     TPM2B_PRIVATE *outDuplicate,
431     TPM2B_ENCRYPTED_SECRET *outSymSeed);
432 
433 TSS2_RC Tss2_Sys_Rewrap(
434     TSS2_SYS_CONTEXT *sysContext,
435     TPMI_DH_OBJECT oldParent,
436     TPMI_DH_OBJECT newParent,
437     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
438     const TPM2B_PRIVATE *inDuplicate,
439     const TPM2B_NAME *name,
440     const TPM2B_ENCRYPTED_SECRET *inSymSeed,
441     TPM2B_PRIVATE *outDuplicate,
442     TPM2B_ENCRYPTED_SECRET *outSymSeed,
443     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
444 
445 TSS2_RC Tss2_Sys_Import_Prepare(
446     TSS2_SYS_CONTEXT *sysContext,
447     TPMI_DH_OBJECT parentHandle,
448     const TPM2B_DATA *encryptionKey,
449     const TPM2B_PUBLIC *objectPublic,
450     const TPM2B_PRIVATE *duplicate,
451     const TPM2B_ENCRYPTED_SECRET *inSymSeed,
452     const TPMT_SYM_DEF_OBJECT *symmetricAlg);
453 
454 TSS2_RC Tss2_Sys_Import_Complete(
455     TSS2_SYS_CONTEXT *sysContext,
456     TPM2B_PRIVATE *outPrivate);
457 
458 TSS2_RC Tss2_Sys_Import(
459     TSS2_SYS_CONTEXT *sysContext,
460     TPMI_DH_OBJECT parentHandle,
461     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
462     const TPM2B_DATA *encryptionKey,
463     const TPM2B_PUBLIC *objectPublic,
464     const TPM2B_PRIVATE *duplicate,
465     const TPM2B_ENCRYPTED_SECRET *inSymSeed,
466     const TPMT_SYM_DEF_OBJECT *symmetricAlg,
467     TPM2B_PRIVATE *outPrivate,
468     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
469 
470 TSS2_RC Tss2_Sys_RSA_Encrypt_Prepare(
471     TSS2_SYS_CONTEXT *sysContext,
472     TPMI_DH_OBJECT keyHandle,
473     const TPM2B_PUBLIC_KEY_RSA *message,
474     const TPMT_RSA_DECRYPT *inScheme,
475     const TPM2B_DATA *label);
476 
477 TSS2_RC Tss2_Sys_RSA_Encrypt_Complete(
478     TSS2_SYS_CONTEXT *sysContext,
479     TPM2B_PUBLIC_KEY_RSA *outData);
480 
481 TSS2_RC Tss2_Sys_RSA_Encrypt(
482     TSS2_SYS_CONTEXT *sysContext,
483     TPMI_DH_OBJECT keyHandle,
484     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
485     const TPM2B_PUBLIC_KEY_RSA *message,
486     const TPMT_RSA_DECRYPT *inScheme,
487     const TPM2B_DATA *label,
488     TPM2B_PUBLIC_KEY_RSA *outData,
489     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
490 
491 TSS2_RC Tss2_Sys_RSA_Decrypt_Prepare(
492     TSS2_SYS_CONTEXT *sysContext,
493     TPMI_DH_OBJECT keyHandle,
494     const TPM2B_PUBLIC_KEY_RSA *cipherText,
495     const TPMT_RSA_DECRYPT *inScheme,
496     const TPM2B_DATA *label);
497 
498 TSS2_RC Tss2_Sys_RSA_Decrypt_Complete(
499     TSS2_SYS_CONTEXT *sysContext,
500     TPM2B_PUBLIC_KEY_RSA *message);
501 
502 TSS2_RC Tss2_Sys_RSA_Decrypt(
503     TSS2_SYS_CONTEXT *sysContext,
504     TPMI_DH_OBJECT keyHandle,
505     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
506     const TPM2B_PUBLIC_KEY_RSA *cipherText,
507     const TPMT_RSA_DECRYPT *inScheme,
508     const TPM2B_DATA *label,
509     TPM2B_PUBLIC_KEY_RSA *message,
510     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
511 
512 TSS2_RC Tss2_Sys_ECDH_KeyGen_Prepare(
513     TSS2_SYS_CONTEXT *sysContext,
514     TPMI_DH_OBJECT keyHandle);
515 
516 TSS2_RC Tss2_Sys_ECDH_KeyGen_Complete(
517     TSS2_SYS_CONTEXT *sysContext,
518     TPM2B_ECC_POINT *zPoint,
519     TPM2B_ECC_POINT *pubPoint);
520 
521 TSS2_RC Tss2_Sys_ECDH_KeyGen(
522     TSS2_SYS_CONTEXT *sysContext,
523     TPMI_DH_OBJECT keyHandle,
524     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
525     TPM2B_ECC_POINT *zPoint,
526     TPM2B_ECC_POINT *pubPoint,
527     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
528 
529 TSS2_RC Tss2_Sys_ECDH_ZGen_Prepare(
530     TSS2_SYS_CONTEXT *sysContext,
531     TPMI_DH_OBJECT keyHandle,
532     const TPM2B_ECC_POINT *inPoint);
533 
534 TSS2_RC Tss2_Sys_ECDH_ZGen_Complete(
535     TSS2_SYS_CONTEXT *sysContext,
536     TPM2B_ECC_POINT *outPoint);
537 
538 TSS2_RC Tss2_Sys_ECDH_ZGen(
539     TSS2_SYS_CONTEXT *sysContext,
540     TPMI_DH_OBJECT keyHandle,
541     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
542     const TPM2B_ECC_POINT *inPoint,
543     TPM2B_ECC_POINT *outPoint,
544     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
545 
546 TSS2_RC Tss2_Sys_ECC_Parameters_Prepare(
547     TSS2_SYS_CONTEXT *sysContext,
548     TPMI_ECC_CURVE curveID);
549 
550 TSS2_RC Tss2_Sys_ECC_Parameters_Complete(
551     TSS2_SYS_CONTEXT *sysContext,
552     TPMS_ALGORITHM_DETAIL_ECC *parameters);
553 
554 TSS2_RC Tss2_Sys_ECC_Parameters(
555     TSS2_SYS_CONTEXT *sysContext,
556     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
557     TPMI_ECC_CURVE curveID,
558     TPMS_ALGORITHM_DETAIL_ECC *parameters,
559     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
560 
561 TSS2_RC Tss2_Sys_ZGen_2Phase_Prepare(
562     TSS2_SYS_CONTEXT *sysContext,
563     TPMI_DH_OBJECT keyA,
564     const TPM2B_ECC_POINT *inQsB,
565     const TPM2B_ECC_POINT *inQeB,
566     TPMI_ECC_KEY_EXCHANGE inScheme,
567     UINT16 counter);
568 
569 TSS2_RC Tss2_Sys_ZGen_2Phase_Complete(
570     TSS2_SYS_CONTEXT *sysContext,
571     TPM2B_ECC_POINT *outZ1,
572     TPM2B_ECC_POINT *outZ2);
573 
574 TSS2_RC Tss2_Sys_ZGen_2Phase(
575     TSS2_SYS_CONTEXT *sysContext,
576     TPMI_DH_OBJECT keyA,
577     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
578     const TPM2B_ECC_POINT *inQsB,
579     const TPM2B_ECC_POINT *inQeB,
580     TPMI_ECC_KEY_EXCHANGE inScheme,
581     UINT16 counter,
582     TPM2B_ECC_POINT *outZ1,
583     TPM2B_ECC_POINT *outZ2,
584     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
585 
586 TSS2_RC Tss2_Sys_EncryptDecrypt_Prepare(
587     TSS2_SYS_CONTEXT *sysContext,
588     TPMI_DH_OBJECT keyHandle,
589     TPMI_YES_NO decrypt,
590     TPMI_ALG_CIPHER_MODE mode,
591     const TPM2B_IV *ivIn,
592     const TPM2B_MAX_BUFFER *inData);
593 
594 TSS2_RC Tss2_Sys_EncryptDecrypt_Complete(
595     TSS2_SYS_CONTEXT *sysContext,
596     TPM2B_MAX_BUFFER *outData,
597     TPM2B_IV *ivOut);
598 
599 TSS2_RC Tss2_Sys_EncryptDecrypt(
600     TSS2_SYS_CONTEXT *sysContext,
601     TPMI_DH_OBJECT keyHandle,
602     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
603     TPMI_YES_NO decrypt,
604     TPMI_ALG_CIPHER_MODE mode,
605     const TPM2B_IV *ivIn,
606     const TPM2B_MAX_BUFFER *inData,
607     TPM2B_MAX_BUFFER *outData,
608     TPM2B_IV *ivOut,
609     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
610 
611 TSS2_RC Tss2_Sys_EncryptDecrypt2_Prepare(
612     TSS2_SYS_CONTEXT *sysContext,
613     TPMI_DH_OBJECT keyHandle,
614     const TPM2B_MAX_BUFFER *inData,
615     TPMI_YES_NO decrypt,
616     TPMI_ALG_CIPHER_MODE mode,
617     const TPM2B_IV *ivIn);
618 
619 TSS2_RC Tss2_Sys_EncryptDecrypt2_Complete(
620     TSS2_SYS_CONTEXT *sysContext,
621     TPM2B_MAX_BUFFER *outData,
622     TPM2B_IV *ivOut);
623 
624 TSS2_RC Tss2_Sys_EncryptDecrypt2(
625     TSS2_SYS_CONTEXT *sysContext,
626     TPMI_DH_OBJECT keyHandle,
627     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
628     const TPM2B_MAX_BUFFER *inData,
629     TPMI_YES_NO decrypt,
630     TPMI_ALG_CIPHER_MODE mode,
631     const TPM2B_IV *ivIn,
632     TPM2B_MAX_BUFFER *outData,
633     TPM2B_IV *ivOut,
634     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
635 
636 TSS2_RC Tss2_Sys_Hash_Prepare(
637     TSS2_SYS_CONTEXT *sysContext,
638     const TPM2B_MAX_BUFFER *data,
639     TPMI_ALG_HASH hashAlg,
640     TPMI_RH_HIERARCHY hierarchy);
641 
642 TSS2_RC Tss2_Sys_Hash_Complete(
643     TSS2_SYS_CONTEXT *sysContext,
644     TPM2B_DIGEST *outHash,
645     TPMT_TK_HASHCHECK *validation);
646 
647 TSS2_RC Tss2_Sys_Hash(
648     TSS2_SYS_CONTEXT *sysContext,
649     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
650     const TPM2B_MAX_BUFFER *data,
651     TPMI_ALG_HASH hashAlg,
652     TPMI_RH_HIERARCHY hierarchy,
653     TPM2B_DIGEST *outHash,
654     TPMT_TK_HASHCHECK *validation,
655     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
656 
657 TSS2_RC Tss2_Sys_HMAC_Prepare(
658     TSS2_SYS_CONTEXT *sysContext,
659     TPMI_DH_OBJECT handle,
660     const TPM2B_MAX_BUFFER *buffer,
661     TPMI_ALG_HASH hashAlg);
662 
663 TSS2_RC Tss2_Sys_HMAC_Complete(
664     TSS2_SYS_CONTEXT *sysContext,
665     TPM2B_DIGEST *outHMAC);
666 
667 TSS2_RC Tss2_Sys_HMAC(
668     TSS2_SYS_CONTEXT *sysContext,
669     TPMI_DH_OBJECT handle,
670     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
671     const TPM2B_MAX_BUFFER *buffer,
672     TPMI_ALG_HASH hashAlg,
673     TPM2B_DIGEST *outHMAC,
674     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
675 
676 TSS2_RC Tss2_Sys_GetRandom_Prepare(
677     TSS2_SYS_CONTEXT *sysContext,
678     UINT16 bytesRequested);
679 
680 TSS2_RC Tss2_Sys_GetRandom_Complete(
681     TSS2_SYS_CONTEXT *sysContext,
682     TPM2B_DIGEST *randomBytes);
683 
684 TSS2_RC Tss2_Sys_GetRandom(
685     TSS2_SYS_CONTEXT *sysContext,
686     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
687     UINT16 bytesRequested,
688     TPM2B_DIGEST *randomBytes,
689     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
690 
691 TSS2_RC Tss2_Sys_StirRandom_Prepare(
692     TSS2_SYS_CONTEXT *sysContext,
693     const TPM2B_SENSITIVE_DATA *inData);
694 
695 TSS2_RC Tss2_Sys_StirRandom_Complete(
696     TSS2_SYS_CONTEXT *sysContext);
697 
698 TSS2_RC Tss2_Sys_StirRandom(
699     TSS2_SYS_CONTEXT *sysContext,
700     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
701     const TPM2B_SENSITIVE_DATA *inData,
702     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
703 
704 TSS2_RC Tss2_Sys_HMAC_Start_Prepare(
705     TSS2_SYS_CONTEXT *sysContext,
706     TPMI_DH_OBJECT handle,
707     const TPM2B_AUTH *auth,
708     TPMI_ALG_HASH hashAlg);
709 
710 TSS2_RC Tss2_Sys_HMAC_Start_Complete(
711     TSS2_SYS_CONTEXT *sysContext,
712     TPMI_DH_OBJECT *sequenceHandle);
713 
714 TSS2_RC Tss2_Sys_HMAC_Start(
715     TSS2_SYS_CONTEXT *sysContext,
716     TPMI_DH_OBJECT handle,
717     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
718     const TPM2B_AUTH *auth,
719     TPMI_ALG_HASH hashAlg,
720     TPMI_DH_OBJECT *sequenceHandle,
721     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
722 
723 TSS2_RC Tss2_Sys_HashSequenceStart_Prepare(
724     TSS2_SYS_CONTEXT *sysContext,
725     const TPM2B_AUTH *auth,
726     TPMI_ALG_HASH hashAlg);
727 
728 TSS2_RC Tss2_Sys_HashSequenceStart_Complete(
729     TSS2_SYS_CONTEXT *sysContext,
730     TPMI_DH_OBJECT *sequenceHandle);
731 
732 TSS2_RC Tss2_Sys_HashSequenceStart(
733     TSS2_SYS_CONTEXT *sysContext,
734     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
735     const TPM2B_AUTH *auth,
736     TPMI_ALG_HASH hashAlg,
737     TPMI_DH_OBJECT *sequenceHandle,
738     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
739 
740 TSS2_RC Tss2_Sys_SequenceUpdate_Prepare(
741     TSS2_SYS_CONTEXT *sysContext,
742     TPMI_DH_OBJECT sequenceHandle,
743     const TPM2B_MAX_BUFFER *buffer);
744 
745 TSS2_RC Tss2_Sys_SequenceUpdate_Complete(
746     TSS2_SYS_CONTEXT *sysContext);
747 
748 TSS2_RC Tss2_Sys_SequenceUpdate(
749     TSS2_SYS_CONTEXT *sysContext,
750     TPMI_DH_OBJECT sequenceHandle,
751     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
752     const TPM2B_MAX_BUFFER *buffer,
753     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
754 
755 TSS2_RC Tss2_Sys_SequenceComplete_Prepare(
756     TSS2_SYS_CONTEXT *sysContext,
757     TPMI_DH_OBJECT sequenceHandle,
758     const TPM2B_MAX_BUFFER *buffer,
759     TPMI_RH_HIERARCHY hierarchy);
760 
761 TSS2_RC Tss2_Sys_SequenceComplete_Complete(
762     TSS2_SYS_CONTEXT *sysContext,
763     TPM2B_DIGEST *result,
764     TPMT_TK_HASHCHECK *validation);
765 
766 TSS2_RC Tss2_Sys_SequenceComplete(
767     TSS2_SYS_CONTEXT *sysContext,
768     TPMI_DH_OBJECT sequenceHandle,
769     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
770     const TPM2B_MAX_BUFFER *buffer,
771     TPMI_RH_HIERARCHY hierarchy,
772     TPM2B_DIGEST *result,
773     TPMT_TK_HASHCHECK *validation,
774     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
775 
776 TSS2_RC Tss2_Sys_EventSequenceComplete_Prepare(
777     TSS2_SYS_CONTEXT *sysContext,
778     TPMI_DH_PCR pcrHandle,
779     TPMI_DH_OBJECT sequenceHandle,
780     const TPM2B_MAX_BUFFER *buffer);
781 
782 TSS2_RC Tss2_Sys_EventSequenceComplete_Complete(
783     TSS2_SYS_CONTEXT *sysContext,
784     TPML_DIGEST_VALUES *results);
785 
786 TSS2_RC Tss2_Sys_EventSequenceComplete(
787     TSS2_SYS_CONTEXT *sysContext,
788     TPMI_DH_PCR pcrHandle,
789     TPMI_DH_OBJECT sequenceHandle,
790     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
791     const TPM2B_MAX_BUFFER *buffer,
792     TPML_DIGEST_VALUES *results,
793     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
794 
795 TSS2_RC Tss2_Sys_Certify_Prepare(
796     TSS2_SYS_CONTEXT *sysContext,
797     TPMI_DH_OBJECT objectHandle,
798     TPMI_DH_OBJECT signHandle,
799     const TPM2B_DATA *qualifyingData,
800     const TPMT_SIG_SCHEME *inScheme);
801 
802 TSS2_RC Tss2_Sys_Certify_Complete(
803     TSS2_SYS_CONTEXT *sysContext,
804     TPM2B_ATTEST *certifyInfo,
805     TPMT_SIGNATURE *signature);
806 
807 TSS2_RC Tss2_Sys_Certify(
808     TSS2_SYS_CONTEXT *sysContext,
809     TPMI_DH_OBJECT objectHandle,
810     TPMI_DH_OBJECT signHandle,
811     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
812     const TPM2B_DATA *qualifyingData,
813     const TPMT_SIG_SCHEME *inScheme,
814     TPM2B_ATTEST *certifyInfo,
815     TPMT_SIGNATURE *signature,
816     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
817 
818 TSS2_RC Tss2_Sys_CertifyX509_Prepare(
819     TSS2_SYS_CONTEXT *sysContext,
820     TPMI_DH_OBJECT objectHandle,
821     TPMI_DH_OBJECT signHandle,
822     const TPM2B_DATA *reserved,
823     const TPMT_SIG_SCHEME *inScheme,
824     const TPM2B_MAX_BUFFER *partialCertificate);
825 
826 TSS2_RC Tss2_Sys_CertifyX509_Complete(
827     TSS2_SYS_CONTEXT *sysContext,
828     TPM2B_MAX_BUFFER *addedToCertificate,
829     TPM2B_DIGEST *tbsDigest,
830     TPMT_SIGNATURE *signature);
831 
832 TSS2_RC Tss2_Sys_CertifyX509(
833     TSS2_SYS_CONTEXT *sysContext,
834     TPMI_DH_OBJECT objectHandle,
835     TPMI_DH_OBJECT signHandle,
836     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
837     const TPM2B_DATA *reserved,
838     const TPMT_SIG_SCHEME *inScheme,
839     const TPM2B_MAX_BUFFER *partialCertificate,
840     TPM2B_MAX_BUFFER *addedToCertificate,
841     TPM2B_DIGEST *tbsDigest,
842     TPMT_SIGNATURE *signature,
843     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
844 
845 TSS2_RC Tss2_Sys_CertifyCreation_Prepare(
846     TSS2_SYS_CONTEXT *sysContext,
847     TPMI_DH_OBJECT signHandle,
848     TPMI_DH_OBJECT objectHandle,
849     const TPM2B_DATA *qualifyingData,
850     const TPM2B_DIGEST *creationHash,
851     const TPMT_SIG_SCHEME *inScheme,
852     const TPMT_TK_CREATION *creationTicket);
853 
854 TSS2_RC Tss2_Sys_CertifyCreation_Complete(
855     TSS2_SYS_CONTEXT *sysContext,
856     TPM2B_ATTEST *certifyInfo,
857     TPMT_SIGNATURE *signature);
858 
859 TSS2_RC Tss2_Sys_CertifyCreation(
860     TSS2_SYS_CONTEXT *sysContext,
861     TPMI_DH_OBJECT signHandle,
862     TPMI_DH_OBJECT objectHandle,
863     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
864     const TPM2B_DATA *qualifyingData,
865     const TPM2B_DIGEST *creationHash,
866     const TPMT_SIG_SCHEME *inScheme,
867     const TPMT_TK_CREATION *creationTicket,
868     TPM2B_ATTEST *certifyInfo,
869     TPMT_SIGNATURE *signature,
870     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
871 
872 TSS2_RC Tss2_Sys_Quote_Prepare(
873     TSS2_SYS_CONTEXT *sysContext,
874     TPMI_DH_OBJECT signHandle,
875     const TPM2B_DATA *qualifyingData,
876     const TPMT_SIG_SCHEME *inScheme,
877     const TPML_PCR_SELECTION *PCRselect);
878 
879 TSS2_RC Tss2_Sys_Quote_Complete(
880     TSS2_SYS_CONTEXT *sysContext,
881     TPM2B_ATTEST *quoted,
882     TPMT_SIGNATURE *signature);
883 
884 TSS2_RC Tss2_Sys_Quote(
885     TSS2_SYS_CONTEXT *sysContext,
886     TPMI_DH_OBJECT signHandle,
887     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
888     const TPM2B_DATA *qualifyingData,
889     const TPMT_SIG_SCHEME *inScheme,
890     const TPML_PCR_SELECTION *PCRselect,
891     TPM2B_ATTEST *quoted,
892     TPMT_SIGNATURE *signature,
893     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
894 
895 TSS2_RC Tss2_Sys_GetSessionAuditDigest_Prepare(
896     TSS2_SYS_CONTEXT *sysContext,
897     TPMI_RH_ENDORSEMENT privacyAdminHandle,
898     TPMI_DH_OBJECT signHandle,
899     TPMI_SH_HMAC sessionHandle,
900     const TPM2B_DATA *qualifyingData,
901     const TPMT_SIG_SCHEME *inScheme);
902 
903 TSS2_RC Tss2_Sys_GetSessionAuditDigest_Complete(
904     TSS2_SYS_CONTEXT *sysContext,
905     TPM2B_ATTEST *auditInfo,
906     TPMT_SIGNATURE *signature);
907 
908 TSS2_RC Tss2_Sys_GetSessionAuditDigest(
909     TSS2_SYS_CONTEXT *sysContext,
910     TPMI_RH_ENDORSEMENT privacyAdminHandle,
911     TPMI_DH_OBJECT signHandle,
912     TPMI_SH_HMAC sessionHandle,
913     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
914     const TPM2B_DATA *qualifyingData,
915     const TPMT_SIG_SCHEME *inScheme,
916     TPM2B_ATTEST *auditInfo,
917     TPMT_SIGNATURE *signature,
918     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
919 
920 TSS2_RC Tss2_Sys_GetCommandAuditDigest_Prepare(
921     TSS2_SYS_CONTEXT *sysContext,
922     TPMI_RH_ENDORSEMENT privacyHandle,
923     TPMI_DH_OBJECT signHandle,
924     const TPM2B_DATA *qualifyingData,
925     const TPMT_SIG_SCHEME *inScheme);
926 
927 TSS2_RC Tss2_Sys_GetCommandAuditDigest_Complete(
928     TSS2_SYS_CONTEXT *sysContext,
929     TPM2B_ATTEST *auditInfo,
930     TPMT_SIGNATURE *signature);
931 
932 TSS2_RC Tss2_Sys_GetCommandAuditDigest(
933     TSS2_SYS_CONTEXT *sysContext,
934     TPMI_RH_ENDORSEMENT privacyHandle,
935     TPMI_DH_OBJECT signHandle,
936     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
937     const TPM2B_DATA *qualifyingData,
938     const TPMT_SIG_SCHEME *inScheme,
939     TPM2B_ATTEST *auditInfo,
940     TPMT_SIGNATURE *signature,
941     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
942 
943 TSS2_RC Tss2_Sys_GetTime_Prepare(
944     TSS2_SYS_CONTEXT *sysContext,
945     TPMI_RH_ENDORSEMENT privacyAdminHandle,
946     TPMI_DH_OBJECT signHandle,
947     const TPM2B_DATA *qualifyingData,
948     const TPMT_SIG_SCHEME *inScheme);
949 
950 TSS2_RC Tss2_Sys_GetTime_Complete(
951     TSS2_SYS_CONTEXT *sysContext,
952     TPM2B_ATTEST *timeInfo,
953     TPMT_SIGNATURE *signature);
954 
955 TSS2_RC Tss2_Sys_GetTime(
956     TSS2_SYS_CONTEXT *sysContext,
957     TPMI_RH_ENDORSEMENT privacyAdminHandle,
958     TPMI_DH_OBJECT signHandle,
959     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
960     const TPM2B_DATA *qualifyingData,
961     const TPMT_SIG_SCHEME *inScheme,
962     TPM2B_ATTEST *timeInfo,
963     TPMT_SIGNATURE *signature,
964     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
965 
966 TSS2_RC Tss2_Sys_Commit_Prepare(
967     TSS2_SYS_CONTEXT *sysContext,
968     TPMI_DH_OBJECT signHandle,
969     const TPM2B_ECC_POINT *P1,
970     const TPM2B_SENSITIVE_DATA *s2,
971     const TPM2B_ECC_PARAMETER *y2);
972 
973 TSS2_RC Tss2_Sys_Commit_Complete(
974     TSS2_SYS_CONTEXT *sysContext,
975     TPM2B_ECC_POINT *K,
976     TPM2B_ECC_POINT *L,
977     TPM2B_ECC_POINT *E,
978     UINT16 *counter);
979 
980 TSS2_RC Tss2_Sys_Commit(
981     TSS2_SYS_CONTEXT *sysContext,
982     TPMI_DH_OBJECT signHandle,
983     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
984     const TPM2B_ECC_POINT *P1,
985     const TPM2B_SENSITIVE_DATA *s2,
986     const TPM2B_ECC_PARAMETER *y2,
987     TPM2B_ECC_POINT *K,
988     TPM2B_ECC_POINT *L,
989     TPM2B_ECC_POINT *E,
990     UINT16 *counter,
991     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
992 
993 TSS2_RC Tss2_Sys_EC_Ephemeral_Prepare(
994     TSS2_SYS_CONTEXT *sysContext,
995     TPMI_ECC_CURVE curveID);
996 
997 TSS2_RC Tss2_Sys_EC_Ephemeral_Complete(
998     TSS2_SYS_CONTEXT *sysContext,
999     TPM2B_ECC_POINT *Q,
1000     UINT16 *counter);
1001 
1002 TSS2_RC Tss2_Sys_EC_Ephemeral(
1003     TSS2_SYS_CONTEXT *sysContext,
1004     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1005     TPMI_ECC_CURVE curveID,
1006     TPM2B_ECC_POINT *Q,
1007     UINT16 *counter,
1008     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1009 
1010 TSS2_RC Tss2_Sys_VerifySignature_Prepare(
1011     TSS2_SYS_CONTEXT *sysContext,
1012     TPMI_DH_OBJECT keyHandle,
1013     const TPM2B_DIGEST *digest,
1014     const TPMT_SIGNATURE *signature);
1015 
1016 TSS2_RC Tss2_Sys_VerifySignature_Complete(
1017     TSS2_SYS_CONTEXT *sysContext,
1018     TPMT_TK_VERIFIED *validation);
1019 
1020 TSS2_RC Tss2_Sys_VerifySignature(
1021     TSS2_SYS_CONTEXT *sysContext,
1022     TPMI_DH_OBJECT keyHandle,
1023     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1024     const TPM2B_DIGEST *digest,
1025     const TPMT_SIGNATURE *signature,
1026     TPMT_TK_VERIFIED *validation,
1027     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1028 
1029 TSS2_RC Tss2_Sys_Sign_Prepare(
1030     TSS2_SYS_CONTEXT *sysContext,
1031     TPMI_DH_OBJECT keyHandle,
1032     const TPM2B_DIGEST *digest,
1033     const TPMT_SIG_SCHEME *inScheme,
1034     const TPMT_TK_HASHCHECK *validation);
1035 
1036 TSS2_RC Tss2_Sys_Sign_Complete(
1037     TSS2_SYS_CONTEXT *sysContext,
1038     TPMT_SIGNATURE *signature);
1039 
1040 TSS2_RC Tss2_Sys_Sign(
1041     TSS2_SYS_CONTEXT *sysContext,
1042     TPMI_DH_OBJECT keyHandle,
1043     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1044     const TPM2B_DIGEST *digest,
1045     const TPMT_SIG_SCHEME *inScheme,
1046     const TPMT_TK_HASHCHECK *validation,
1047     TPMT_SIGNATURE *signature,
1048     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1049 
1050 TSS2_RC Tss2_Sys_SetCommandCodeAuditStatus_Prepare(
1051     TSS2_SYS_CONTEXT *sysContext,
1052     TPMI_RH_PROVISION auth,
1053     TPMI_ALG_HASH auditAlg,
1054     const TPML_CC *setList,
1055     const TPML_CC *clearList);
1056 
1057 TSS2_RC Tss2_Sys_SetCommandCodeAuditStatus_Complete(
1058     TSS2_SYS_CONTEXT *sysContext);
1059 
1060 TSS2_RC Tss2_Sys_SetCommandCodeAuditStatus(
1061     TSS2_SYS_CONTEXT *sysContext,
1062     TPMI_RH_PROVISION auth,
1063     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1064     TPMI_ALG_HASH auditAlg,
1065     const TPML_CC *setList,
1066     const TPML_CC *clearList,
1067     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1068 
1069 TSS2_RC Tss2_Sys_PCR_Extend_Prepare(
1070     TSS2_SYS_CONTEXT *sysContext,
1071     TPMI_DH_PCR pcrHandle,
1072     const TPML_DIGEST_VALUES *digests);
1073 
1074 TSS2_RC Tss2_Sys_PCR_Extend_Complete(
1075     TSS2_SYS_CONTEXT *sysContext);
1076 
1077 TSS2_RC Tss2_Sys_PCR_Extend(
1078     TSS2_SYS_CONTEXT *sysContext,
1079     TPMI_DH_PCR pcrHandle,
1080     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1081     const TPML_DIGEST_VALUES *digests,
1082     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1083 
1084 TSS2_RC Tss2_Sys_PCR_Event_Prepare(
1085     TSS2_SYS_CONTEXT *sysContext,
1086     TPMI_DH_PCR pcrHandle,
1087     const TPM2B_EVENT *eventData);
1088 
1089 TSS2_RC Tss2_Sys_PCR_Event_Complete(
1090     TSS2_SYS_CONTEXT *sysContext,
1091     TPML_DIGEST_VALUES *digests);
1092 
1093 TSS2_RC Tss2_Sys_PCR_Event(
1094     TSS2_SYS_CONTEXT *sysContext,
1095     TPMI_DH_PCR pcrHandle,
1096     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1097     const TPM2B_EVENT *eventData,
1098     TPML_DIGEST_VALUES *digests,
1099     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1100 
1101 TSS2_RC Tss2_Sys_PCR_Read_Prepare(
1102     TSS2_SYS_CONTEXT *sysContext,
1103     const TPML_PCR_SELECTION *pcrSelectionIn);
1104 
1105 TSS2_RC Tss2_Sys_PCR_Read_Complete(
1106     TSS2_SYS_CONTEXT *sysContext,
1107     UINT32 *pcrUpdateCounter,
1108     TPML_PCR_SELECTION *pcrSelectionOut,
1109     TPML_DIGEST *pcrValues);
1110 
1111 TSS2_RC Tss2_Sys_PCR_Read(
1112     TSS2_SYS_CONTEXT *sysContext,
1113     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1114     const TPML_PCR_SELECTION *pcrSelectionIn,
1115     UINT32 *pcrUpdateCounter,
1116     TPML_PCR_SELECTION *pcrSelectionOut,
1117     TPML_DIGEST *pcrValues,
1118     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1119 
1120 TSS2_RC Tss2_Sys_PCR_Allocate_Prepare(
1121     TSS2_SYS_CONTEXT *sysContext,
1122     TPMI_RH_PLATFORM authHandle,
1123     const TPML_PCR_SELECTION *pcrAllocation);
1124 
1125 TSS2_RC Tss2_Sys_PCR_Allocate_Complete(
1126     TSS2_SYS_CONTEXT *sysContext,
1127     TPMI_YES_NO *allocationSuccess,
1128     UINT32 *maxPCR,
1129     UINT32 *sizeNeeded,
1130     UINT32 *sizeAvailable);
1131 
1132 TSS2_RC Tss2_Sys_PCR_Allocate(
1133     TSS2_SYS_CONTEXT *sysContext,
1134     TPMI_RH_PLATFORM authHandle,
1135     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1136     const TPML_PCR_SELECTION *pcrAllocation,
1137     TPMI_YES_NO *allocationSuccess,
1138     UINT32 *maxPCR,
1139     UINT32 *sizeNeeded,
1140     UINT32 *sizeAvailable,
1141     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1142 
1143 TSS2_RC Tss2_Sys_PCR_SetAuthPolicy_Prepare(
1144     TSS2_SYS_CONTEXT *sysContext,
1145     TPMI_RH_PLATFORM authHandle,
1146     const TPM2B_DIGEST *authPolicy,
1147     TPMI_ALG_HASH hashAlg,
1148     TPMI_DH_PCR pcrNum);
1149 
1150 TSS2_RC Tss2_Sys_PCR_SetAuthPolicy_Complete(
1151     TSS2_SYS_CONTEXT *sysContext);
1152 
1153 TSS2_RC Tss2_Sys_PCR_SetAuthPolicy(
1154     TSS2_SYS_CONTEXT *sysContext,
1155     TPMI_RH_PLATFORM authHandle,
1156     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1157     const TPM2B_DIGEST *authPolicy,
1158     TPMI_ALG_HASH hashAlg,
1159     TPMI_DH_PCR pcrNum,
1160     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1161 
1162 TSS2_RC Tss2_Sys_PCR_SetAuthValue_Prepare(
1163     TSS2_SYS_CONTEXT *sysContext,
1164     TPMI_DH_PCR pcrHandle,
1165     const TPM2B_DIGEST *auth);
1166 
1167 TSS2_RC Tss2_Sys_PCR_SetAuthValue_Complete(
1168     TSS2_SYS_CONTEXT *sysContext);
1169 
1170 TSS2_RC Tss2_Sys_PCR_SetAuthValue(
1171     TSS2_SYS_CONTEXT *sysContext,
1172     TPMI_DH_PCR pcrHandle,
1173     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1174     const TPM2B_DIGEST *auth,
1175     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1176 
1177 TSS2_RC Tss2_Sys_PCR_Reset_Prepare(
1178     TSS2_SYS_CONTEXT *sysContext,
1179     TPMI_DH_PCR pcrHandle);
1180 
1181 TSS2_RC Tss2_Sys_PCR_Reset_Complete(
1182     TSS2_SYS_CONTEXT *sysContext);
1183 
1184 TSS2_RC Tss2_Sys_PCR_Reset(
1185     TSS2_SYS_CONTEXT *sysContext,
1186     TPMI_DH_PCR pcrHandle,
1187     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1188     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1189 
1190 TSS2_RC Tss2_Sys_PolicySigned_Prepare(
1191     TSS2_SYS_CONTEXT *sysContext,
1192     TPMI_DH_OBJECT authObject,
1193     TPMI_SH_POLICY policySession,
1194     const TPM2B_NONCE *nonceTPM,
1195     const TPM2B_DIGEST *cpHashA,
1196     const TPM2B_NONCE *policyRef,
1197     INT32 expiration,
1198     const TPMT_SIGNATURE *auth);
1199 
1200 TSS2_RC Tss2_Sys_PolicySigned_Complete(
1201     TSS2_SYS_CONTEXT *sysContext,
1202     TPM2B_TIMEOUT *timeout,
1203     TPMT_TK_AUTH *policyTicket);
1204 
1205 TSS2_RC Tss2_Sys_PolicySigned(
1206     TSS2_SYS_CONTEXT *sysContext,
1207     TPMI_DH_OBJECT authObject,
1208     TPMI_SH_POLICY policySession,
1209     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1210     const TPM2B_NONCE *nonceTPM,
1211     const TPM2B_DIGEST *cpHashA,
1212     const TPM2B_NONCE *policyRef,
1213     INT32 expiration,
1214     const TPMT_SIGNATURE *auth,
1215     TPM2B_TIMEOUT *timeout,
1216     TPMT_TK_AUTH *policyTicket,
1217     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1218 
1219 TSS2_RC Tss2_Sys_PolicySecret_Prepare(
1220     TSS2_SYS_CONTEXT *sysContext,
1221     TPMI_DH_ENTITY authHandle,
1222     TPMI_SH_POLICY policySession,
1223     const TPM2B_NONCE *nonceTPM,
1224     const TPM2B_DIGEST *cpHashA,
1225     const TPM2B_NONCE *policyRef,
1226     INT32 expiration);
1227 
1228 TSS2_RC Tss2_Sys_PolicySecret_Complete(
1229     TSS2_SYS_CONTEXT *sysContext,
1230     TPM2B_TIMEOUT *timeout,
1231     TPMT_TK_AUTH *policyTicket);
1232 
1233 TSS2_RC Tss2_Sys_PolicySecret(
1234     TSS2_SYS_CONTEXT *sysContext,
1235     TPMI_DH_ENTITY authHandle,
1236     TPMI_SH_POLICY policySession,
1237     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1238     const TPM2B_NONCE *nonceTPM,
1239     const TPM2B_DIGEST *cpHashA,
1240     const TPM2B_NONCE *policyRef,
1241     INT32 expiration,
1242     TPM2B_TIMEOUT *timeout,
1243     TPMT_TK_AUTH *policyTicket,
1244     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1245 
1246 TSS2_RC Tss2_Sys_PolicyTicket_Prepare(
1247     TSS2_SYS_CONTEXT *sysContext,
1248     TPMI_SH_POLICY policySession,
1249     const TPM2B_TIMEOUT *timeout,
1250     const TPM2B_DIGEST *cpHashA,
1251     const TPM2B_NONCE *policyRef,
1252     const TPM2B_NAME *authName,
1253     const TPMT_TK_AUTH *ticket);
1254 
1255 TSS2_RC Tss2_Sys_PolicyTicket_Complete(
1256     TSS2_SYS_CONTEXT *sysContext);
1257 
1258 TSS2_RC Tss2_Sys_PolicyTicket(
1259     TSS2_SYS_CONTEXT *sysContext,
1260     TPMI_SH_POLICY policySession,
1261     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1262     const TPM2B_TIMEOUT *timeout,
1263     const TPM2B_DIGEST *cpHashA,
1264     const TPM2B_NONCE *policyRef,
1265     const TPM2B_NAME *authName,
1266     const TPMT_TK_AUTH *ticket,
1267     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1268 
1269 TSS2_RC Tss2_Sys_PolicyOR_Prepare(
1270     TSS2_SYS_CONTEXT *sysContext,
1271     TPMI_SH_POLICY policySession,
1272     const TPML_DIGEST *pHashList);
1273 
1274 TSS2_RC Tss2_Sys_PolicyOR_Complete(
1275     TSS2_SYS_CONTEXT *sysContext);
1276 
1277 TSS2_RC Tss2_Sys_PolicyOR(
1278     TSS2_SYS_CONTEXT *sysContext,
1279     TPMI_SH_POLICY policySession,
1280     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1281     const TPML_DIGEST *pHashList,
1282     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1283 
1284 TSS2_RC Tss2_Sys_PolicyPCR_Prepare(
1285     TSS2_SYS_CONTEXT *sysContext,
1286     TPMI_SH_POLICY policySession,
1287     const TPM2B_DIGEST *pcrDigest,
1288     const TPML_PCR_SELECTION *pcrs);
1289 
1290 TSS2_RC Tss2_Sys_PolicyPCR_Complete(
1291     TSS2_SYS_CONTEXT *sysContext);
1292 
1293 TSS2_RC Tss2_Sys_PolicyPCR(
1294     TSS2_SYS_CONTEXT *sysContext,
1295     TPMI_SH_POLICY policySession,
1296     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1297     const TPM2B_DIGEST *pcrDigest,
1298     const TPML_PCR_SELECTION *pcrs,
1299     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1300 
1301 TSS2_RC Tss2_Sys_PolicyLocality_Prepare(
1302     TSS2_SYS_CONTEXT *sysContext,
1303     TPMI_SH_POLICY policySession,
1304     TPMA_LOCALITY locality);
1305 
1306 TSS2_RC Tss2_Sys_PolicyLocality_Complete(
1307     TSS2_SYS_CONTEXT *sysContext);
1308 
1309 TSS2_RC Tss2_Sys_PolicyLocality(
1310     TSS2_SYS_CONTEXT *sysContext,
1311     TPMI_SH_POLICY policySession,
1312     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1313     TPMA_LOCALITY locality,
1314     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1315 
1316 TSS2_RC Tss2_Sys_PolicyNV_Prepare(
1317     TSS2_SYS_CONTEXT *sysContext,
1318     TPMI_RH_NV_AUTH authHandle,
1319     TPMI_RH_NV_INDEX nvIndex,
1320     TPMI_SH_POLICY policySession,
1321     const TPM2B_OPERAND *operandB,
1322     UINT16 offset,
1323     TPM2_EO operation);
1324 
1325 TSS2_RC Tss2_Sys_PolicyNV_Complete(
1326     TSS2_SYS_CONTEXT *sysContext);
1327 
1328 TSS2_RC Tss2_Sys_PolicyNV(
1329     TSS2_SYS_CONTEXT *sysContext,
1330     TPMI_RH_NV_AUTH authHandle,
1331     TPMI_RH_NV_INDEX nvIndex,
1332     TPMI_SH_POLICY policySession,
1333     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1334     const TPM2B_OPERAND *operandB,
1335     UINT16 offset,
1336     TPM2_EO operation,
1337     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1338 
1339 TSS2_RC Tss2_Sys_PolicyCounterTimer_Prepare(
1340     TSS2_SYS_CONTEXT *sysContext,
1341     TPMI_SH_POLICY policySession,
1342     const TPM2B_OPERAND *operandB,
1343     UINT16 offset,
1344     TPM2_EO operation);
1345 
1346 TSS2_RC Tss2_Sys_PolicyCounterTimer_Complete(
1347     TSS2_SYS_CONTEXT *sysContext);
1348 
1349 TSS2_RC Tss2_Sys_PolicyCounterTimer(
1350     TSS2_SYS_CONTEXT *sysContext,
1351     TPMI_SH_POLICY policySession,
1352     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1353     const TPM2B_OPERAND *operandB,
1354     UINT16 offset,
1355     TPM2_EO operation,
1356     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1357 
1358 TSS2_RC Tss2_Sys_PolicyCommandCode_Prepare(
1359     TSS2_SYS_CONTEXT *sysContext,
1360     TPMI_SH_POLICY policySession,
1361     TPM2_CC code);
1362 
1363 TSS2_RC Tss2_Sys_PolicyCommandCode_Complete(
1364     TSS2_SYS_CONTEXT *sysContext);
1365 
1366 TSS2_RC Tss2_Sys_PolicyCommandCode(
1367     TSS2_SYS_CONTEXT *sysContext,
1368     TPMI_SH_POLICY policySession,
1369     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1370     TPM2_CC code,
1371     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1372 
1373 TSS2_RC Tss2_Sys_PolicyPhysicalPresence_Prepare(
1374     TSS2_SYS_CONTEXT *sysContext,
1375     TPMI_SH_POLICY policySession);
1376 
1377 TSS2_RC Tss2_Sys_PolicyPhysicalPresence_Complete(
1378     TSS2_SYS_CONTEXT *sysContext);
1379 
1380 TSS2_RC Tss2_Sys_PolicyPhysicalPresence(
1381     TSS2_SYS_CONTEXT *sysContext,
1382     TPMI_SH_POLICY policySession,
1383     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1384     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1385 
1386 TSS2_RC Tss2_Sys_PolicyCpHash_Prepare(
1387     TSS2_SYS_CONTEXT *sysContext,
1388     TPMI_SH_POLICY policySession,
1389     const TPM2B_DIGEST *cpHashA);
1390 
1391 TSS2_RC Tss2_Sys_PolicyCpHash_Complete(
1392     TSS2_SYS_CONTEXT *sysContext);
1393 
1394 TSS2_RC Tss2_Sys_PolicyCpHash(
1395     TSS2_SYS_CONTEXT *sysContext,
1396     TPMI_SH_POLICY policySession,
1397     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1398     const TPM2B_DIGEST *cpHashA,
1399     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1400 
1401 TSS2_RC Tss2_Sys_PolicyNameHash_Prepare(
1402     TSS2_SYS_CONTEXT *sysContext,
1403     TPMI_SH_POLICY policySession,
1404     const TPM2B_DIGEST *nameHash);
1405 
1406 TSS2_RC Tss2_Sys_PolicyNameHash_Complete(
1407     TSS2_SYS_CONTEXT *sysContext);
1408 
1409 TSS2_RC Tss2_Sys_PolicyNameHash(
1410     TSS2_SYS_CONTEXT *sysContext,
1411     TPMI_SH_POLICY policySession,
1412     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1413     const TPM2B_DIGEST *nameHash,
1414     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1415 
1416 TSS2_RC Tss2_Sys_PolicyDuplicationSelect_Prepare(
1417     TSS2_SYS_CONTEXT *sysContext,
1418     TPMI_SH_POLICY policySession,
1419     const TPM2B_NAME *objectName,
1420     const TPM2B_NAME *newParentName,
1421     TPMI_YES_NO includeObject);
1422 
1423 TSS2_RC Tss2_Sys_PolicyDuplicationSelect_Complete(
1424     TSS2_SYS_CONTEXT *sysContext);
1425 
1426 TSS2_RC Tss2_Sys_PolicyDuplicationSelect(
1427     TSS2_SYS_CONTEXT *sysContext,
1428     TPMI_SH_POLICY policySession,
1429     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1430     const TPM2B_NAME *objectName,
1431     const TPM2B_NAME *newParentName,
1432     TPMI_YES_NO includeObject,
1433     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1434 
1435 TSS2_RC Tss2_Sys_PolicyAuthorize_Prepare(
1436     TSS2_SYS_CONTEXT *sysContext,
1437     TPMI_SH_POLICY policySession,
1438     const TPM2B_DIGEST *approvedPolicy,
1439     const TPM2B_NONCE *policyRef,
1440     const TPM2B_NAME *keySign,
1441     const TPMT_TK_VERIFIED *checkTicket);
1442 
1443 TSS2_RC Tss2_Sys_PolicyAuthorize_Complete(
1444     TSS2_SYS_CONTEXT *sysContext);
1445 
1446 TSS2_RC Tss2_Sys_PolicyAuthorize(
1447     TSS2_SYS_CONTEXT *sysContext,
1448     TPMI_SH_POLICY policySession,
1449     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1450     const TPM2B_DIGEST *approvedPolicy,
1451     const TPM2B_NONCE *policyRef,
1452     const TPM2B_NAME *keySign,
1453     const TPMT_TK_VERIFIED *checkTicket,
1454     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1455 
1456 TSS2_RC Tss2_Sys_PolicyAuthValue_Prepare(
1457     TSS2_SYS_CONTEXT *sysContext,
1458     TPMI_SH_POLICY policySession);
1459 
1460 TSS2_RC Tss2_Sys_PolicyAuthValue_Complete(
1461     TSS2_SYS_CONTEXT *sysContext);
1462 
1463 TSS2_RC Tss2_Sys_PolicyAuthValue(
1464     TSS2_SYS_CONTEXT *sysContext,
1465     TPMI_SH_POLICY policySession,
1466     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1467     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1468 
1469 TSS2_RC Tss2_Sys_PolicyPassword_Prepare(
1470     TSS2_SYS_CONTEXT *sysContext,
1471     TPMI_SH_POLICY policySession);
1472 
1473 TSS2_RC Tss2_Sys_PolicyPassword_Complete(
1474     TSS2_SYS_CONTEXT *sysContext);
1475 
1476 TSS2_RC Tss2_Sys_PolicyPassword(
1477     TSS2_SYS_CONTEXT *sysContext,
1478     TPMI_SH_POLICY policySession,
1479     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1480     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1481 
1482 TSS2_RC Tss2_Sys_PolicyGetDigest_Prepare(
1483     TSS2_SYS_CONTEXT *sysContext,
1484     TPMI_SH_POLICY policySession);
1485 
1486 TSS2_RC Tss2_Sys_PolicyGetDigest_Complete(
1487     TSS2_SYS_CONTEXT *sysContext,
1488     TPM2B_DIGEST *policyDigest);
1489 
1490 TSS2_RC Tss2_Sys_PolicyGetDigest(
1491     TSS2_SYS_CONTEXT *sysContext,
1492     TPMI_SH_POLICY policySession,
1493     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1494     TPM2B_DIGEST *policyDigest,
1495     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1496 
1497 TSS2_RC Tss2_Sys_PolicyNvWritten_Prepare(
1498     TSS2_SYS_CONTEXT *sysContext,
1499     TPMI_SH_POLICY policySession,
1500     TPMI_YES_NO writtenSet);
1501 
1502 TSS2_RC Tss2_Sys_PolicyNvWritten_Complete(
1503     TSS2_SYS_CONTEXT *sysContext);
1504 
1505 TSS2_RC Tss2_Sys_PolicyNvWritten(
1506     TSS2_SYS_CONTEXT *sysContext,
1507     TPMI_SH_POLICY policySession,
1508     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1509     TPMI_YES_NO writtenSet,
1510     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1511 
1512 TSS2_RC Tss2_Sys_CreatePrimary_Prepare(
1513     TSS2_SYS_CONTEXT *sysContext,
1514     TPMI_RH_HIERARCHY primaryHandle,
1515     const TPM2B_SENSITIVE_CREATE *inSensitive,
1516     const TPM2B_PUBLIC *inPublic,
1517     const TPM2B_DATA *outsideInfo,
1518     const TPML_PCR_SELECTION *creationPCR);
1519 
1520 TSS2_RC Tss2_Sys_CreatePrimary_Complete(
1521     TSS2_SYS_CONTEXT *sysContext,
1522     TPM2_HANDLE *objectHandle,
1523     TPM2B_PUBLIC *outPublic,
1524     TPM2B_CREATION_DATA *creationData,
1525     TPM2B_DIGEST *creationHash,
1526     TPMT_TK_CREATION *creationTicket,
1527     TPM2B_NAME *name);
1528 
1529 TSS2_RC Tss2_Sys_CreatePrimary(
1530     TSS2_SYS_CONTEXT *sysContext,
1531     TPMI_RH_HIERARCHY primaryHandle,
1532     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1533     const TPM2B_SENSITIVE_CREATE *inSensitive,
1534     const TPM2B_PUBLIC *inPublic,
1535     const TPM2B_DATA *outsideInfo,
1536     const TPML_PCR_SELECTION *creationPCR,
1537     TPM2_HANDLE *objectHandle,
1538     TPM2B_PUBLIC *outPublic,
1539     TPM2B_CREATION_DATA *creationData,
1540     TPM2B_DIGEST *creationHash,
1541     TPMT_TK_CREATION *creationTicket,
1542     TPM2B_NAME *name,
1543     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1544 
1545 TSS2_RC Tss2_Sys_HierarchyControl_Prepare(
1546     TSS2_SYS_CONTEXT *sysContext,
1547     TPMI_RH_HIERARCHY authHandle,
1548     TPMI_RH_ENABLES enable,
1549     TPMI_YES_NO state);
1550 
1551 TSS2_RC Tss2_Sys_HierarchyControl_Complete(
1552     TSS2_SYS_CONTEXT *sysContext);
1553 
1554 TSS2_RC Tss2_Sys_HierarchyControl(
1555     TSS2_SYS_CONTEXT *sysContext,
1556     TPMI_RH_HIERARCHY authHandle,
1557     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1558     TPMI_RH_ENABLES enable,
1559     TPMI_YES_NO state,
1560     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1561 
1562 TSS2_RC Tss2_Sys_SetPrimaryPolicy_Prepare(
1563     TSS2_SYS_CONTEXT *sysContext,
1564     TPMI_RH_HIERARCHY_AUTH authHandle,
1565     const TPM2B_DIGEST *authPolicy,
1566     TPMI_ALG_HASH hashAlg);
1567 
1568 TSS2_RC Tss2_Sys_SetPrimaryPolicy_Complete(
1569     TSS2_SYS_CONTEXT *sysContext);
1570 
1571 TSS2_RC Tss2_Sys_SetPrimaryPolicy(
1572     TSS2_SYS_CONTEXT *sysContext,
1573     TPMI_RH_HIERARCHY_AUTH authHandle,
1574     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1575     const TPM2B_DIGEST *authPolicy,
1576     TPMI_ALG_HASH hashAlg,
1577     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1578 
1579 TSS2_RC Tss2_Sys_ChangePPS_Prepare(
1580     TSS2_SYS_CONTEXT *sysContext,
1581     TPMI_RH_PLATFORM authHandle);
1582 
1583 TSS2_RC Tss2_Sys_ChangePPS_Complete(
1584     TSS2_SYS_CONTEXT *sysContext);
1585 
1586 TSS2_RC Tss2_Sys_ChangePPS(
1587     TSS2_SYS_CONTEXT *sysContext,
1588     TPMI_RH_PLATFORM authHandle,
1589     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1590     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1591 
1592 TSS2_RC Tss2_Sys_ChangeEPS_Prepare(
1593     TSS2_SYS_CONTEXT *sysContext,
1594     TPMI_RH_PLATFORM authHandle);
1595 
1596 TSS2_RC Tss2_Sys_ChangeEPS_Complete(
1597     TSS2_SYS_CONTEXT *sysContext);
1598 
1599 TSS2_RC Tss2_Sys_ChangeEPS(
1600     TSS2_SYS_CONTEXT *sysContext,
1601     TPMI_RH_PLATFORM authHandle,
1602     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1603     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1604 
1605 TSS2_RC Tss2_Sys_Clear_Prepare(
1606     TSS2_SYS_CONTEXT *sysContext,
1607     TPMI_RH_CLEAR authHandle);
1608 
1609 TSS2_RC Tss2_Sys_Clear_Complete(
1610     TSS2_SYS_CONTEXT *sysContext);
1611 
1612 TSS2_RC Tss2_Sys_Clear(
1613     TSS2_SYS_CONTEXT *sysContext,
1614     TPMI_RH_CLEAR authHandle,
1615     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1616     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1617 
1618 TSS2_RC Tss2_Sys_ClearControl_Prepare(
1619     TSS2_SYS_CONTEXT *sysContext,
1620     TPMI_RH_CLEAR auth,
1621     TPMI_YES_NO disable);
1622 
1623 TSS2_RC Tss2_Sys_ClearControl_Complete(
1624     TSS2_SYS_CONTEXT *sysContext);
1625 
1626 TSS2_RC Tss2_Sys_ClearControl(
1627     TSS2_SYS_CONTEXT *sysContext,
1628     TPMI_RH_CLEAR auth,
1629     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1630     TPMI_YES_NO disable,
1631     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1632 
1633 TSS2_RC Tss2_Sys_HierarchyChangeAuth_Prepare(
1634     TSS2_SYS_CONTEXT *sysContext,
1635     TPMI_RH_HIERARCHY_AUTH authHandle,
1636     const TPM2B_AUTH *newAuth);
1637 
1638 TSS2_RC Tss2_Sys_HierarchyChangeAuth_Complete(
1639     TSS2_SYS_CONTEXT *sysContext);
1640 
1641 TSS2_RC Tss2_Sys_HierarchyChangeAuth(
1642     TSS2_SYS_CONTEXT *sysContext,
1643     TPMI_RH_HIERARCHY_AUTH authHandle,
1644     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1645     const TPM2B_AUTH *newAuth,
1646     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1647 
1648 TSS2_RC Tss2_Sys_DictionaryAttackLockReset_Prepare(
1649     TSS2_SYS_CONTEXT *sysContext,
1650     TPMI_RH_LOCKOUT lockHandle);
1651 
1652 TSS2_RC Tss2_Sys_DictionaryAttackLockReset_Complete(
1653     TSS2_SYS_CONTEXT *sysContext);
1654 
1655 TSS2_RC Tss2_Sys_DictionaryAttackLockReset(
1656     TSS2_SYS_CONTEXT *sysContext,
1657     TPMI_RH_LOCKOUT lockHandle,
1658     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1659     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1660 
1661 TSS2_RC Tss2_Sys_DictionaryAttackParameters_Prepare(
1662     TSS2_SYS_CONTEXT *sysContext,
1663     TPMI_RH_LOCKOUT lockHandle,
1664     UINT32 newMaxTries,
1665     UINT32 newRecoveryTime,
1666     UINT32 lockoutRecovery);
1667 
1668 TSS2_RC Tss2_Sys_DictionaryAttackParameters_Complete(
1669     TSS2_SYS_CONTEXT *sysContext);
1670 
1671 TSS2_RC Tss2_Sys_DictionaryAttackParameters(
1672     TSS2_SYS_CONTEXT *sysContext,
1673     TPMI_RH_LOCKOUT lockHandle,
1674     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1675     UINT32 newMaxTries,
1676     UINT32 newRecoveryTime,
1677     UINT32 lockoutRecovery,
1678     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1679 
1680 TSS2_RC Tss2_Sys_PP_Commands_Prepare(
1681     TSS2_SYS_CONTEXT *sysContext,
1682     TPMI_RH_PLATFORM auth,
1683     const TPML_CC *setList,
1684     const TPML_CC *clearList);
1685 
1686 TSS2_RC Tss2_Sys_PP_Commands_Complete(
1687     TSS2_SYS_CONTEXT *sysContext);
1688 
1689 TSS2_RC Tss2_Sys_PP_Commands(
1690     TSS2_SYS_CONTEXT *sysContext,
1691     TPMI_RH_PLATFORM auth,
1692     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1693     const TPML_CC *setList,
1694     const TPML_CC *clearList,
1695     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1696 
1697 TSS2_RC Tss2_Sys_SetAlgorithmSet_Prepare(
1698     TSS2_SYS_CONTEXT *sysContext,
1699     TPMI_RH_PLATFORM authHandle,
1700     UINT32 algorithmSet);
1701 
1702 TSS2_RC Tss2_Sys_SetAlgorithmSet_Complete(
1703     TSS2_SYS_CONTEXT *sysContext);
1704 
1705 TSS2_RC Tss2_Sys_SetAlgorithmSet(
1706     TSS2_SYS_CONTEXT *sysContext,
1707     TPMI_RH_PLATFORM authHandle,
1708     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1709     UINT32 algorithmSet,
1710     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1711 
1712 TSS2_RC Tss2_Sys_FieldUpgradeStart_Prepare(
1713     TSS2_SYS_CONTEXT *sysContext,
1714     TPMI_RH_PLATFORM authorization,
1715     TPMI_DH_OBJECT keyHandle,
1716     TPM2B_DIGEST const *fuDigest,
1717     TPMT_SIGNATURE const *manifestSignature);
1718 
1719 TSS2_RC Tss2_Sys_FieldUpgradeStart_Complete(
1720     TSS2_SYS_CONTEXT *sysContext);
1721 
1722 TSS2_RC Tss2_Sys_FieldUpgradeStart(
1723     TSS2_SYS_CONTEXT *sysContext,
1724     TPMI_RH_PLATFORM authorization,
1725     TPMI_DH_OBJECT keyHandle,
1726     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1727     TPM2B_DIGEST const *fuDigest,
1728     TPMT_SIGNATURE const *manifestSignature,
1729     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1730 
1731 TSS2_RC Tss2_Sys_FieldUpgradeData_Prepare(
1732     TSS2_SYS_CONTEXT *sysContext,
1733     TPM2B_MAX_BUFFER const *fuData);
1734 
1735 TSS2_RC Tss2_Sys_FieldUpgradeData_Complete(
1736     TSS2_SYS_CONTEXT *sysContext,
1737     TPMT_HA *nextDigest,
1738     TPMT_HA *firstDigest);
1739 
1740 TSS2_RC Tss2_Sys_FieldUpgradeData(
1741     TSS2_SYS_CONTEXT *sysContext,
1742     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1743     TPM2B_MAX_BUFFER const *fuData,
1744     TPMT_HA *nextDigest,
1745     TPMT_HA *firstDigest,
1746     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1747 
1748 TSS2_RC Tss2_Sys_FirmwareRead_Prepare(
1749     TSS2_SYS_CONTEXT *sysContext,
1750     UINT32 sequenceNumber);
1751 
1752 TSS2_RC Tss2_Sys_FirmwareRead_Complete(
1753     TSS2_SYS_CONTEXT *sysContext,
1754     TPM2B_MAX_BUFFER *fuData);
1755 
1756 TSS2_RC Tss2_Sys_FirmwareRead(
1757     TSS2_SYS_CONTEXT *sysContext,
1758     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1759     UINT32 sequenceNumber,
1760     TPM2B_MAX_BUFFER *fuData,
1761     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1762 
1763 TSS2_RC Tss2_Sys_ContextSave_Prepare(
1764     TSS2_SYS_CONTEXT *sysContext,
1765     TPMI_DH_CONTEXT saveHandle);
1766 
1767 TSS2_RC Tss2_Sys_ContextSave_Complete(
1768     TSS2_SYS_CONTEXT *sysContext,
1769     TPMS_CONTEXT *context);
1770 
1771 TSS2_RC Tss2_Sys_ContextSave(
1772     TSS2_SYS_CONTEXT *sysContext,
1773     TPMI_DH_CONTEXT saveHandle,
1774     TPMS_CONTEXT *context);
1775 
1776 TSS2_RC Tss2_Sys_ContextLoad_Prepare(
1777     TSS2_SYS_CONTEXT *sysContext,
1778     const TPMS_CONTEXT *context);
1779 
1780 TSS2_RC Tss2_Sys_ContextLoad_Complete(
1781     TSS2_SYS_CONTEXT *sysContext,
1782     TPMI_DH_CONTEXT *loadedHandle);
1783 
1784 TSS2_RC Tss2_Sys_ContextLoad(
1785     TSS2_SYS_CONTEXT *sysContext,
1786     const TPMS_CONTEXT *context,
1787     TPMI_DH_CONTEXT *loadedHandle);
1788 
1789 TSS2_RC Tss2_Sys_FlushContext_Prepare(
1790     TSS2_SYS_CONTEXT *sysContext,
1791     TPMI_DH_CONTEXT flushHandle);
1792 
1793 TSS2_RC Tss2_Sys_FlushContext_Complete(
1794     TSS2_SYS_CONTEXT *sysContext);
1795 
1796 TSS2_RC Tss2_Sys_FlushContext(
1797     TSS2_SYS_CONTEXT *sysContext,
1798     TPMI_DH_CONTEXT flushHandle);
1799 
1800 TSS2_RC Tss2_Sys_EvictControl_Prepare(
1801     TSS2_SYS_CONTEXT *sysContext,
1802     TPMI_RH_PROVISION auth,
1803     TPMI_DH_OBJECT objectHandle,
1804     TPMI_DH_PERSISTENT persistentHandle);
1805 
1806 TSS2_RC Tss2_Sys_EvictControl_Complete(
1807     TSS2_SYS_CONTEXT *sysContext);
1808 
1809 TSS2_RC Tss2_Sys_EvictControl(
1810     TSS2_SYS_CONTEXT *sysContext,
1811     TPMI_RH_PROVISION auth,
1812     TPMI_DH_OBJECT objectHandle,
1813     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1814     TPMI_DH_PERSISTENT persistentHandle,
1815     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1816 
1817 TSS2_RC Tss2_Sys_ReadClock_Prepare(
1818     TSS2_SYS_CONTEXT *sysContext);
1819 
1820 TSS2_RC Tss2_Sys_ReadClock_Complete(
1821     TSS2_SYS_CONTEXT *sysContext,
1822     TPMS_TIME_INFO *currentTime);
1823 
1824 TSS2_RC Tss2_Sys_ReadClock(
1825     TSS2_SYS_CONTEXT *sysContext,
1826     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1827     TPMS_TIME_INFO *currentTime,
1828     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1829 
1830 TSS2_RC Tss2_Sys_ClockSet_Prepare(
1831     TSS2_SYS_CONTEXT *sysContext,
1832     TPMI_RH_PROVISION auth,
1833     UINT64 newTime);
1834 
1835 TSS2_RC Tss2_Sys_ClockSet_Complete(
1836     TSS2_SYS_CONTEXT *sysContext);
1837 
1838 TSS2_RC Tss2_Sys_ClockSet(
1839     TSS2_SYS_CONTEXT *sysContext,
1840     TPMI_RH_PROVISION auth,
1841     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1842     UINT64 newTime,
1843     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1844 
1845 TSS2_RC Tss2_Sys_ClockRateAdjust_Prepare(
1846     TSS2_SYS_CONTEXT *sysContext,
1847     TPMI_RH_PROVISION auth,
1848     TPM2_CLOCK_ADJUST rateAdjust);
1849 
1850 TSS2_RC Tss2_Sys_ClockRateAdjust_Complete(
1851     TSS2_SYS_CONTEXT *sysContext);
1852 
1853 TSS2_RC Tss2_Sys_ClockRateAdjust(
1854     TSS2_SYS_CONTEXT *sysContext,
1855     TPMI_RH_PROVISION auth,
1856     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1857     TPM2_CLOCK_ADJUST rateAdjust,
1858     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1859 
1860 TSS2_RC Tss2_Sys_GetCapability_Prepare(
1861     TSS2_SYS_CONTEXT *sysContext,
1862     TPM2_CAP capability,
1863     UINT32 property,
1864     UINT32 propertyCount);
1865 
1866 TSS2_RC Tss2_Sys_GetCapability_Complete(
1867     TSS2_SYS_CONTEXT *sysContext,
1868     TPMI_YES_NO *moreData,
1869     TPMS_CAPABILITY_DATA *capabilityData);
1870 
1871 TSS2_RC Tss2_Sys_GetCapability(
1872     TSS2_SYS_CONTEXT *sysContext,
1873     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1874     TPM2_CAP capability,
1875     UINT32 property,
1876     UINT32 propertyCount,
1877     TPMI_YES_NO *moreData,
1878     TPMS_CAPABILITY_DATA *capabilityData,
1879     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1880 
1881 TSS2_RC Tss2_Sys_TestParms_Prepare(
1882     TSS2_SYS_CONTEXT *sysContext,
1883     const TPMT_PUBLIC_PARMS *parameters);
1884 
1885 TSS2_RC Tss2_Sys_TestParms_Complete(
1886     TSS2_SYS_CONTEXT *sysContext);
1887 
1888 TSS2_RC Tss2_Sys_TestParms(
1889     TSS2_SYS_CONTEXT *sysContext,
1890     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1891     const TPMT_PUBLIC_PARMS *parameters,
1892     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1893 
1894 TSS2_RC Tss2_Sys_NV_DefineSpace_Prepare(
1895     TSS2_SYS_CONTEXT *sysContext,
1896     TPMI_RH_PROVISION authHandle,
1897     const TPM2B_AUTH *auth,
1898     const TPM2B_NV_PUBLIC *publicInfo);
1899 
1900 TSS2_RC Tss2_Sys_NV_DefineSpace_Complete(
1901     TSS2_SYS_CONTEXT *sysContext);
1902 
1903 TSS2_RC Tss2_Sys_NV_DefineSpace(
1904     TSS2_SYS_CONTEXT *sysContext,
1905     TPMI_RH_PROVISION authHandle,
1906     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1907     const TPM2B_AUTH *auth,
1908     const TPM2B_NV_PUBLIC *publicInfo,
1909     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1910 
1911 TSS2_RC Tss2_Sys_NV_UndefineSpace_Prepare(
1912     TSS2_SYS_CONTEXT *sysContext,
1913     TPMI_RH_PROVISION authHandle,
1914     TPMI_RH_NV_INDEX nvIndex);
1915 
1916 TSS2_RC Tss2_Sys_NV_UndefineSpace_Complete(
1917     TSS2_SYS_CONTEXT *sysContext);
1918 
1919 TSS2_RC Tss2_Sys_NV_UndefineSpace(
1920     TSS2_SYS_CONTEXT *sysContext,
1921     TPMI_RH_PROVISION authHandle,
1922     TPMI_RH_NV_INDEX nvIndex,
1923     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1924     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1925 
1926 TSS2_RC Tss2_Sys_NV_UndefineSpaceSpecial_Prepare(
1927     TSS2_SYS_CONTEXT *sysContext,
1928     TPMI_RH_NV_INDEX nvIndex,
1929     TPMI_RH_PLATFORM platform);
1930 
1931 TSS2_RC Tss2_Sys_NV_UndefineSpaceSpecial_Complete(
1932     TSS2_SYS_CONTEXT *sysContext);
1933 
1934 TSS2_RC Tss2_Sys_NV_UndefineSpaceSpecial(
1935     TSS2_SYS_CONTEXT *sysContext,
1936     TPMI_RH_NV_INDEX nvIndex,
1937     TPMI_RH_PLATFORM platform,
1938     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1939     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1940 
1941 TSS2_RC Tss2_Sys_NV_ReadPublic_Prepare(
1942     TSS2_SYS_CONTEXT *sysContext,
1943     TPMI_RH_NV_INDEX nvIndex);
1944 
1945 TSS2_RC Tss2_Sys_NV_ReadPublic_Complete(
1946     TSS2_SYS_CONTEXT *sysContext,
1947     TPM2B_NV_PUBLIC *nvPublic,
1948     TPM2B_NAME *nvName);
1949 
1950 TSS2_RC Tss2_Sys_NV_ReadPublic(
1951     TSS2_SYS_CONTEXT *sysContext,
1952     TPMI_RH_NV_INDEX nvIndex,
1953     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1954     TPM2B_NV_PUBLIC *nvPublic,
1955     TPM2B_NAME *nvName,
1956     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1957 
1958 TSS2_RC Tss2_Sys_NV_Write_Prepare(
1959     TSS2_SYS_CONTEXT *sysContext,
1960     TPMI_RH_NV_AUTH authHandle,
1961     TPMI_RH_NV_INDEX nvIndex,
1962     const TPM2B_MAX_NV_BUFFER *data,
1963     UINT16 offset);
1964 
1965 TSS2_RC Tss2_Sys_NV_Write_Complete(
1966     TSS2_SYS_CONTEXT *sysContext);
1967 
1968 TSS2_RC Tss2_Sys_NV_Write(
1969     TSS2_SYS_CONTEXT *sysContext,
1970     TPMI_RH_NV_AUTH authHandle,
1971     TPMI_RH_NV_INDEX nvIndex,
1972     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1973     const TPM2B_MAX_NV_BUFFER *data,
1974     UINT16 offset,
1975     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1976 
1977 TSS2_RC Tss2_Sys_NV_Increment_Prepare(
1978     TSS2_SYS_CONTEXT *sysContext,
1979     TPMI_RH_NV_AUTH authHandle,
1980     TPMI_RH_NV_INDEX nvIndex);
1981 
1982 TSS2_RC Tss2_Sys_NV_Increment_Complete(
1983     TSS2_SYS_CONTEXT *sysContext);
1984 
1985 TSS2_RC Tss2_Sys_NV_Increment(
1986     TSS2_SYS_CONTEXT *sysContext,
1987     TPMI_RH_NV_AUTH authHandle,
1988     TPMI_RH_NV_INDEX nvIndex,
1989     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
1990     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
1991 
1992 TSS2_RC Tss2_Sys_NV_Extend_Prepare(
1993     TSS2_SYS_CONTEXT *sysContext,
1994     TPMI_RH_NV_AUTH authHandle,
1995     TPMI_RH_NV_INDEX nvIndex,
1996     const TPM2B_MAX_NV_BUFFER *data);
1997 
1998 TSS2_RC Tss2_Sys_NV_Extend_Complete(
1999     TSS2_SYS_CONTEXT *sysContext);
2000 
2001 TSS2_RC Tss2_Sys_NV_Extend(
2002     TSS2_SYS_CONTEXT *sysContext,
2003     TPMI_RH_NV_AUTH authHandle,
2004     TPMI_RH_NV_INDEX nvIndex,
2005     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
2006     const TPM2B_MAX_NV_BUFFER *data,
2007     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
2008 
2009 TSS2_RC Tss2_Sys_NV_SetBits_Prepare(
2010     TSS2_SYS_CONTEXT *sysContext,
2011     TPMI_RH_NV_AUTH authHandle,
2012     TPMI_RH_NV_INDEX nvIndex,
2013     UINT64 bits);
2014 
2015 TSS2_RC Tss2_Sys_NV_SetBits_Complete(
2016     TSS2_SYS_CONTEXT *sysContext);
2017 
2018 TSS2_RC Tss2_Sys_NV_SetBits(
2019     TSS2_SYS_CONTEXT *sysContext,
2020     TPMI_RH_NV_AUTH authHandle,
2021     TPMI_RH_NV_INDEX nvIndex,
2022     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
2023     UINT64 bits,
2024     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
2025 
2026 TSS2_RC Tss2_Sys_NV_WriteLock_Prepare(
2027     TSS2_SYS_CONTEXT *sysContext,
2028     TPMI_RH_NV_AUTH authHandle,
2029     TPMI_RH_NV_INDEX nvIndex);
2030 
2031 TSS2_RC Tss2_Sys_NV_WriteLock_Complete(
2032     TSS2_SYS_CONTEXT *sysContext);
2033 
2034 TSS2_RC Tss2_Sys_NV_WriteLock(
2035     TSS2_SYS_CONTEXT *sysContext,
2036     TPMI_RH_NV_AUTH authHandle,
2037     TPMI_RH_NV_INDEX nvIndex,
2038     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
2039     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
2040 
2041 TSS2_RC Tss2_Sys_NV_GlobalWriteLock_Prepare(
2042     TSS2_SYS_CONTEXT *sysContext,
2043     TPMI_RH_PROVISION authHandle);
2044 
2045 TSS2_RC Tss2_Sys_NV_GlobalWriteLock_Complete(
2046     TSS2_SYS_CONTEXT *sysContext);
2047 
2048 TSS2_RC Tss2_Sys_NV_GlobalWriteLock(
2049     TSS2_SYS_CONTEXT *sysContext,
2050     TPMI_RH_PROVISION authHandle,
2051     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
2052     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
2053 
2054 TSS2_RC Tss2_Sys_NV_Read_Prepare(
2055     TSS2_SYS_CONTEXT *sysContext,
2056     TPMI_RH_NV_AUTH authHandle,
2057     TPMI_RH_NV_INDEX nvIndex,
2058     UINT16 size,
2059     UINT16 offset);
2060 
2061 TSS2_RC Tss2_Sys_NV_Read_Complete(
2062     TSS2_SYS_CONTEXT *sysContext,
2063     TPM2B_MAX_NV_BUFFER *data);
2064 
2065 TSS2_RC Tss2_Sys_NV_Read(
2066     TSS2_SYS_CONTEXT *sysContext,
2067     TPMI_RH_NV_AUTH authHandle,
2068     TPMI_RH_NV_INDEX nvIndex,
2069     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
2070     UINT16 size,
2071     UINT16 offset,
2072     TPM2B_MAX_NV_BUFFER *data,
2073     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
2074 
2075 TSS2_RC Tss2_Sys_NV_ReadLock_Prepare(
2076     TSS2_SYS_CONTEXT *sysContext,
2077     TPMI_RH_NV_AUTH authHandle,
2078     TPMI_RH_NV_INDEX nvIndex);
2079 
2080 TSS2_RC Tss2_Sys_NV_ReadLock_Complete(
2081     TSS2_SYS_CONTEXT *sysContext);
2082 
2083 TSS2_RC Tss2_Sys_NV_ReadLock(
2084     TSS2_SYS_CONTEXT *sysContext,
2085     TPMI_RH_NV_AUTH authHandle,
2086     TPMI_RH_NV_INDEX nvIndex,
2087     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
2088     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
2089 
2090 TSS2_RC Tss2_Sys_NV_ChangeAuth_Prepare(
2091     TSS2_SYS_CONTEXT *sysContext,
2092     TPMI_RH_NV_INDEX nvIndex,
2093     const TPM2B_AUTH *newAuth);
2094 
2095 TSS2_RC Tss2_Sys_NV_ChangeAuth_Complete(
2096     TSS2_SYS_CONTEXT *sysContext);
2097 
2098 TSS2_RC Tss2_Sys_NV_ChangeAuth(
2099     TSS2_SYS_CONTEXT *sysContext,
2100     TPMI_RH_NV_INDEX nvIndex,
2101     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
2102     const TPM2B_AUTH *newAuth,
2103     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
2104 
2105 TSS2_RC Tss2_Sys_NV_Certify_Prepare(
2106     TSS2_SYS_CONTEXT *sysContext,
2107     TPMI_DH_OBJECT signHandle,
2108     TPMI_RH_NV_AUTH authHandle,
2109     TPMI_RH_NV_INDEX nvIndex,
2110     const TPM2B_DATA *qualifyingData,
2111     const TPMT_SIG_SCHEME *inScheme,
2112     UINT16 size,
2113     UINT16 offset);
2114 
2115 TSS2_RC Tss2_Sys_NV_Certify_Complete(
2116     TSS2_SYS_CONTEXT *sysContext,
2117     TPM2B_ATTEST *certifyInfo,
2118     TPMT_SIGNATURE *signature);
2119 
2120 TSS2_RC Tss2_Sys_NV_Certify(
2121     TSS2_SYS_CONTEXT *sysContext,
2122     TPMI_DH_OBJECT signHandle,
2123     TPMI_RH_NV_AUTH authHandle,
2124     TPMI_RH_NV_INDEX nvIndex,
2125     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
2126     const TPM2B_DATA *qualifyingData,
2127     const TPMT_SIG_SCHEME *inScheme,
2128     UINT16 size,
2129     UINT16 offset,
2130     TPM2B_ATTEST *certifyInfo,
2131     TPMT_SIGNATURE *signature,
2132     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
2133 
2134 TSS2_RC Tss2_Sys_Vendor_TCG_Test_Prepare(
2135     TSS2_SYS_CONTEXT *sysContext,
2136     const TPM2B_DATA *inputData);
2137 
2138 TSS2_RC Tss2_Sys_Vendor_TCG_Test_Complete(
2139     TSS2_SYS_CONTEXT *sysContext,
2140     TPM2B_DATA *outputData);
2141 
2142 TSS2_RC Tss2_Sys_Vendor_TCG_Test(
2143     TSS2_SYS_CONTEXT *sysContext,
2144     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
2145     const TPM2B_DATA *inputData,
2146     TPM2B_DATA *outputData,
2147     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
2148 
2149 TSS2_RC Tss2_Sys_AC_GetCapability_Prepare(
2150     TSS2_SYS_CONTEXT *sysContext,
2151     TPMI_RH_AC ac,
2152     TPM_AT capability,
2153     UINT32 count);
2154 
2155 TSS2_RC Tss2_Sys_AC_GetCapability_Complete(
2156     TSS2_SYS_CONTEXT *sysContext,
2157     TPMI_YES_NO *moreData,
2158     TPML_AC_CAPABILITIES *capabilityData);
2159 
2160 TSS2_RC Tss2_Sys_AC_GetCapability(
2161     TSS2_SYS_CONTEXT *sysContext,
2162     TPMI_RH_AC ac,
2163     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
2164     TPM_AT capability,
2165     UINT32 count,
2166     TPMI_YES_NO *moreData,
2167     TPML_AC_CAPABILITIES *capabilityData,
2168     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
2169 
2170 TSS2_RC Tss2_Sys_AC_Send_Prepare(
2171     TSS2_SYS_CONTEXT *sysContext,
2172     TPMI_DH_OBJECT sendObject,
2173     TPMI_RH_NV_AUTH authHandle,
2174     TPMI_RH_AC ac,
2175     TPM2B_MAX_BUFFER *acDataIn);
2176 
2177 TSS2_RC Tss2_Sys_AC_Send_Complete(
2178     TSS2_SYS_CONTEXT *sysContext,
2179     TPMS_AC_OUTPUT *acDataOut);
2180 
2181 TSS2_RC Tss2_Sys_AC_Send(
2182     TSS2_SYS_CONTEXT *sysContext,
2183     TPMI_DH_OBJECT sendObject,
2184     TPMI_RH_NV_AUTH authHandle,
2185     TPMI_RH_AC ac,
2186     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
2187     TPM2B_MAX_BUFFER *acDataIn,
2188     TPMS_AC_OUTPUT *acDataOut,
2189     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
2190 
2191 TSS2_RC Tss2_Sys_Policy_AC_SendSelect_Prepare(
2192     TSS2_SYS_CONTEXT *sysContext,
2193     TPMI_SH_POLICY policySession,
2194     TPM2B_NAME *objectName,
2195     TPM2B_NAME *authHandleName,
2196     TPM2B_NAME *acName,
2197     TPMI_YES_NO includeObject);
2198 
2199 TSS2_RC Tss2_Sys_Policy_AC_SendSelect_Complete(
2200     TSS2_SYS_CONTEXT *sysContext);
2201 
2202 TSS2_RC Tss2_Sys_Policy_AC_SendSelect(
2203     TSS2_SYS_CONTEXT *sysContext,
2204     TPMI_SH_POLICY policySession,
2205     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
2206     TPM2B_NAME *objectName,
2207     TPM2B_NAME *authHandleName,
2208     TPM2B_NAME *acName,
2209     TPMI_YES_NO includeObject,
2210     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
2211 
2212 TSS2_RC Tss2_Sys_ACT_SetTimeout_Prepare(
2213     TSS2_SYS_CONTEXT *sysContext,
2214     TPMI_RH_ACT actHandle,
2215     UINT32 startTimeout);
2216 
2217 TSS2_RC Tss2_Sys_ACT_SetTimeout_Complete(
2218     TSS2_SYS_CONTEXT *sysContext);
2219 
2220 TSS2_RC Tss2_Sys_ACT_SetTimeout(
2221     TSS2_SYS_CONTEXT *sysContext,
2222     TPMI_RH_ACT actHandle,
2223     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
2224     UINT32 startTimeout,
2225     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
2226 
2227 TSS2_RC Tss2_Sys_PolicyTemplate_Prepare(
2228     TSS2_SYS_CONTEXT *sysContext,
2229     TPMI_SH_POLICY policySession,
2230     const TPM2B_DIGEST *templateHash);
2231 
2232 TSS2_RC Tss2_Sys_PolicyTemplate_Complete(
2233     TSS2_SYS_CONTEXT *sysContext);
2234 
2235 TSS2_RC Tss2_Sys_PolicyTemplate(
2236     TSS2_SYS_CONTEXT *sysContext,
2237     TPMI_SH_POLICY policySession,
2238     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
2239     const TPM2B_DIGEST *templateHash,
2240     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
2241 
2242 TSS2_RC Tss2_Sys_CreateLoaded_Prepare(
2243     TSS2_SYS_CONTEXT *sysContext,
2244     TPMI_RH_HIERARCHY parentHandle,
2245     const TPM2B_SENSITIVE_CREATE *inSensitive,
2246     const TPM2B_TEMPLATE *inPublic);
2247 
2248 TSS2_RC Tss2_Sys_CreateLoaded_Complete(
2249     TSS2_SYS_CONTEXT *sysContext,
2250     TPM2_HANDLE *objectHandle,
2251     TPM2B_PRIVATE *outPrivate,
2252     TPM2B_PUBLIC *outPublic,
2253     TPM2B_NAME *name);
2254 
2255 TSS2_RC Tss2_Sys_CreateLoaded(
2256     TSS2_SYS_CONTEXT *sysContext,
2257     TPMI_RH_HIERARCHY parentHandle,
2258     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
2259     const TPM2B_SENSITIVE_CREATE *inSensitive,
2260     const TPM2B_TEMPLATE *inPublic,
2261     TPM2_HANDLE *objectHandle,
2262     TPM2B_PRIVATE *outPrivate,
2263     TPM2B_PUBLIC *outPublic,
2264     TPM2B_NAME *name,
2265     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
2266 
2267 TSS2_RC Tss2_Sys_PolicyAuthorizeNV_Prepare(
2268     TSS2_SYS_CONTEXT *sysContext,
2269     TPMI_RH_NV_AUTH authHandle,
2270     TPMI_RH_NV_INDEX nvIndex,
2271     TPMI_SH_POLICY policySession);
2272 
2273 TSS2_RC Tss2_Sys_PolicyAuthorizeNV_Complete(
2274     TSS2_SYS_CONTEXT *sysContext);
2275 
2276 TSS2_RC Tss2_Sys_PolicyAuthorizeNV(
2277     TSS2_SYS_CONTEXT *sysContext,
2278     TPMI_RH_NV_AUTH authHandle,
2279     TPMI_RH_NV_INDEX nvIndex,
2280     TPMI_SH_POLICY policySession,
2281     TSS2L_SYS_AUTH_COMMAND const *cmdAuthsArray,
2282     TSS2L_SYS_AUTH_RESPONSE *rspAuthsArray);
2283 
2284 #ifdef __cplusplus
2285 }
2286 #endif
2287 #endif /* TSS2_SYS_H */
2288