tpm2-tss 4.2.0
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#include "tss2_common.h" // for UINT32, UINT16, BYTE, TSS2_RC_SUCCESS
11#include "tss2_tpm2_types.h" // for TPM2B_NAME, TPM2B_NONCE, TPMA_SESSION
12
13#define ESYS_MAX_SIZE_METADATA 3072
14
15typedef UINT32 TSS2_ESYS_RC;
16
17#ifndef TSS2_RC_SUCCESS
18#define TSS2_RC_SUCCESS 0
19#endif
20
24#define IESYSC_KEY_RSRC 1
25#define IESYSC_NV_RSRC 2
26#define IESYSC_SESSION_RSRC 3
27#define IESYSC_DEGRADED_SESSION_RSRC 4
28#define IESYSC_WITHOUT_MISC_RSRC 0
29
32typedef UINT32 IESYSC_PARAM_ENCRYPT;
33#define ENCRYPT 1
34#define NO_ENCRYPT 0
35
38typedef UINT32 IESYSC_PARAM_DECRYPT;
39#define DECRYPT 1
40#define NO_DECRYPT 0
41
45#define POLICY_PASSWORD 2
46#define POLICY_AUTH 1
47#define NO_POLICY_AUTH 0
48
51typedef struct {
52 TPM2B_NAME bound_entity;
53 TPM2B_ENCRYPTED_SECRET
55 TPM2B_DATA salt;
56 TPMT_SYM_DEF symmetric;
57 TPMI_ALG_HASH authHash;
58 TPM2B_DIGEST sessionKey;
59 TPM2_SE sessionType;
60 TPMA_SESSION sessionAttributes;
61 TPMA_SESSION origSessionAttributes;
62 TPM2B_NONCE nonceCaller;
63 TPM2B_NONCE nonceTPM;
68 BYTE sessionValue[2 * sizeof(TPMU_HA)];
71
74typedef UINT32 IESYSC_RESOURCE_TYPE;
75
78typedef union {
79 TPM2B_PUBLIC rsrc_key_pub;
80 TPM2B_NV_PUBLIC rsrc_nv_pub;
82 TPMS_EMPTY rsrc_empty;
84
93
96typedef struct {
97 UINT16 size;
99
101
104typedef struct {
105 UINT32 reserved;
106 TPM2B_CONTEXT_DATA tpmContext;
109
110#endif /* ESYS_TYPES_H */
TPM2_HANDLE handle
Definition esys_types.h:88
TPM2_SE sessionType
Definition esys_types.h:59
IESYSC_TYPE_POLICY_AUTH type_policy_session
Definition esys_types.h:66
IESYSC_PARAM_DECRYPT decrypt
Definition esys_types.h:65
TPMA_SESSION origSessionAttributes
Definition esys_types.h:61
UINT16 sizeSessionValue
Definition esys_types.h:67
TPM2B_NAME bound_entity
Definition esys_types.h:52
IESYSC_PARAM_ENCRYPT encrypt
Definition esys_types.h:64
UINT32 reserved
Definition esys_types.h:105
TPMA_SESSION sessionAttributes
Definition esys_types.h:60
TPMT_SYM_DEF symmetric
Definition esys_types.h:56
IESYSC_RESOURCE_TYPE rsrcType
Definition esys_types.h:90
TPMI_ALG_HASH authHash
Definition esys_types.h:57
TPM2B_NV_PUBLIC rsrc_nv_pub
Definition esys_types.h:80
BYTE sessionValue[2 *sizeof(TPMU_HA)]
Definition esys_types.h:68
UINT16 size
Definition esys_types.h:97
TPM2B_PUBLIC rsrc_key_pub
Definition esys_types.h:79
TPM2B_DIGEST sessionKey
Definition esys_types.h:58
TPMS_EMPTY rsrc_empty
Definition esys_types.h:82
TPM2B_NAME name
Definition esys_types.h:89
TPM2B_NONCE nonceCaller
Definition esys_types.h:62
TPM2B_NONCE nonceTPM
Definition esys_types.h:63
TPM2B_CONTEXT_DATA tpmContext
Definition esys_types.h:106
UINT16 sizeHmacValue
Definition esys_types.h:69
IESYS_SESSION rsrc_session
Definition esys_types.h:81
IESYS_METADATA esysMetadata
Definition esys_types.h:107
IESYS_RESOURCE data
Definition esys_types.h:98
IESYS_RSRC_UNION misc
Definition esys_types.h:91
TPM2B_ENCRYPTED_SECRET encryptedSalt
Definition esys_types.h:54
TPM2B_DATA salt
Definition esys_types.h:55
UINT32 IESYSC_TYPE_POLICY_AUTH
Definition esys_types.h:44
UINT32 IESYSC_PARAM_ENCRYPT
Definition esys_types.h:32
UINT32 IESYSC_PARAM_DECRYPT
Definition esys_types.h:38
UINT32 IESYSC_RESOURCE_TYPE
Definition esys_types.h:74
UINT32 IESYSC_RESOURCE_TYPE_CONSTANT
Definition esys_types.h:23
Definition esys_types.h:104
Definition esys_types.h:96
Definition esys_types.h:87
Definition esys_types.h:51
Definition esys_types.h:78