Vadim Bendebury | 3743ac1 | 2015-05-29 22:44:14 -0700 | [diff] [blame] | 1 | /* |
| 2 | * Copyright 2015 The Chromium OS Authors. All rights reserved. |
| 3 | * Use of this source code is governed by a BSD-style license that can be |
| 4 | * found in the LICENSE file. |
| 5 | */ |
| 6 | |
| 7 | #ifndef __TPM2_SESSION_FP_H |
| 8 | #define __TPM2_SESSION_FP_H |
| 9 | |
Vadim Bendebury | f788ffb | 2015-06-05 12:57:27 -0700 | [diff] [blame] | 10 | UINT32 SessionCapGetActiveAvail(void); |
| 11 | UINT32 SessionCapGetActiveNumber(void); |
| 12 | TPMI_YES_NO SessionCapGetLoaded(TPMI_SH_POLICY handle, // IN: start handle |
| 13 | UINT32 count, // IN: count of returned handle |
| 14 | TPML_HANDLE *handleList // OUT: list of handle |
| 15 | ); |
| 16 | UINT32 SessionCapGetLoadedAvail(void); |
| 17 | UINT32 SessionCapGetLoadedNumber(void); |
| 18 | TPMI_YES_NO SessionCapGetSaved(TPMI_SH_HMAC handle, // IN: start handle |
| 19 | UINT32 count, // IN: count of returned handle |
| 20 | TPML_HANDLE *handleList // OUT: list of handle |
| 21 | ); |
Vadim Bendebury | 1bb3d5f | 2015-06-01 18:07:11 -0700 | [diff] [blame] | 22 | void SessionComputeBoundEntity( |
Vadim Bendebury | f788ffb | 2015-06-05 12:57:27 -0700 | [diff] [blame] | 23 | TPMI_DH_ENTITY entityHandle, // IN: handle of entity |
| 24 | TPM2B_NAME *bind // OUT: binding value |
| 25 | ); |
Vadim Bendebury | 3743ac1 | 2015-05-29 22:44:14 -0700 | [diff] [blame] | 26 | TPM_RC SessionContextLoad( |
Vadim Bendebury | f788ffb | 2015-06-05 12:57:27 -0700 | [diff] [blame] | 27 | SESSION *session, // IN: session structure from saved context |
| 28 | TPM_HANDLE *handle // IN/OUT: session handle |
| 29 | ); |
| 30 | TPM_RC SessionContextSave(TPM_HANDLE handle, // IN: session handle |
| 31 | CONTEXT_COUNTER *contextID // OUT: assigned contextID |
Vadim Bendebury | 3743ac1 | 2015-05-29 22:44:14 -0700 | [diff] [blame] | 32 | ); |
Vadim Bendebury | f788ffb | 2015-06-05 12:57:27 -0700 | [diff] [blame] | 33 | TPM_RC SessionCreate(TPM_SE sessionType, // IN: the session type |
| 34 | TPMI_ALG_HASH authHash, // IN: the hash algorithm |
| 35 | TPM2B_NONCE *nonceCaller, // IN: initial nonceCaller |
| 36 | TPMT_SYM_DEF *symmetric, // IN: the symmetric algorithm |
| 37 | TPMI_DH_ENTITY bind, // IN: the bind object |
| 38 | TPM2B_DATA *seed, // IN: seed data |
| 39 | TPM_HANDLE *sessionHandle // OUT: the session handle |
Vadim Bendebury | 889ec83 | 2015-05-26 17:11:06 -0700 | [diff] [blame] | 40 | ); |
Vadim Bendebury | f788ffb | 2015-06-05 12:57:27 -0700 | [diff] [blame] | 41 | void SessionFlush(TPM_HANDLE handle // IN: loaded or saved session handle |
| 42 | ); |
| 43 | SESSION *SessionGet(TPM_HANDLE handle // IN: session handle |
Vadim Bendebury | 3743ac1 | 2015-05-29 22:44:14 -0700 | [diff] [blame] | 44 | ); |
Vadim Bendebury | f788ffb | 2015-06-05 12:57:27 -0700 | [diff] [blame] | 45 | void SessionInitPolicyData(SESSION *session // IN: session handle |
| 46 | ); |
| 47 | BOOL SessionIsLoaded(TPM_HANDLE handle // IN: session handle |
| 48 | ); |
| 49 | BOOL SessionIsSaved(TPM_HANDLE handle // IN: session handle |
| 50 | ); |
| 51 | BOOL SessionPCRValueIsCurrent(TPMI_SH_POLICY handle // IN: session handle |
| 52 | ); |
| 53 | void SessionResetPolicyData(SESSION *session // IN: the session to reset |
| 54 | ); |
| 55 | void SessionStartup(STARTUP_TYPE type); |
Vadim Bendebury | 3743ac1 | 2015-05-29 22:44:14 -0700 | [diff] [blame] | 56 | |
Vadim Bendebury | f788ffb | 2015-06-05 12:57:27 -0700 | [diff] [blame] | 57 | #endif // __TPM2_SESSION_FP_H |