tpm2-tss
3.2.0
TPM Software stack 2.0 TCG spec compliant implementation
|
Data Structures | |
struct | RSRC_NODE_T |
struct | ESYS_CONTEXT |
struct | IESYS_SESSION |
union | IESYS_RSRC_UNION |
struct | IESYS_RESOURCE |
struct | IESYS_METADATA |
struct | IESYS_CONTEXT_DATA |
Macros | |
#define | _ESYS_MAX_SUBMISSIONS 5 |
#define | _ESYS_ASSERT_NON_NULL(x) |
#define | IESYSC_KEY_RSRC 1 |
#define | IESYSC_NV_RSRC 2 |
#define | IESYSC_SESSION_RSRC 3 |
#define | IESYSC_WITHOUT_MISC_RSRC 0 |
#define | ENCRYPT 1 |
#define | NO_ENCRYPT 0 |
#define | DECRYPT 1 |
#define | NO_DECRYPT 0 |
#define | POLICY_PASSWORD 2 |
#define | POLICY_AUTH 1 |
#define | NO_POLICY_AUTH 0 |
Typedefs | |
typedef struct RSRC_NODE_T | RSRC_NODE_T |
typedef UINT32 | IESYSC_RESOURCE_TYPE_CONSTANT |
typedef UINT32 | IESYSC_PARAM_ENCRYPT |
typedef UINT32 | IESYSC_PARAM_DECRYPT |
typedef UINT32 | IESYSC_TYPE_POLICY_AUTH |
typedef UINT32 | IESYSC_RESOURCE_TYPE |
Enumerations | |
enum | _ESYS_STATE { _ESYS_STATE_INIT = 0, _ESYS_STATE_SENT, _ESYS_STATE_RESUBMISSION, _ESYS_STATE_INTERNALERROR } |
The ESAPI implementation requires a set of internal type definitions.
struct RSRC_NODE_T |
Linked list type for object meta data.
This structure represents a linked list to store meta data information of type IESYS_RESOURCE.
Data Fields | |
ESYS_TR | esys_handle |
TPM2B_AUTH | auth |
IESYS_RESOURCE | rsrc |
struct RSRC_NODE_T * | next |
TPM2B_AUTH auth |
The authValue for this resource object.
ESYS_TR esys_handle |
The ESYS_TR handle used by the application to reference this entry.
struct RSRC_NODE_T* next |
The next object in the linked list.
IESYS_RESOURCE rsrc |
The meta data for this resource object.
struct ESYS_CONTEXT |
The data structure holding internal state information.
Each ESYS_CONTEXT respresents a logically independent connection to the TPM. It stores meta data information about object in order to calculate session auths and similar things.
Data Fields | |
enum _ESYS_STATE | state |
TSS2_SYS_CONTEXT * | sys |
ESYS_TR | esys_handle_cnt |
RSRC_NODE_T * | rsrc_list |
int32_t | timeout |
ESYS_TR | session_type [3] |
RSRC_NODE_T * | session_tab [3] |
int | encryptNonceIdx |
TPM2B_NONCE * | encryptNonce |
int | authsCount |
int | submissionCount |
TPM2B_DATA | salt |
IESYS_CMD_IN_PARAM | in |
ESYS_TR | esys_handle |
TSS2_TCTI_CONTEXT * | tcti_app_param |
void * | dlhandle |
IESYS_SESSION * | enc_session |
int authsCount |
The number of session provided during the command.
void* dlhandle |
The handle of dlopen if the tcti was automatically loaded.
IESYS_SESSION* enc_session |
Ptr to the enc param session. Used to restore session attributes
TPM2B_NONCE* encryptNonce |
The nonce of the encrypt session, or NULL if no encrypt session exists.
int encryptNonceIdx |
The index of the encrypt session.
ESYS_TR esys_handle |
Temporary storage for the object's TPM handle during Esys_TR_FromTPMPublic.
ESYS_TR esys_handle_cnt |
The next free ESYS_TR number.
IESYS_CMD_IN_PARAM in |
Temporary storage for Input parameters needed in corresponding _Finish function
RSRC_NODE_T* rsrc_list |
The linked list of all ESYS_TR objects.
TPM2B_DATA salt |
The salt used during a StartAuthSession.
RSRC_NODE_T* session_tab[3] |
The list of TPM session meta data in the current command execution.
ESYS_TR session_type[3] |
The list of TPM session handles in the current command execution.
enum _ESYS_STATE state |
The current state of the ESAPI context.
int submissionCount |
The current number of submissions of this command to the TPM.
TSS2_SYS_CONTEXT* sys |
The SYS context used internally to talk to the TPM.
TSS2_TCTI_CONTEXT* tcti_app_param |
The TCTI context provided by the application during Esys_Initialize() to be returned from Esys_GetTcti().
int32_t timeout |
The timeout to be used during Tss2_Sys_ExecuteFinish.
struct IESYS_SESSION |
Type for representing TPM-Session
Data Fields | |
TPM2B_NAME | bound_entity |
TPM2B_ENCRYPTED_SECRET | encryptedSalt |
TPM2B_DATA | salt |
TPMT_SYM_DEF | symmetric |
TPMI_ALG_HASH | authHash |
TPM2B_DIGEST | sessionKey |
TPM2_SE | sessionType |
TPMA_SESSION | sessionAttributes |
TPMA_SESSION | origSessionAttributes |
TPM2B_NONCE | nonceCaller |
TPM2B_NONCE | nonceTPM |
IESYSC_PARAM_ENCRYPT | encrypt |
IESYSC_PARAM_DECRYPT | decrypt |
IESYSC_TYPE_POLICY_AUTH | type_policy_session |
UINT16 | sizeSessionValue |
BYTE | sessionValue [2 *sizeof(TPMU_HA)] |
UINT16 | sizeHmacValue |
TPMI_ALG_HASH authHash |
Hashalg used for authorization
TPM2B_NAME bound_entity |
Entity to which the session is bound
IESYSC_PARAM_DECRYPT decrypt |
Indicate parameter decryption by the TPM
IESYSC_PARAM_ENCRYPT encrypt |
Indicate parameter encryption by the TPM
TPM2B_ENCRYPTED_SECRET encryptedSalt |
Encrypted salt which can be provided by application
TPM2B_NONCE nonceCaller |
Nonce computed by the ESAPI for every session call
TPM2B_NONCE nonceTPM |
Nonce which is returned by the TPM for every session call
TPMA_SESSION origSessionAttributes |
Copy of flags which define the session behaviour
TPM2B_DATA salt |
Salt computed if no encrypted salt is provided
TPMA_SESSION sessionAttributes |
Flags which define the session behaviour
TPM2B_DIGEST sessionKey |
sessionKey used for KDFa to compute symKey
TPM2_SE sessionType |
Type of the session (HMAC, Policy)
BYTE sessionValue[2 *sizeof(TPMU_HA)] |
sessionKey || AuthValue
UINT16 sizeHmacValue |
Size of sessionKey plus optionally authValue
UINT16 sizeSessionValue |
Size of sessionKey plus optionally authValue
TPMT_SYM_DEF symmetric |
Algorithm selection for parameter encryption
IESYSC_TYPE_POLICY_AUTH type_policy_session |
Field to store markers for policy sessions
union IESYS_RSRC_UNION |
Type for representing public info of a TPM-Resource
Data Fields | |
TPM2B_PUBLIC | rsrc_key_pub |
TPM2B_NV_PUBLIC | rsrc_nv_pub |
IESYS_SESSION | rsrc_session |
TPMS_EMPTY | rsrc_empty |
TPMS_EMPTY rsrc_empty |
no specialized date for resource
TPM2B_PUBLIC rsrc_key_pub |
Public info for key objects
TPM2B_NV_PUBLIC rsrc_nv_pub |
Public info for NV ram objects
IESYS_SESSION rsrc_session |
Internal esapi session information
struct IESYS_RESOURCE |
Type for representing TPM-Resource
Data Fields | |
TPM2_HANDLE | handle |
TPM2B_NAME | name |
IESYSC_RESOURCE_TYPE | rsrcType |
IESYS_RSRC_UNION | misc |
TPM2_HANDLE handle |
Handle used by TPM
IESYS_RSRC_UNION misc |
Resource specific information
TPM2B_NAME name |
TPM name of the object
IESYSC_RESOURCE_TYPE rsrcType |
Selector for resource type
struct IESYS_METADATA |
Esys resource with size field
Data Fields | |
UINT16 | size |
IESYS_RESOURCE | data |
IESYS_RESOURCE data |
Esys resource data
UINT16 size |
size of the operand buffer
struct IESYS_CONTEXT_DATA |
Type for representing ESYS metadata
Data Fields | |
UINT32 | reserved |
TPM2B_CONTEXT_DATA | tpmContext |
IESYS_METADATA | esysMetadata |
IESYS_METADATA esysMetadata |
Meta data of the ESY_TR object
UINT32 reserved |
Must allways be zero
TPM2B_CONTEXT_DATA tpmContext |
Context information computed by tpm
#define _ESYS_ASSERT_NON_NULL | ( | x | ) |
Makro testing parameters against null.
#define _ESYS_MAX_SUBMISSIONS 5 |
The number of authomatic resubmissions.
The number of resubmissions before a TPM's TPM2_RC_YIELDED is forwarded to the application.
#define DECRYPT 1 |
Parameter decryption by TPM
#define ENCRYPT 1 |
Parameter encryption by TPM
#define IESYSC_KEY_RSRC 1 |
Tag for key resource
#define IESYSC_NV_RSRC 2 |
Tag for NV Ram resource
#define IESYSC_SESSION_RSRC 3 |
Tag for session resources
#define IESYSC_WITHOUT_MISC_RSRC 0 |
Tag for other resources, e.g. PCR register, hierarchies
#define NO_DECRYPT 0 |
No parameter decryption by TPM
#define NO_ENCRYPT 0 |
No parameter encryption by TPM
#define NO_POLICY_AUTH 0 |
no special handling
#define POLICY_AUTH 1 |
Marker to include the auth value in the HMAC key
#define POLICY_PASSWORD 2 |
Marker to include auth value of the authorized object
Type to indicate parameter decryption (by TPM)
Type to indicate parameter encryption (by TPM)
Selector type for esys resources
Type of resource
Type of policy authorization
Linked list type for object meta data.
This structure represents a linked list to store meta data information of type IESYS_RESOURCE.
enum _ESYS_STATE |
The states for the ESAPI's internal state machine