xref: /aosp_15_r20/external/tpm2-tss/include/tss2/tss2_common.h (revision 758e9fba6fc9adbf15340f70c73baee7b168b1c9)
1*758e9fbaSOystein Eftevaag /* SPDX-License-Identifier: BSD-2-Clause */
2*758e9fbaSOystein Eftevaag /***********************************************************************;
3*758e9fbaSOystein Eftevaag  * Copyright (c) 2015-2018, Intel Corporation
4*758e9fbaSOystein Eftevaag  *
5*758e9fbaSOystein Eftevaag  * Copyright 2015, Andreas Fuchs @ Fraunhofer SIT
6*758e9fbaSOystein Eftevaag  *
7*758e9fbaSOystein Eftevaag  * All rights reserved.
8*758e9fbaSOystein Eftevaag  ***********************************************************************/
9*758e9fbaSOystein Eftevaag 
10*758e9fbaSOystein Eftevaag #ifndef TSS2_COMMON_H
11*758e9fbaSOystein Eftevaag #define TSS2_COMMON_H
12*758e9fbaSOystein Eftevaag #define TSS2_API_VERSION_1_2_1_108
13*758e9fbaSOystein Eftevaag 
14*758e9fbaSOystein Eftevaag #include <stdint.h>
15*758e9fbaSOystein Eftevaag /*
16*758e9fbaSOystein Eftevaag  * Type definitions
17*758e9fbaSOystein Eftevaag  */
18*758e9fbaSOystein Eftevaag typedef uint8_t     UINT8;
19*758e9fbaSOystein Eftevaag typedef uint8_t     BYTE;
20*758e9fbaSOystein Eftevaag typedef int8_t      INT8;
21*758e9fbaSOystein Eftevaag typedef int         BOOL;
22*758e9fbaSOystein Eftevaag typedef uint16_t    UINT16;
23*758e9fbaSOystein Eftevaag typedef int16_t     INT16;
24*758e9fbaSOystein Eftevaag typedef uint32_t    UINT32;
25*758e9fbaSOystein Eftevaag typedef int32_t     INT32;
26*758e9fbaSOystein Eftevaag typedef uint64_t    UINT64;
27*758e9fbaSOystein Eftevaag typedef int64_t     INT64;
28*758e9fbaSOystein Eftevaag 
29*758e9fbaSOystein Eftevaag /*
30*758e9fbaSOystein Eftevaag  * ABI runtime negotiation definitions
31*758e9fbaSOystein Eftevaag  */
32*758e9fbaSOystein Eftevaag typedef struct {
33*758e9fbaSOystein Eftevaag     uint32_t tssCreator;
34*758e9fbaSOystein Eftevaag     uint32_t tssFamily;
35*758e9fbaSOystein Eftevaag     uint32_t tssLevel;
36*758e9fbaSOystein Eftevaag     uint32_t tssVersion;
37*758e9fbaSOystein Eftevaag } TSS2_ABI_VERSION;
38*758e9fbaSOystein Eftevaag 
39*758e9fbaSOystein Eftevaag #define TSS2_ABI_VERSION_CURRENT {1, 2, 1, 108}
40*758e9fbaSOystein Eftevaag 
41*758e9fbaSOystein Eftevaag /*
42*758e9fbaSOystein Eftevaag  * Return Codes
43*758e9fbaSOystein Eftevaag  */
44*758e9fbaSOystein Eftevaag /* The return type for all TSS2 functions */
45*758e9fbaSOystein Eftevaag typedef uint32_t TSS2_RC;
46*758e9fbaSOystein Eftevaag 
47*758e9fbaSOystein Eftevaag /* For return values other than SUCCESS, the second most significant
48*758e9fbaSOystein Eftevaag  * byte of the return value is a layer code indicating the software
49*758e9fbaSOystein Eftevaag  * layer that generated the error.
50*758e9fbaSOystein Eftevaag  */
51*758e9fbaSOystein Eftevaag #define TSS2_RC_LAYER_SHIFT      (16)
52*758e9fbaSOystein Eftevaag #define TSS2_RC_LAYER(level)     ((TSS2_RC)level << TSS2_RC_LAYER_SHIFT)
53*758e9fbaSOystein Eftevaag #define TSS2_RC_LAYER_MASK       TSS2_RC_LAYER(0xff)
54*758e9fbaSOystein Eftevaag 
55*758e9fbaSOystein Eftevaag /* These layer codes are reserved for software layers defined in the TCG
56*758e9fbaSOystein Eftevaag  * specifications.
57*758e9fbaSOystein Eftevaag  */
58*758e9fbaSOystein Eftevaag #define TSS2_TPM_RC_LAYER             TSS2_RC_LAYER(0)
59*758e9fbaSOystein Eftevaag #define TSS2_FEATURE_RC_LAYER         TSS2_RC_LAYER(6)
60*758e9fbaSOystein Eftevaag #define TSS2_ESAPI_RC_LAYER           TSS2_RC_LAYER(7)
61*758e9fbaSOystein Eftevaag #define TSS2_SYS_RC_LAYER             TSS2_RC_LAYER(8)
62*758e9fbaSOystein Eftevaag #define TSS2_MU_RC_LAYER              TSS2_RC_LAYER(9)
63*758e9fbaSOystein Eftevaag #define TSS2_TCTI_RC_LAYER            TSS2_RC_LAYER(10)
64*758e9fbaSOystein Eftevaag #define TSS2_RESMGR_RC_LAYER          TSS2_RC_LAYER(11)
65*758e9fbaSOystein Eftevaag #define TSS2_RESMGR_TPM_RC_LAYER      TSS2_RC_LAYER(12)
66*758e9fbaSOystein Eftevaag 
67*758e9fbaSOystein Eftevaag /* Base return codes.
68*758e9fbaSOystein Eftevaag  * These base codes indicate the error that occurred. They are
69*758e9fbaSOystein Eftevaag  * logical-ORed with a layer code to produce the TSS2 return value.
70*758e9fbaSOystein Eftevaag  */
71*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_GENERAL_FAILURE            1U /* Catch all for all errors not otherwise specified */
72*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_NOT_IMPLEMENTED            2U /* If called functionality isn't implemented */
73*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_BAD_CONTEXT                3U /* A context structure is bad */
74*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_ABI_MISMATCH               4U /* Passed in ABI version doesn't match called module's ABI version */
75*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_BAD_REFERENCE              5U /* A pointer is NULL that isn't allowed to be NULL. */
76*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_INSUFFICIENT_BUFFER        6U /* A buffer isn't large enough */
77*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_BAD_SEQUENCE               7U /* Function called in the wrong order */
78*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_NO_CONNECTION              8U /* Fails to connect to next lower layer */
79*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_TRY_AGAIN                  9U /* Operation timed out; function must be called again to be completed */
80*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_IO_ERROR                  10U /* IO failure */
81*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_BAD_VALUE                 11U /* A parameter has a bad value */
82*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_NOT_PERMITTED             12U /* Operation not permitted. */
83*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_INVALID_SESSIONS          13U /* Session structures were sent, but command doesn't use them or doesn't use the specifed number of them */
84*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_NO_DECRYPT_PARAM          14U /* If function called that uses decrypt parameter, but command doesn't support crypt parameter. */
85*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_NO_ENCRYPT_PARAM          15U /* If function called that uses encrypt parameter, but command doesn't support encrypt parameter. */
86*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_BAD_SIZE                  16U /* If size of a parameter is incorrect */
87*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_MALFORMED_RESPONSE        17U /* Response is malformed */
88*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_INSUFFICIENT_CONTEXT      18U /* Context not large enough */
89*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_INSUFFICIENT_RESPONSE     19U /* Response is not long enough */
90*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_INCOMPATIBLE_TCTI         20U /* Unknown or unusable TCTI version */
91*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_NOT_SUPPORTED             21U /* Functionality not supported. */
92*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_BAD_TCTI_STRUCTURE        22U /* TCTI context is bad. */
93*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_MEMORY                    23U /* memory allocation failed */
94*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_BAD_TR                    24U /* invalid ESYS_TR handle */
95*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_MULTIPLE_DECRYPT_SESSIONS 25U /* More than one session with TPMA_SESSION_DECRYPT bit set */
96*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_MULTIPLE_ENCRYPT_SESSIONS 26U /* More than one session with TPMA_SESSION_ENCRYPT bit set */
97*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_RSP_AUTH_FAILED           27U /* Response HMAC from TPM did not verify */
98*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_NO_CONFIG                 28U
99*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_BAD_PATH                  29U
100*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_NOT_DELETABLE             30U
101*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_PATH_ALREADY_EXISTS       31U
102*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_KEY_NOT_FOUND             32U
103*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_SIGNATURE_VERIFICATION_FAILED 33U
104*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_HASH_MISMATCH             34U
105*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_KEY_NOT_DUPLICABLE        35U
106*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_PATH_NOT_FOUND            36U
107*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_NO_CERT                   37U
108*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_NO_PCR                    38U
109*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_PCR_NOT_RESETTABLE        39U
110*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_BAD_TEMPLATE              40U
111*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_AUTHORIZATION_FAILED      41U
112*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_AUTHORIZATION_UNKNOWN     42U
113*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_NV_NOT_READABLE           43U
114*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_NV_TOO_SMALL              44U
115*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_NV_NOT_WRITEABLE          45U
116*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_POLICY_UNKNOWN            46U
117*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_NV_WRONG_TYPE             47U
118*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_NAME_ALREADY_EXISTS       48U
119*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_NO_TPM                    49U
120*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_BAD_KEY                   50U
121*758e9fbaSOystein Eftevaag #define TSS2_BASE_RC_NO_HANDLE                 51U
122*758e9fbaSOystein Eftevaag 
123*758e9fbaSOystein Eftevaag /* Base return codes in the range 0xf800 - 0xffff are reserved for
124*758e9fbaSOystein Eftevaag  * implementation-specific purposes.
125*758e9fbaSOystein Eftevaag  */
126*758e9fbaSOystein Eftevaag #define TSS2_LAYER_IMPLEMENTATION_SPECIFIC_OFFSET 0xf800
127*758e9fbaSOystein Eftevaag #define TSS2_LEVEL_IMPLEMENTATION_SPECIFIC_SHIFT 11
128*758e9fbaSOystein Eftevaag 
129*758e9fbaSOystein Eftevaag /* Success is the same for all software layers */
130*758e9fbaSOystein Eftevaag #define TSS2_RC_SUCCESS ((TSS2_RC) 0)
131*758e9fbaSOystein Eftevaag 
132*758e9fbaSOystein Eftevaag /* TCTI error codes */
133*758e9fbaSOystein Eftevaag #define TSS2_TCTI_RC_GENERAL_FAILURE            ((TSS2_RC)(TSS2_TCTI_RC_LAYER | \
134*758e9fbaSOystein Eftevaag                                                     TSS2_BASE_RC_GENERAL_FAILURE))
135*758e9fbaSOystein Eftevaag #define TSS2_TCTI_RC_NOT_IMPLEMENTED            ((TSS2_RC)(TSS2_TCTI_RC_LAYER | \
136*758e9fbaSOystein Eftevaag                                                     TSS2_BASE_RC_NOT_IMPLEMENTED))
137*758e9fbaSOystein Eftevaag #define TSS2_TCTI_RC_BAD_CONTEXT                ((TSS2_RC)(TSS2_TCTI_RC_LAYER | \
138*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_BAD_CONTEXT))
139*758e9fbaSOystein Eftevaag #define TSS2_TCTI_RC_ABI_MISMATCH               ((TSS2_RC)(TSS2_TCTI_RC_LAYER | \
140*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_ABI_MISMATCH))
141*758e9fbaSOystein Eftevaag #define TSS2_TCTI_RC_BAD_REFERENCE              ((TSS2_RC)(TSS2_TCTI_RC_LAYER | \
142*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_BAD_REFERENCE))
143*758e9fbaSOystein Eftevaag #define TSS2_TCTI_RC_INSUFFICIENT_BUFFER        ((TSS2_RC)(TSS2_TCTI_RC_LAYER | \
144*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_INSUFFICIENT_BUFFER))
145*758e9fbaSOystein Eftevaag #define TSS2_TCTI_RC_BAD_SEQUENCE               ((TSS2_RC)(TSS2_TCTI_RC_LAYER |  \
146*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_BAD_SEQUENCE))
147*758e9fbaSOystein Eftevaag #define TSS2_TCTI_RC_NO_CONNECTION              ((TSS2_RC)(TSS2_TCTI_RC_LAYER | \
148*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_NO_CONNECTION))
149*758e9fbaSOystein Eftevaag #define TSS2_TCTI_RC_TRY_AGAIN                  ((TSS2_RC)(TSS2_TCTI_RC_LAYER | \
150*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_TRY_AGAIN))
151*758e9fbaSOystein Eftevaag #define TSS2_TCTI_RC_IO_ERROR                   ((TSS2_RC)(TSS2_TCTI_RC_LAYER | \
152*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_IO_ERROR))
153*758e9fbaSOystein Eftevaag #define TSS2_TCTI_RC_BAD_VALUE                  ((TSS2_RC)(TSS2_TCTI_RC_LAYER | \
154*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_BAD_VALUE))
155*758e9fbaSOystein Eftevaag #define TSS2_TCTI_RC_NOT_PERMITTED              ((TSS2_RC)(TSS2_TCTI_RC_LAYER | \
156*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_NOT_PERMITTED))
157*758e9fbaSOystein Eftevaag #define TSS2_TCTI_RC_MALFORMED_RESPONSE         ((TSS2_RC)(TSS2_TCTI_RC_LAYER | \
158*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_MALFORMED_RESPONSE))
159*758e9fbaSOystein Eftevaag #define TSS2_TCTI_RC_NOT_SUPPORTED              ((TSS2_RC)(TSS2_TCTI_RC_LAYER | \
160*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_NOT_SUPPORTED))
161*758e9fbaSOystein Eftevaag #define TSS2_TCTI_RC_MEMORY                     ((TSS2_RC)(TSS2_TCTI_RC_LAYER | \
162*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_MEMORY))
163*758e9fbaSOystein Eftevaag /* SAPI error codes */
164*758e9fbaSOystein Eftevaag #define TSS2_SYS_RC_GENERAL_FAILURE            ((TSS2_RC)(TSS2_SYS_RC_LAYER | \
165*758e9fbaSOystein Eftevaag                                                     TSS2_BASE_RC_GENERAL_FAILURE))
166*758e9fbaSOystein Eftevaag #define TSS2_SYS_RC_ABI_MISMATCH                ((TSS2_RC)(TSS2_SYS_RC_LAYER | \
167*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_ABI_MISMATCH))
168*758e9fbaSOystein Eftevaag #define TSS2_SYS_RC_BAD_REFERENCE               ((TSS2_RC)(TSS2_SYS_RC_LAYER | \
169*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_BAD_REFERENCE))
170*758e9fbaSOystein Eftevaag #define TSS2_SYS_RC_INSUFFICIENT_BUFFER         ((TSS2_RC)(TSS2_SYS_RC_LAYER | \
171*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_INSUFFICIENT_BUFFER))
172*758e9fbaSOystein Eftevaag #define TSS2_SYS_RC_BAD_SEQUENCE                ((TSS2_RC)(TSS2_SYS_RC_LAYER | \
173*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_BAD_SEQUENCE))
174*758e9fbaSOystein Eftevaag #define TSS2_SYS_RC_BAD_VALUE                   ((TSS2_RC)(TSS2_SYS_RC_LAYER | \
175*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_BAD_VALUE))
176*758e9fbaSOystein Eftevaag #define TSS2_SYS_RC_INVALID_SESSIONS            ((TSS2_RC)(TSS2_SYS_RC_LAYER | \
177*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_INVALID_SESSIONS))
178*758e9fbaSOystein Eftevaag #define TSS2_SYS_RC_NO_DECRYPT_PARAM            ((TSS2_RC)(TSS2_SYS_RC_LAYER | \
179*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_NO_DECRYPT_PARAM))
180*758e9fbaSOystein Eftevaag #define TSS2_SYS_RC_NO_ENCRYPT_PARAM            ((TSS2_RC)(TSS2_SYS_RC_LAYER | \
181*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_NO_ENCRYPT_PARAM))
182*758e9fbaSOystein Eftevaag #define TSS2_SYS_RC_BAD_SIZE                    ((TSS2_RC)(TSS2_SYS_RC_LAYER | \
183*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_BAD_SIZE))
184*758e9fbaSOystein Eftevaag #define TSS2_SYS_RC_MALFORMED_RESPONSE          ((TSS2_RC)(TSS2_SYS_RC_LAYER | \
185*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_MALFORMED_RESPONSE))
186*758e9fbaSOystein Eftevaag #define TSS2_SYS_RC_INSUFFICIENT_CONTEXT        ((TSS2_RC)(TSS2_SYS_RC_LAYER | \
187*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_INSUFFICIENT_CONTEXT))
188*758e9fbaSOystein Eftevaag #define TSS2_SYS_RC_INSUFFICIENT_RESPONSE       ((TSS2_RC)(TSS2_SYS_RC_LAYER | \
189*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_INSUFFICIENT_RESPONSE))
190*758e9fbaSOystein Eftevaag #define TSS2_SYS_RC_INCOMPATIBLE_TCTI           ((TSS2_RC)(TSS2_SYS_RC_LAYER | \
191*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_INCOMPATIBLE_TCTI))
192*758e9fbaSOystein Eftevaag #define TSS2_SYS_RC_BAD_TCTI_STRUCTURE          ((TSS2_RC)(TSS2_SYS_RC_LAYER | \
193*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_BAD_TCTI_STRUCTURE))
194*758e9fbaSOystein Eftevaag 
195*758e9fbaSOystein Eftevaag /* MUAPI error codes */
196*758e9fbaSOystein Eftevaag #define TSS2_MU_RC_GENERAL_FAILURE              ((TSS2_RC)(TSS2_MU_RC_LAYER | \
197*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_GENERAL_FAILURE))
198*758e9fbaSOystein Eftevaag #define TSS2_MU_RC_BAD_REFERENCE                ((TSS2_RC)(TSS2_MU_RC_LAYER | \
199*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_BAD_REFERENCE))
200*758e9fbaSOystein Eftevaag #define TSS2_MU_RC_BAD_SIZE                     ((TSS2_RC)(TSS2_MU_RC_LAYER | \
201*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_BAD_SIZE))
202*758e9fbaSOystein Eftevaag #define TSS2_MU_RC_BAD_VALUE                    ((TSS2_RC)(TSS2_MU_RC_LAYER | \
203*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_BAD_VALUE))
204*758e9fbaSOystein Eftevaag #define TSS2_MU_RC_INSUFFICIENT_BUFFER          ((TSS2_RC)(TSS2_MU_RC_LAYER | \
205*758e9fbaSOystein Eftevaag                                                      TSS2_BASE_RC_INSUFFICIENT_BUFFER))
206*758e9fbaSOystein Eftevaag 
207*758e9fbaSOystein Eftevaag /* ESAPI Error Codes */
208*758e9fbaSOystein Eftevaag #define TSS2_ESYS_RC_GENERAL_FAILURE             ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \
209*758e9fbaSOystein Eftevaag                                                       TSS2_BASE_RC_GENERAL_FAILURE))
210*758e9fbaSOystein Eftevaag #define TSS2_ESYS_RC_NOT_IMPLEMENTED             ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \
211*758e9fbaSOystein Eftevaag                                                       TSS2_BASE_RC_NOT_IMPLEMENTED))
212*758e9fbaSOystein Eftevaag #define TSS2_ESYS_RC_ABI_MISMATCH                ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \
213*758e9fbaSOystein Eftevaag                                                       TSS2_BASE_RC_ABI_MISMATCH))
214*758e9fbaSOystein Eftevaag #define TSS2_ESYS_RC_BAD_REFERENCE               ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \
215*758e9fbaSOystein Eftevaag                                                       TSS2_BASE_RC_BAD_REFERENCE))
216*758e9fbaSOystein Eftevaag #define TSS2_ESYS_RC_INSUFFICIENT_BUFFER         ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \
217*758e9fbaSOystein Eftevaag                                                       TSS2_BASE_RC_INSUFFICIENT_BUFFER))
218*758e9fbaSOystein Eftevaag #define TSS2_ESYS_RC_BAD_SEQUENCE                ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \
219*758e9fbaSOystein Eftevaag                                                       TSS2_BASE_RC_BAD_SEQUENCE))
220*758e9fbaSOystein Eftevaag #define TSS2_ESYS_RC_INVALID_SESSIONS            ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \
221*758e9fbaSOystein Eftevaag                                                       TSS2_BASE_RC_INVALID_SESSIONS))
222*758e9fbaSOystein Eftevaag #define TSS2_ESYS_RC_TRY_AGAIN                   ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \
223*758e9fbaSOystein Eftevaag                                                       TSS2_BASE_RC_TRY_AGAIN))
224*758e9fbaSOystein Eftevaag #define TSS2_ESYS_RC_IO_ERROR                    ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \
225*758e9fbaSOystein Eftevaag                                                       TSS2_BASE_RC_IO_ERROR))
226*758e9fbaSOystein Eftevaag #define TSS2_ESYS_RC_BAD_VALUE                   ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \
227*758e9fbaSOystein Eftevaag                                                       TSS2_BASE_RC_BAD_VALUE))
228*758e9fbaSOystein Eftevaag #define TSS2_ESYS_RC_NO_DECRYPT_PARAM            ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \
229*758e9fbaSOystein Eftevaag                                                       TSS2_BASE_RC_NO_DECRYPT_PARAM))
230*758e9fbaSOystein Eftevaag #define TSS2_ESYS_RC_NO_ENCRYPT_PARAM            ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \
231*758e9fbaSOystein Eftevaag                                                       TSS2_BASE_RC_NO_ENCRYPT_PARAM))
232*758e9fbaSOystein Eftevaag #define TSS2_ESYS_RC_BAD_SIZE                    ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \
233*758e9fbaSOystein Eftevaag                                                       TSS2_BASE_RC_BAD_SIZE))
234*758e9fbaSOystein Eftevaag #define TSS2_ESYS_RC_MALFORMED_RESPONSE          ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \
235*758e9fbaSOystein Eftevaag                                                       TSS2_BASE_RC_MALFORMED_RESPONSE))
236*758e9fbaSOystein Eftevaag #define TSS2_ESYS_RC_INSUFFICIENT_CONTEXT        ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \
237*758e9fbaSOystein Eftevaag                                                       TSS2_BASE_RC_INSUFFICIENT_CONTEXT))
238*758e9fbaSOystein Eftevaag #define TSS2_ESYS_RC_INSUFFICIENT_RESPONSE       ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \
239*758e9fbaSOystein Eftevaag                                                       TSS2_BASE_RC_INSUFFICIENT_RESPONSE))
240*758e9fbaSOystein Eftevaag #define TSS2_ESYS_RC_INCOMPATIBLE_TCTI           ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \
241*758e9fbaSOystein Eftevaag                                                       TSS2_BASE_RC_INCOMPATIBLE_TCTI))
242*758e9fbaSOystein Eftevaag #define TSS2_ESYS_RC_BAD_TCTI_STRUCTURE          ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \
243*758e9fbaSOystein Eftevaag                                                       TSS2_BASE_RC_BAD_TCTI_STRUCTURE))
244*758e9fbaSOystein Eftevaag #define TSS2_ESYS_RC_MEMORY                      ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \
245*758e9fbaSOystein Eftevaag                                                       TSS2_BASE_RC_MEMORY))
246*758e9fbaSOystein Eftevaag #define TSS2_ESYS_RC_BAD_TR                      ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \
247*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_BAD_TR))
248*758e9fbaSOystein Eftevaag #define TSS2_ESYS_RC_MULTIPLE_DECRYPT_SESSIONS   ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \
249*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_MULTIPLE_DECRYPT_SESSIONS))
250*758e9fbaSOystein Eftevaag #define TSS2_ESYS_RC_MULTIPLE_ENCRYPT_SESSIONS   ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \
251*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_MULTIPLE_ENCRYPT_SESSIONS))
252*758e9fbaSOystein Eftevaag #define TSS2_ESYS_RC_RSP_AUTH_FAILED             ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \
253*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_RSP_AUTH_FAILED))
254*758e9fbaSOystein Eftevaag 
255*758e9fbaSOystein Eftevaag /* FAPI Error Codes */
256*758e9fbaSOystein Eftevaag 
257*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_GENERAL_FAILURE             ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
258*758e9fbaSOystein Eftevaag                                                       TSS2_BASE_RC_GENERAL_FAILURE))
259*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_NOT_IMPLEMENTED             ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
260*758e9fbaSOystein Eftevaag                                                       TSS2_BASE_RC_NOT_IMPLEMENTED))
261*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_BAD_REFERENCE               ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
262*758e9fbaSOystein Eftevaag                                                       TSS2_BASE_RC_BAD_REFERENCE))
263*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_BAD_SEQUENCE                ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
264*758e9fbaSOystein Eftevaag                                                       TSS2_BASE_RC_BAD_SEQUENCE))
265*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_IO_ERROR                    ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
266*758e9fbaSOystein Eftevaag                                                       TSS2_BASE_RC_IO_ERROR))
267*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_BAD_VALUE                   ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
268*758e9fbaSOystein Eftevaag                                                       TSS2_BASE_RC_BAD_VALUE))
269*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_NO_DECRYPT_PARAM            ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
270*758e9fbaSOystein Eftevaag                                                       TSS2_BASE_RC_NO_DECRYPT_PARAM))
271*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_NO_ENCRYPT_PARAM            ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
272*758e9fbaSOystein Eftevaag                                                       TSS2_BASE_RC_NO_ENCRYPT_PARAM))
273*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_MEMORY                      ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
274*758e9fbaSOystein Eftevaag                                                       TSS2_BASE_RC_MEMORY))
275*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_BAD_CONTEXT                 ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
276*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_BAD_CONTEXT))
277*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_NO_CONFIG                   ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
278*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_NO_CONFIG))
279*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_BAD_PATH                    ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
280*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_BAD_PATH))
281*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_NOT_DELETABLE               ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
282*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_NOT_DELETABLE))
283*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_PATH_ALREADY_EXISTS         ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
284*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_PATH_ALREADY_EXISTS))
285*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_KEY_NOT_FOUND               ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
286*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_KEY_NOT_FOUND))
287*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_SIGNATURE_VERIFICATION_FAILED ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
288*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_SIGNATURE_VERIFICATION_FAILED))
289*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_HASH_MISMATCH               ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
290*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_HASH_MISMATCH))
291*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_KEY_NOT_DUPLICABLE          ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
292*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_KEY_NOT_DUPLICABLE))
293*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_PATH_NOT_FOUND              ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
294*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_PATH_NOT_FOUND))
295*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_NO_CERT                     ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
296*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_NO_CERT))
297*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_NO_PCR                      ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
298*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_NO_PCR))
299*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_PCR_NOT_RESETTABLE          ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
300*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_PCR_NOT_RESETTABLE))
301*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_BAD_TEMPLATE                ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
302*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_BAD_TEMPLATE))
303*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_AUTHORIZATION_FAILED        ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
304*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_AUTHORIZATION_FAILED))
305*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_AUTHORIZATION_UNKNOWN       ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
306*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_AUTHORIZATION_UNKNOWN))
307*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_NV_NOT_READABLE             ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
308*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_NV_NOT_READABLE))
309*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_NV_TOO_SMALL                ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
310*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_NV_TOO_SMALL))
311*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_NV_NOT_WRITEABLE            ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
312*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_NV_NOT_WRITEABLE))
313*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_POLICY_UNKNOWN              ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
314*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_POLICY_UNKNOWN))
315*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_NV_WRONG_TYPE               ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
316*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_NV_WRONG_TYPE))
317*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_NAME_ALREADY_EXISTS         ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
318*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_NAME_ALREADY_EXISTS))
319*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_NO_TPM                      ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
320*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_NO_TPM))
321*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_TRY_AGAIN                   ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
322*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_TRY_AGAIN))
323*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_BAD_KEY                     ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
324*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_BAD_KEY))
325*758e9fbaSOystein Eftevaag #define TSS2_FAPI_RC_NO_HANDLE                   ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \
326*758e9fbaSOystein Eftevaag                                                         TSS2_BASE_RC_NO_HANDLE))
327*758e9fbaSOystein Eftevaag #endif /* TSS2_COMMON_H */
328