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