tpm2-tss  3.2.1
TPM Software stack 2.0 TCG spec compliant implementation
esys_types.h
1 /* SPDX-License-Identifier: BSD-2-Clause */
2 /*******************************************************************************
3  * Copyright 2017-2018, Fraunhofer SIT sponsored by Infineon Technologies AG
4  * All rights reserved.
5  *******************************************************************************/
6 
7 #ifndef ESYS_TYPES_H
8 #define ESYS_TYPES_H
9 
10 #define ESYS_MAX_SIZE_METADATA 3072
11 
12 typedef UINT32 TSS2_ESYS_RC;
13 
14 
15 #ifndef TSS2_RC_SUCCESS
16 #define TSS2_RC_SUCCESS 0
17 #endif
18 
19 
23 #define IESYSC_KEY_RSRC 1
24 #define IESYSC_NV_RSRC 2
25 #define IESYSC_SESSION_RSRC 3
26 #define IESYSC_DEGRADED_SESSION_RSRC 4
27 #define IESYSC_WITHOUT_MISC_RSRC 0
31 typedef UINT32 IESYSC_PARAM_ENCRYPT;
32 #define ENCRYPT 1
33 #define NO_ENCRYPT 0
37 typedef UINT32 IESYSC_PARAM_DECRYPT;
38 #define DECRYPT 1
39 #define NO_DECRYPT 0
43 typedef UINT32 IESYSC_TYPE_POLICY_AUTH;
44 #define POLICY_PASSWORD 2
45 #define POLICY_AUTH 1
46 #define NO_POLICY_AUTH 0
51 typedef struct {
52  TPM2B_NAME bound_entity;
53  TPM2B_ENCRYPTED_SECRET encryptedSalt;
54  TPM2B_DATA salt;
55  TPMT_SYM_DEF symmetric;
56  TPMI_ALG_HASH authHash;
57  TPM2B_DIGEST sessionKey;
58  TPM2_SE sessionType;
59  TPMA_SESSION sessionAttributes;
60  TPMA_SESSION origSessionAttributes;
61  TPM2B_NONCE nonceCaller;
62  TPM2B_NONCE nonceTPM;
67  BYTE sessionValue [2*sizeof(TPMU_HA)];
68  UINT16 sizeHmacValue;
70 
73 typedef UINT32 IESYSC_RESOURCE_TYPE;
74 
77 typedef union {
78  TPM2B_PUBLIC rsrc_key_pub;
79  TPM2B_NV_PUBLIC rsrc_nv_pub;
81  TPMS_EMPTY rsrc_empty;
83 
86 typedef struct {
87  TPM2_HANDLE handle;
88  TPM2B_NAME name;
92 
95 typedef struct {
96  UINT16 size;
100 
103 typedef struct {
104  UINT32 reserved;
105  TPM2B_CONTEXT_DATA tpmContext;
108 
109 #endif /* ESYS_TYPES_H */
TPM2_HANDLE handle
Definition: esys_types.h:87
TPM2_SE sessionType
Definition: esys_types.h:58
IESYSC_TYPE_POLICY_AUTH type_policy_session
Definition: esys_types.h:65
IESYSC_PARAM_DECRYPT decrypt
Definition: esys_types.h:64
TPMA_SESSION origSessionAttributes
Definition: esys_types.h:60
UINT16 sizeSessionValue
Definition: esys_types.h:66
TPM2B_NAME bound_entity
Definition: esys_types.h:52
IESYSC_PARAM_ENCRYPT encrypt
Definition: esys_types.h:63
UINT32 reserved
Definition: esys_types.h:104
TPMA_SESSION sessionAttributes
Definition: esys_types.h:59
TPMT_SYM_DEF symmetric
Definition: esys_types.h:55
IESYSC_RESOURCE_TYPE rsrcType
Definition: esys_types.h:89
TPMI_ALG_HASH authHash
Definition: esys_types.h:56
TPM2B_NV_PUBLIC rsrc_nv_pub
Definition: esys_types.h:79
UINT16 size
Definition: esys_types.h:96
TPM2B_PUBLIC rsrc_key_pub
Definition: esys_types.h:78
TPM2B_DIGEST sessionKey
Definition: esys_types.h:57
TPMS_EMPTY rsrc_empty
Definition: esys_types.h:81
TPM2B_NAME name
Definition: esys_types.h:88
TPM2B_NONCE nonceCaller
Definition: esys_types.h:61
TPM2B_NONCE nonceTPM
Definition: esys_types.h:62
TPM2B_CONTEXT_DATA tpmContext
Definition: esys_types.h:105
UINT16 sizeHmacValue
Definition: esys_types.h:68
IESYS_SESSION rsrc_session
Definition: esys_types.h:80
IESYS_METADATA esysMetadata
Definition: esys_types.h:106
IESYS_RESOURCE data
Definition: esys_types.h:97
IESYS_RSRC_UNION misc
Definition: esys_types.h:90
TPM2B_ENCRYPTED_SECRET encryptedSalt
Definition: esys_types.h:53
TPM2B_DATA salt
Definition: esys_types.h:54
UINT32 IESYSC_PARAM_ENCRYPT
Definition: esys_types.h:31
UINT32 IESYSC_RESOURCE_TYPE_CONSTANT
Definition: esys_types.h:22
UINT32 IESYSC_PARAM_DECRYPT
Definition: esys_types.h:37
UINT32 IESYSC_TYPE_POLICY_AUTH
Definition: esys_types.h:43
UINT32 IESYSC_RESOURCE_TYPE
Definition: esys_types.h:73
Definition: esys_types.h:103
Definition: esys_types.h:95
Definition: esys_types.h:86
Definition: esys_types.h:51
Definition: esys_types.h:77