|
tpm2-tss 4.1.3
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 |
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 |
| size_t | reference_count |
| struct RSRC_NODE_T * | next |
| TPM2B_AUTH auth |
The authValue for this resource object.
| struct RSRC_NODE_T* next |
The next object in the linked list.
| size_t reference_count |
Reference Count for Esys_TR_FromTPMPublic
| 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 |
| ESYS_TR | sav_session1 |
| ESYS_TR | sav_session2 |
| ESYS_TR | sav_session3 |
| ESYS_CRYPTO_CALLBACKS | crypto_backend |
| int authsCount |
The number of session provided during the command.
| ESYS_CRYPTO_CALLBACKS crypto_backend |
The backend function pointers to use for crypto operations
| 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.
| 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.
| ESYS_TR sav_session1 |
Used to store session for cases where call with ESYS_TR_NONE is needed to determine object name
| 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
| typedef UINT32 IESYSC_PARAM_DECRYPT |
Type to indicate parameter decryption (by TPM)
| typedef UINT32 IESYSC_PARAM_ENCRYPT |
Type to indicate parameter encryption (by TPM)
| typedef UINT32 IESYSC_RESOURCE_TYPE |
Selector type for esys resources
| typedef UINT32 IESYSC_RESOURCE_TYPE_CONSTANT |
Type of resource
| typedef UINT32 IESYSC_TYPE_POLICY_AUTH |
Type of policy authorization
| typedef struct RSRC_NODE_T 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.