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