blob: 16af3f74306fa926656f561654b6b708011791fc [file] [log] [blame]
Vadim Bendebury3743ac12015-05-29 22:44:14 -07001/*
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 Bendeburyf788ffb2015-06-05 12:57:27 -070010UINT32 SessionCapGetActiveAvail(void);
11UINT32 SessionCapGetActiveNumber(void);
12TPMI_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 );
16UINT32 SessionCapGetLoadedAvail(void);
17UINT32 SessionCapGetLoadedNumber(void);
18TPMI_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 Bendebury1bb3d5f2015-06-01 18:07:11 -070022void SessionComputeBoundEntity(
Vadim Bendeburyf788ffb2015-06-05 12:57:27 -070023 TPMI_DH_ENTITY entityHandle, // IN: handle of entity
24 TPM2B_NAME *bind // OUT: binding value
25 );
Vadim Bendebury3743ac12015-05-29 22:44:14 -070026TPM_RC SessionContextLoad(
Vadim Bendeburyf788ffb2015-06-05 12:57:27 -070027 SESSION *session, // IN: session structure from saved context
28 TPM_HANDLE *handle // IN/OUT: session handle
29 );
30TPM_RC SessionContextSave(TPM_HANDLE handle, // IN: session handle
31 CONTEXT_COUNTER *contextID // OUT: assigned contextID
Vadim Bendebury3743ac12015-05-29 22:44:14 -070032 );
Vadim Bendeburyf788ffb2015-06-05 12:57:27 -070033TPM_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 Bendebury889ec832015-05-26 17:11:06 -070040 );
Vadim Bendeburyf788ffb2015-06-05 12:57:27 -070041void SessionFlush(TPM_HANDLE handle // IN: loaded or saved session handle
42 );
43SESSION *SessionGet(TPM_HANDLE handle // IN: session handle
Vadim Bendebury3743ac12015-05-29 22:44:14 -070044 );
Vadim Bendeburyf788ffb2015-06-05 12:57:27 -070045void SessionInitPolicyData(SESSION *session // IN: session handle
46 );
47BOOL SessionIsLoaded(TPM_HANDLE handle // IN: session handle
48 );
49BOOL SessionIsSaved(TPM_HANDLE handle // IN: session handle
50 );
51BOOL SessionPCRValueIsCurrent(TPMI_SH_POLICY handle // IN: session handle
52 );
53void SessionResetPolicyData(SESSION *session // IN: the session to reset
54 );
55void SessionStartup(STARTUP_TYPE type);
Vadim Bendebury3743ac12015-05-29 22:44:14 -070056
Vadim Bendeburyf788ffb2015-06-05 12:57:27 -070057#endif // __TPM2_SESSION_FP_H