tpm2-tss 4.1.3
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
12typedef UINT32 TSS2_ESYS_RC;
13
14
15#ifndef TSS2_RC_SUCCESS
16#define TSS2_RC_SUCCESS 0
17#endif
18
19
22typedef UINT32 IESYSC_RESOURCE_TYPE_CONSTANT;
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
31typedef UINT32 IESYSC_PARAM_ENCRYPT;
32#define ENCRYPT 1
33#define NO_ENCRYPT 0
37typedef UINT32 IESYSC_PARAM_DECRYPT;
38#define DECRYPT 1
39#define NO_DECRYPT 0
43typedef UINT32 IESYSC_TYPE_POLICY_AUTH;
44#define POLICY_PASSWORD 2
45#define POLICY_AUTH 1
46#define NO_POLICY_AUTH 0
51typedef 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;
63 IESYSC_PARAM_ENCRYPT encrypt;
64 IESYSC_PARAM_DECRYPT decrypt;
65 IESYSC_TYPE_POLICY_AUTH type_policy_session;
67 BYTE sessionValue [2*sizeof(TPMU_HA)];
70
73typedef UINT32 IESYSC_RESOURCE_TYPE;
74
77typedef union {
78 TPM2B_PUBLIC rsrc_key_pub;
79 TPM2B_NV_PUBLIC rsrc_nv_pub;
81 TPMS_EMPTY rsrc_empty;
83
86typedef struct {
87 TPM2_HANDLE handle;
88 TPM2B_NAME name;
89 IESYSC_RESOURCE_TYPE rsrcType;
92
95typedef struct {
96 UINT16 size;
100
103typedef 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
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