tss2_common.h 22 KB

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