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