/*
* Copyright 2015 The Chromium OS Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef __TPM2_SESSION_FP_H
#define __TPM2_SESSION_FP_H
UINT32 SessionCapGetActiveAvail(void);
UINT32 SessionCapGetActiveNumber(void);
TPMI_YES_NO SessionCapGetLoaded(TPMI_SH_POLICY handle, // IN: start handle
UINT32 count, // IN: count of returned handle
TPML_HANDLE *handleList // OUT: list of handle
);
UINT32 SessionCapGetLoadedAvail(void);
UINT32 SessionCapGetLoadedNumber(void);
TPMI_YES_NO SessionCapGetSaved(TPMI_SH_HMAC handle, // IN: start handle
UINT32 count, // IN: count of returned handle
TPML_HANDLE *handleList // OUT: list of handle
);
void SessionComputeBoundEntity(
TPMI_DH_ENTITY entityHandle, // IN: handle of entity
TPM2B_NAME *bind // OUT: binding value
);
TPM_RC SessionContextLoad(
SESSION *session, // IN: session structure from saved context
TPM_HANDLE *handle // IN/OUT: session handle
);
TPM_RC SessionContextSave(TPM_HANDLE handle, // IN: session handle
CONTEXT_COUNTER *contextID // OUT: assigned contextID
);
TPM_RC SessionCreate(TPM_SE sessionType, // IN: the session type
TPMI_ALG_HASH authHash, // IN: the hash algorithm
TPM2B_NONCE *nonceCaller, // IN: initial nonceCaller
TPMT_SYM_DEF *symmetric, // IN: the symmetric algorithm
TPMI_DH_ENTITY bind, // IN: the bind object
TPM2B_DATA *seed, // IN: seed data
TPM_HANDLE *sessionHandle // OUT: the session handle
);
void SessionFlush(TPM_HANDLE handle // IN: loaded or saved session handle
);
SESSION *SessionGet(TPM_HANDLE handle // IN: session handle
);
void SessionInitPolicyData(SESSION *session // IN: session handle
);
BOOL SessionIsLoaded(TPM_HANDLE handle // IN: session handle
);
BOOL SessionIsSaved(TPM_HANDLE handle // IN: session handle
);
BOOL SessionPCRValueIsCurrent(TPMI_SH_POLICY handle // IN: session handle
);
void SessionResetPolicyData(SESSION *session // IN: the session to reset
);
void SessionStartup(STARTUP_TYPE type);
#endif // __TPM2_SESSION_FP_H