esys-sequence-finish.c 74 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260
  1. /* SPDX-License-Identifier: BSD-2-Clause */
  2. /*******************************************************************************
  3. * Copyright 2017-2018, Fraunhofer SIT sponsored by Infineon Technologies AG
  4. * All rights reserved.
  5. *******************************************************************************/
  6. #ifdef HAVE_CONFIG_H
  7. #include <config.h>
  8. #endif
  9. #include <stdarg.h>
  10. #include <stdlib.h>
  11. #include <inttypes.h>
  12. #include <string.h>
  13. #include <setjmp.h>
  14. #include <cmocka.h>
  15. #include "tss2_esys.h"
  16. #include "tss2-esys/esys_iutil.h"
  17. #define LOGMODULE tests
  18. #include "util/log.h"
  19. #include "util/aux_util.h"
  20. /*
  21. * Tests whether all ESAPI finish calls handle wrong internal states with the correct
  22. * error response TSS2_ESYS_RC_BAD_SEQUENCE.
  23. */
  24. static TSS2_RC
  25. tcti_failure_transmit(TSS2_TCTI_CONTEXT * tctiContext,
  26. size_t size, const uint8_t * buffer)
  27. {
  28. UNUSED(tctiContext);
  29. UNUSED(size);
  30. UNUSED(buffer);
  31. return TSS2_RC_SUCCESS;
  32. }
  33. const uint8_t failure_response[] = {
  34. 0x80, 0x01, /* TPM_ST_NO_SESSION */
  35. 0x00, 0x00, 0x00, 0x0A, /* Response Size 10 */
  36. 0x00, 0x00, 0x01, 0x01 /* TPM_RC_FAILURE */
  37. };
  38. static TSS2_RC
  39. tcti_failure_receive(TSS2_TCTI_CONTEXT * tctiContext,
  40. size_t * response_size,
  41. uint8_t * response_buffer, int32_t timeout)
  42. {
  43. *response_size = sizeof(failure_response);
  44. if (response_buffer != NULL)
  45. memcpy(response_buffer, &failure_response[0], sizeof(failure_response));
  46. return TSS2_RC_SUCCESS;
  47. }
  48. /**
  49. * Prepare ESAPI context with a reference to SAPI and TCTI context.
  50. */
  51. static int
  52. esys_unit_setup(void **state)
  53. {
  54. TSS2_RC r;
  55. ESYS_CONTEXT *esys_context;
  56. /* This is a fake tcti context */
  57. TSS2_TCTI_CONTEXT_COMMON_V1 *tcti =
  58. calloc(1, sizeof(TSS2_TCTI_CONTEXT_COMMON_V1));
  59. tcti->version = 1;
  60. TSS2_TCTI_TRANSMIT (tcti) = tcti_failure_transmit;
  61. TSS2_TCTI_RECEIVE (tcti) = tcti_failure_receive;
  62. r = Esys_Initialize(&esys_context, (TSS2_TCTI_CONTEXT *) tcti, NULL);
  63. assert_int_equal(r, TSS2_RC_SUCCESS);
  64. *state = (void *)esys_context;
  65. return 0;
  66. }
  67. /**
  68. * Free ESAPI, SAPI and TCTI context.
  69. */
  70. static int
  71. esys_unit_teardown(void **state)
  72. {
  73. TSS2_RC r;
  74. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  75. TSS2_TCTI_CONTEXT *tcti;
  76. r = Esys_GetTcti(esys_context, &tcti);
  77. assert_int_equal(r, TSS2_RC_SUCCESS);
  78. Esys_Finalize(&esys_context);
  79. free(tcti);
  80. return 0;
  81. }
  82. void
  83. check_Startup(void **state)
  84. {
  85. TSS2_RC r;
  86. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  87. enum _ESYS_STATE esys_states[3] = {
  88. _ESYS_STATE_INIT,
  89. _ESYS_STATE_INTERNALERROR
  90. };
  91. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  92. esys_context->state = esys_states[i];
  93. r = Esys_Startup_Finish(esys_context);
  94. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  95. }
  96. }
  97. void
  98. check_Shutdown(void **state)
  99. {
  100. TSS2_RC r;
  101. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  102. enum _ESYS_STATE esys_states[3] = {
  103. _ESYS_STATE_INIT,
  104. _ESYS_STATE_INTERNALERROR
  105. };
  106. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  107. esys_context->state = esys_states[i];
  108. r = Esys_Shutdown_Finish(esys_context);
  109. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  110. }
  111. }
  112. void
  113. check_SelfTest(void **state)
  114. {
  115. TSS2_RC r;
  116. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  117. enum _ESYS_STATE esys_states[3] = {
  118. _ESYS_STATE_INIT,
  119. _ESYS_STATE_INTERNALERROR
  120. };
  121. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  122. esys_context->state = esys_states[i];
  123. r = Esys_SelfTest_Finish(esys_context);
  124. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  125. }
  126. }
  127. void
  128. check_IncrementalSelfTest(void **state)
  129. {
  130. TSS2_RC r;
  131. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  132. enum _ESYS_STATE esys_states[3] = {
  133. _ESYS_STATE_INIT,
  134. _ESYS_STATE_INTERNALERROR
  135. };
  136. TPML_ALG *toDoList;
  137. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  138. esys_context->state = esys_states[i];
  139. r = Esys_IncrementalSelfTest_Finish(esys_context, &toDoList);
  140. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  141. }
  142. }
  143. void
  144. check_GetTestResult(void **state)
  145. {
  146. TSS2_RC r;
  147. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  148. enum _ESYS_STATE esys_states[3] = {
  149. _ESYS_STATE_INIT,
  150. _ESYS_STATE_INTERNALERROR
  151. };
  152. TPM2B_MAX_BUFFER *outData;
  153. TPM2_RC testResult;
  154. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  155. esys_context->state = esys_states[i];
  156. r = Esys_GetTestResult_Finish(esys_context, &outData, &testResult);
  157. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  158. }
  159. }
  160. void
  161. check_StartAuthSession(void **state)
  162. {
  163. TSS2_RC r;
  164. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  165. enum _ESYS_STATE esys_states[3] = {
  166. _ESYS_STATE_INIT,
  167. _ESYS_STATE_INTERNALERROR
  168. };
  169. ESYS_TR sessionHandle_handle;
  170. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  171. esys_context->state = esys_states[i];
  172. r = Esys_StartAuthSession_Finish(esys_context,
  173. &sessionHandle_handle);
  174. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  175. }
  176. }
  177. void
  178. check_PolicyRestart(void **state)
  179. {
  180. TSS2_RC r;
  181. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  182. enum _ESYS_STATE esys_states[3] = {
  183. _ESYS_STATE_INIT,
  184. _ESYS_STATE_INTERNALERROR
  185. };
  186. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  187. esys_context->state = esys_states[i];
  188. r = Esys_PolicyRestart_Finish(esys_context);
  189. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  190. }
  191. }
  192. void
  193. check_Create(void **state)
  194. {
  195. TSS2_RC r;
  196. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  197. enum _ESYS_STATE esys_states[3] = {
  198. _ESYS_STATE_INIT,
  199. _ESYS_STATE_INTERNALERROR
  200. };
  201. TPM2B_PRIVATE *outPrivate;
  202. TPM2B_PUBLIC *outPublic;
  203. TPM2B_CREATION_DATA *creationData;
  204. TPM2B_DIGEST *creationHash;
  205. TPMT_TK_CREATION *creationTicket;
  206. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  207. esys_context->state = esys_states[i];
  208. r = Esys_Create_Finish(esys_context,
  209. &outPrivate,
  210. &outPublic,
  211. &creationData, &creationHash, &creationTicket);
  212. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  213. }
  214. }
  215. void
  216. check_Load(void **state)
  217. {
  218. TSS2_RC r;
  219. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  220. enum _ESYS_STATE esys_states[3] = {
  221. _ESYS_STATE_INIT,
  222. _ESYS_STATE_INTERNALERROR
  223. };
  224. ESYS_TR objectHandle_handle;
  225. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  226. esys_context->state = esys_states[i];
  227. r = Esys_Load_Finish(esys_context, &objectHandle_handle);
  228. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  229. }
  230. }
  231. void
  232. check_LoadExternal(void **state)
  233. {
  234. TSS2_RC r;
  235. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  236. enum _ESYS_STATE esys_states[3] = {
  237. _ESYS_STATE_INIT,
  238. _ESYS_STATE_INTERNALERROR
  239. };
  240. ESYS_TR objectHandle_handle;
  241. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  242. esys_context->state = esys_states[i];
  243. r = Esys_LoadExternal_Finish(esys_context, &objectHandle_handle);
  244. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  245. }
  246. }
  247. void
  248. check_ReadPublic(void **state)
  249. {
  250. TSS2_RC r;
  251. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  252. enum _ESYS_STATE esys_states[3] = {
  253. _ESYS_STATE_INIT,
  254. _ESYS_STATE_INTERNALERROR
  255. };
  256. TPM2B_PUBLIC *outPublic;
  257. TPM2B_NAME *name;
  258. TPM2B_NAME *qualifiedName;
  259. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  260. esys_context->state = esys_states[i];
  261. r = Esys_ReadPublic_Finish(esys_context,
  262. &outPublic, &name, &qualifiedName);
  263. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  264. }
  265. }
  266. void
  267. check_ActivateCredential(void **state)
  268. {
  269. TSS2_RC r;
  270. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  271. enum _ESYS_STATE esys_states[3] = {
  272. _ESYS_STATE_INIT,
  273. _ESYS_STATE_INTERNALERROR
  274. };
  275. TPM2B_DIGEST *certInfo;
  276. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  277. esys_context->state = esys_states[i];
  278. r = Esys_ActivateCredential_Finish(esys_context, &certInfo);
  279. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  280. }
  281. }
  282. void
  283. check_MakeCredential(void **state)
  284. {
  285. TSS2_RC r;
  286. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  287. enum _ESYS_STATE esys_states[3] = {
  288. _ESYS_STATE_INIT,
  289. _ESYS_STATE_INTERNALERROR
  290. };
  291. TPM2B_ID_OBJECT *credentialBlob;
  292. TPM2B_ENCRYPTED_SECRET *secret;
  293. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  294. esys_context->state = esys_states[i];
  295. r = Esys_MakeCredential_Finish(esys_context, &credentialBlob, &secret);
  296. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  297. }
  298. }
  299. void
  300. check_Unseal(void **state)
  301. {
  302. TSS2_RC r;
  303. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  304. enum _ESYS_STATE esys_states[3] = {
  305. _ESYS_STATE_INIT,
  306. _ESYS_STATE_INTERNALERROR
  307. };
  308. TPM2B_SENSITIVE_DATA *outData;
  309. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  310. esys_context->state = esys_states[i];
  311. r = Esys_Unseal_Finish(esys_context, &outData);
  312. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  313. }
  314. }
  315. void
  316. check_ObjectChangeAuth(void **state)
  317. {
  318. TSS2_RC r;
  319. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  320. enum _ESYS_STATE esys_states[3] = {
  321. _ESYS_STATE_INIT,
  322. _ESYS_STATE_INTERNALERROR
  323. };
  324. TPM2B_PRIVATE *outPrivate;
  325. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  326. esys_context->state = esys_states[i];
  327. r = Esys_ObjectChangeAuth_Finish(esys_context, &outPrivate);
  328. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  329. }
  330. }
  331. void
  332. check_CreateLoaded(void **state)
  333. {
  334. TSS2_RC r;
  335. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  336. enum _ESYS_STATE esys_states[3] = {
  337. _ESYS_STATE_INIT,
  338. _ESYS_STATE_INTERNALERROR
  339. };
  340. ESYS_TR objectHandle_handle;
  341. TPM2B_PRIVATE *outPrivate;
  342. TPM2B_PUBLIC *outPublic;
  343. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  344. esys_context->state = esys_states[i];
  345. r = Esys_CreateLoaded_Finish(esys_context,
  346. &objectHandle_handle,
  347. &outPrivate, &outPublic);
  348. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  349. }
  350. }
  351. void
  352. check_Duplicate(void **state)
  353. {
  354. TSS2_RC r;
  355. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  356. enum _ESYS_STATE esys_states[3] = {
  357. _ESYS_STATE_INIT,
  358. _ESYS_STATE_INTERNALERROR
  359. };
  360. TPM2B_DATA *encryptionKeyOut;
  361. TPM2B_PRIVATE *duplicate;
  362. TPM2B_ENCRYPTED_SECRET *outSymSeed;
  363. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  364. esys_context->state = esys_states[i];
  365. r = Esys_Duplicate_Finish(esys_context,
  366. &encryptionKeyOut, &duplicate, &outSymSeed);
  367. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  368. }
  369. }
  370. void
  371. check_Rewrap(void **state)
  372. {
  373. TSS2_RC r;
  374. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  375. enum _ESYS_STATE esys_states[3] = {
  376. _ESYS_STATE_INIT,
  377. _ESYS_STATE_INTERNALERROR
  378. };
  379. TPM2B_PRIVATE *outDuplicate;
  380. TPM2B_ENCRYPTED_SECRET *outSymSeed;
  381. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  382. esys_context->state = esys_states[i];
  383. r = Esys_Rewrap_Finish(esys_context, &outDuplicate, &outSymSeed);
  384. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  385. }
  386. }
  387. void
  388. check_Import(void **state)
  389. {
  390. TSS2_RC r;
  391. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  392. enum _ESYS_STATE esys_states[3] = {
  393. _ESYS_STATE_INIT,
  394. _ESYS_STATE_INTERNALERROR
  395. };
  396. TPM2B_PRIVATE *outPrivate;
  397. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  398. esys_context->state = esys_states[i];
  399. r = Esys_Import_Finish(esys_context, &outPrivate);
  400. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  401. }
  402. }
  403. void
  404. check_RSA_Encrypt(void **state)
  405. {
  406. TSS2_RC r;
  407. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  408. enum _ESYS_STATE esys_states[3] = {
  409. _ESYS_STATE_INIT,
  410. _ESYS_STATE_INTERNALERROR
  411. };
  412. TPM2B_PUBLIC_KEY_RSA *outData;
  413. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  414. esys_context->state = esys_states[i];
  415. r = Esys_RSA_Encrypt_Finish(esys_context, &outData);
  416. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  417. }
  418. }
  419. void
  420. check_RSA_Decrypt(void **state)
  421. {
  422. TSS2_RC r;
  423. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  424. enum _ESYS_STATE esys_states[3] = {
  425. _ESYS_STATE_INIT,
  426. _ESYS_STATE_INTERNALERROR
  427. };
  428. TPM2B_PUBLIC_KEY_RSA *message;
  429. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  430. esys_context->state = esys_states[i];
  431. r = Esys_RSA_Decrypt_Finish(esys_context, &message);
  432. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  433. }
  434. }
  435. void
  436. check_ECDH_KeyGen(void **state)
  437. {
  438. TSS2_RC r;
  439. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  440. enum _ESYS_STATE esys_states[3] = {
  441. _ESYS_STATE_INIT,
  442. _ESYS_STATE_INTERNALERROR
  443. };
  444. TPM2B_ECC_POINT *zPoint;
  445. TPM2B_ECC_POINT *pubPoint;
  446. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  447. esys_context->state = esys_states[i];
  448. r = Esys_ECDH_KeyGen_Finish(esys_context, &zPoint, &pubPoint);
  449. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  450. }
  451. }
  452. void
  453. check_ECDH_ZGen(void **state)
  454. {
  455. TSS2_RC r;
  456. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  457. enum _ESYS_STATE esys_states[3] = {
  458. _ESYS_STATE_INIT,
  459. _ESYS_STATE_INTERNALERROR
  460. };
  461. TPM2B_ECC_POINT *outPoint;
  462. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  463. esys_context->state = esys_states[i];
  464. r = Esys_ECDH_ZGen_Finish(esys_context, &outPoint);
  465. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  466. }
  467. }
  468. void
  469. check_ECC_Parameters(void **state)
  470. {
  471. TSS2_RC r;
  472. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  473. enum _ESYS_STATE esys_states[3] = {
  474. _ESYS_STATE_INIT,
  475. _ESYS_STATE_INTERNALERROR
  476. };
  477. TPMS_ALGORITHM_DETAIL_ECC *parameters;
  478. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  479. esys_context->state = esys_states[i];
  480. r = Esys_ECC_Parameters_Finish(esys_context, &parameters);
  481. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  482. }
  483. }
  484. void
  485. check_ZGen_2Phase(void **state)
  486. {
  487. TSS2_RC r;
  488. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  489. enum _ESYS_STATE esys_states[3] = {
  490. _ESYS_STATE_INIT,
  491. _ESYS_STATE_INTERNALERROR
  492. };
  493. TPM2B_ECC_POINT *outZ1;
  494. TPM2B_ECC_POINT *outZ2;
  495. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  496. esys_context->state = esys_states[i];
  497. r = Esys_ZGen_2Phase_Finish(esys_context, &outZ1, &outZ2);
  498. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  499. }
  500. }
  501. void
  502. check_EncryptDecrypt(void **state)
  503. {
  504. TSS2_RC r;
  505. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  506. enum _ESYS_STATE esys_states[3] = {
  507. _ESYS_STATE_INIT,
  508. _ESYS_STATE_INTERNALERROR
  509. };
  510. TPM2B_MAX_BUFFER *outData;
  511. TPM2B_IV *ivOut;
  512. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  513. esys_context->state = esys_states[i];
  514. r = Esys_EncryptDecrypt_Finish(esys_context, &outData, &ivOut);
  515. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  516. }
  517. }
  518. void
  519. check_EncryptDecrypt2(void **state)
  520. {
  521. TSS2_RC r;
  522. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  523. enum _ESYS_STATE esys_states[3] = {
  524. _ESYS_STATE_INIT,
  525. _ESYS_STATE_INTERNALERROR
  526. };
  527. TPM2B_MAX_BUFFER *outData;
  528. TPM2B_IV *ivOut;
  529. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  530. esys_context->state = esys_states[i];
  531. r = Esys_EncryptDecrypt2_Finish(esys_context, &outData, &ivOut);
  532. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  533. }
  534. }
  535. void
  536. check_Hash(void **state)
  537. {
  538. TSS2_RC r;
  539. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  540. enum _ESYS_STATE esys_states[3] = {
  541. _ESYS_STATE_INIT,
  542. _ESYS_STATE_INTERNALERROR
  543. };
  544. TPM2B_DIGEST *outHash;
  545. TPMT_TK_HASHCHECK *validation;
  546. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  547. esys_context->state = esys_states[i];
  548. r = Esys_Hash_Finish(esys_context, &outHash, &validation);
  549. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  550. }
  551. }
  552. void
  553. check_HMAC(void **state)
  554. {
  555. TSS2_RC r;
  556. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  557. enum _ESYS_STATE esys_states[3] = {
  558. _ESYS_STATE_INIT,
  559. _ESYS_STATE_INTERNALERROR
  560. };
  561. TPM2B_DIGEST *outHMAC;
  562. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  563. esys_context->state = esys_states[i];
  564. r = Esys_HMAC_Finish(esys_context, &outHMAC);
  565. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  566. }
  567. }
  568. void
  569. check_GetRandom(void **state)
  570. {
  571. TSS2_RC r;
  572. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  573. enum _ESYS_STATE esys_states[3] = {
  574. _ESYS_STATE_INIT,
  575. _ESYS_STATE_INTERNALERROR
  576. };
  577. TPM2B_DIGEST *randomBytes;
  578. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  579. esys_context->state = esys_states[i];
  580. r = Esys_GetRandom_Finish(esys_context, &randomBytes);
  581. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  582. }
  583. }
  584. void
  585. check_StirRandom(void **state)
  586. {
  587. TSS2_RC r;
  588. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  589. enum _ESYS_STATE esys_states[3] = {
  590. _ESYS_STATE_INIT,
  591. _ESYS_STATE_INTERNALERROR
  592. };
  593. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  594. esys_context->state = esys_states[i];
  595. r = Esys_StirRandom_Finish(esys_context);
  596. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  597. }
  598. }
  599. void
  600. check_HMAC_Start(void **state)
  601. {
  602. TSS2_RC r;
  603. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  604. enum _ESYS_STATE esys_states[3] = {
  605. _ESYS_STATE_INIT,
  606. _ESYS_STATE_INTERNALERROR
  607. };
  608. ESYS_TR sequenceHandle_handle;
  609. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  610. esys_context->state = esys_states[i];
  611. r = Esys_HMAC_Start_Finish(esys_context, &sequenceHandle_handle);
  612. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  613. }
  614. }
  615. void
  616. check_HashSequenceStart(void **state)
  617. {
  618. TSS2_RC r;
  619. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  620. enum _ESYS_STATE esys_states[3] = {
  621. _ESYS_STATE_INIT,
  622. _ESYS_STATE_INTERNALERROR
  623. };
  624. ESYS_TR sequenceHandle_handle;
  625. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  626. esys_context->state = esys_states[i];
  627. r = Esys_HashSequenceStart_Finish(esys_context, &sequenceHandle_handle);
  628. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  629. }
  630. }
  631. void
  632. check_SequenceUpdate(void **state)
  633. {
  634. TSS2_RC r;
  635. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  636. enum _ESYS_STATE esys_states[3] = {
  637. _ESYS_STATE_INIT,
  638. _ESYS_STATE_INTERNALERROR
  639. };
  640. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  641. esys_context->state = esys_states[i];
  642. r = Esys_SequenceUpdate_Finish(esys_context);
  643. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  644. }
  645. }
  646. void
  647. check_SequenceComplete(void **state)
  648. {
  649. TSS2_RC r;
  650. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  651. enum _ESYS_STATE esys_states[3] = {
  652. _ESYS_STATE_INIT,
  653. _ESYS_STATE_INTERNALERROR
  654. };
  655. TPM2B_DIGEST *result;
  656. TPMT_TK_HASHCHECK *validation;
  657. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  658. esys_context->state = esys_states[i];
  659. r = Esys_SequenceComplete_Finish(esys_context, &result, &validation);
  660. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  661. }
  662. }
  663. void
  664. check_EventSequenceComplete(void **state)
  665. {
  666. TSS2_RC r;
  667. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  668. enum _ESYS_STATE esys_states[3] = {
  669. _ESYS_STATE_INIT,
  670. _ESYS_STATE_INTERNALERROR
  671. };
  672. TPML_DIGEST_VALUES *results;
  673. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  674. esys_context->state = esys_states[i];
  675. r = Esys_EventSequenceComplete_Finish(esys_context, &results);
  676. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  677. }
  678. }
  679. void
  680. check_Certify(void **state)
  681. {
  682. TSS2_RC r;
  683. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  684. enum _ESYS_STATE esys_states[3] = {
  685. _ESYS_STATE_INIT,
  686. _ESYS_STATE_INTERNALERROR
  687. };
  688. TPM2B_ATTEST *certifyInfo;
  689. TPMT_SIGNATURE *signature;
  690. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  691. esys_context->state = esys_states[i];
  692. r = Esys_Certify_Finish(esys_context, &certifyInfo, &signature);
  693. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  694. }
  695. }
  696. void
  697. check_CertifyCreation(void **state)
  698. {
  699. TSS2_RC r;
  700. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  701. enum _ESYS_STATE esys_states[3] = {
  702. _ESYS_STATE_INIT,
  703. _ESYS_STATE_INTERNALERROR
  704. };
  705. TPM2B_ATTEST *certifyInfo;
  706. TPMT_SIGNATURE *signature;
  707. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  708. esys_context->state = esys_states[i];
  709. r = Esys_CertifyCreation_Finish(esys_context, &certifyInfo, &signature);
  710. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  711. }
  712. }
  713. void
  714. check_Quote(void **state)
  715. {
  716. TSS2_RC r;
  717. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  718. enum _ESYS_STATE esys_states[3] = {
  719. _ESYS_STATE_INIT,
  720. _ESYS_STATE_INTERNALERROR
  721. };
  722. TPM2B_ATTEST *quoted;
  723. TPMT_SIGNATURE *signature;
  724. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  725. esys_context->state = esys_states[i];
  726. r = Esys_Quote_Finish(esys_context, &quoted, &signature);
  727. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  728. }
  729. }
  730. void
  731. check_GetSessionAuditDigest(void **state)
  732. {
  733. TSS2_RC r;
  734. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  735. enum _ESYS_STATE esys_states[3] = {
  736. _ESYS_STATE_INIT,
  737. _ESYS_STATE_INTERNALERROR
  738. };
  739. TPM2B_ATTEST *auditInfo;
  740. TPMT_SIGNATURE *signature;
  741. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  742. esys_context->state = esys_states[i];
  743. r = Esys_GetSessionAuditDigest_Finish(esys_context,
  744. &auditInfo, &signature);
  745. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  746. }
  747. }
  748. void
  749. check_GetCommandAuditDigest(void **state)
  750. {
  751. TSS2_RC r;
  752. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  753. enum _ESYS_STATE esys_states[3] = {
  754. _ESYS_STATE_INIT,
  755. _ESYS_STATE_INTERNALERROR
  756. };
  757. TPM2B_ATTEST *auditInfo;
  758. TPMT_SIGNATURE *signature;
  759. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  760. esys_context->state = esys_states[i];
  761. r = Esys_GetCommandAuditDigest_Finish(esys_context,
  762. &auditInfo, &signature);
  763. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  764. }
  765. }
  766. void
  767. check_GetTime(void **state)
  768. {
  769. TSS2_RC r;
  770. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  771. enum _ESYS_STATE esys_states[3] = {
  772. _ESYS_STATE_INIT,
  773. _ESYS_STATE_INTERNALERROR
  774. };
  775. TPM2B_ATTEST *timeInfo;
  776. TPMT_SIGNATURE *signature;
  777. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  778. esys_context->state = esys_states[i];
  779. r = Esys_GetTime_Finish(esys_context, &timeInfo, &signature);
  780. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  781. }
  782. }
  783. void
  784. check_Commit(void **state)
  785. {
  786. TSS2_RC r;
  787. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  788. enum _ESYS_STATE esys_states[3] = {
  789. _ESYS_STATE_INIT,
  790. _ESYS_STATE_INTERNALERROR
  791. };
  792. TPM2B_ECC_POINT *K;
  793. TPM2B_ECC_POINT *L;
  794. TPM2B_ECC_POINT *E;
  795. UINT16 counter;
  796. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  797. esys_context->state = esys_states[i];
  798. r = Esys_Commit_Finish(esys_context, &K, &L, &E, &counter);
  799. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  800. }
  801. }
  802. void
  803. check_EC_Ephemeral(void **state)
  804. {
  805. TSS2_RC r;
  806. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  807. enum _ESYS_STATE esys_states[3] = {
  808. _ESYS_STATE_INIT,
  809. _ESYS_STATE_INTERNALERROR
  810. };
  811. TPM2B_ECC_POINT *Q;
  812. UINT16 counter;
  813. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  814. esys_context->state = esys_states[i];
  815. r = Esys_EC_Ephemeral_Finish(esys_context, &Q, &counter);
  816. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  817. }
  818. }
  819. void
  820. check_VerifySignature(void **state)
  821. {
  822. TSS2_RC r;
  823. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  824. enum _ESYS_STATE esys_states[3] = {
  825. _ESYS_STATE_INIT,
  826. _ESYS_STATE_INTERNALERROR
  827. };
  828. TPMT_TK_VERIFIED *validation;
  829. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  830. esys_context->state = esys_states[i];
  831. r = Esys_VerifySignature_Finish(esys_context, &validation);
  832. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  833. }
  834. }
  835. void
  836. check_Sign(void **state)
  837. {
  838. TSS2_RC r;
  839. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  840. enum _ESYS_STATE esys_states[3] = {
  841. _ESYS_STATE_INIT,
  842. _ESYS_STATE_INTERNALERROR
  843. };
  844. TPMT_SIGNATURE *signature;
  845. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  846. esys_context->state = esys_states[i];
  847. r = Esys_Sign_Finish(esys_context, &signature);
  848. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  849. }
  850. }
  851. void
  852. check_SetCommandCodeAuditStatus(void **state)
  853. {
  854. TSS2_RC r;
  855. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  856. enum _ESYS_STATE esys_states[3] = {
  857. _ESYS_STATE_INIT,
  858. _ESYS_STATE_INTERNALERROR
  859. };
  860. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  861. esys_context->state = esys_states[i];
  862. r = Esys_SetCommandCodeAuditStatus_Finish(esys_context);
  863. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  864. }
  865. }
  866. void
  867. check_PCR_Extend(void **state)
  868. {
  869. TSS2_RC r;
  870. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  871. enum _ESYS_STATE esys_states[3] = {
  872. _ESYS_STATE_INIT,
  873. _ESYS_STATE_INTERNALERROR
  874. };
  875. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  876. esys_context->state = esys_states[i];
  877. r = Esys_PCR_Extend_Finish(esys_context);
  878. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  879. }
  880. }
  881. void
  882. check_PCR_Event(void **state)
  883. {
  884. TSS2_RC r;
  885. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  886. enum _ESYS_STATE esys_states[3] = {
  887. _ESYS_STATE_INIT,
  888. _ESYS_STATE_INTERNALERROR
  889. };
  890. TPML_DIGEST_VALUES *digests;
  891. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  892. esys_context->state = esys_states[i];
  893. r = Esys_PCR_Event_Finish(esys_context, &digests);
  894. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  895. }
  896. }
  897. void
  898. check_PCR_Read(void **state)
  899. {
  900. TSS2_RC r;
  901. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  902. enum _ESYS_STATE esys_states[3] = {
  903. _ESYS_STATE_INIT,
  904. _ESYS_STATE_INTERNALERROR
  905. };
  906. TPML_PCR_SELECTION *pcrSelectionOut;
  907. TPML_DIGEST *pcrValues;
  908. UINT32 pcrUpdateCounter;
  909. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  910. esys_context->state = esys_states[i];
  911. r = Esys_PCR_Read_Finish(esys_context,
  912. &pcrUpdateCounter,
  913. &pcrSelectionOut, &pcrValues);
  914. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  915. }
  916. }
  917. void
  918. check_PCR_Allocate(void **state)
  919. {
  920. TSS2_RC r;
  921. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  922. enum _ESYS_STATE esys_states[3] = {
  923. _ESYS_STATE_INIT,
  924. _ESYS_STATE_INTERNALERROR
  925. };
  926. TPMI_YES_NO allocationSuccess;
  927. UINT32 maxPCR;
  928. UINT32 sizeNeeded;
  929. UINT32 sizeAvailable;
  930. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  931. esys_context->state = esys_states[i];
  932. r = Esys_PCR_Allocate_Finish(esys_context,
  933. &allocationSuccess,
  934. &maxPCR, &sizeNeeded, &sizeAvailable);
  935. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  936. }
  937. }
  938. void
  939. check_PCR_SetAuthPolicy(void **state)
  940. {
  941. TSS2_RC r;
  942. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  943. enum _ESYS_STATE esys_states[3] = {
  944. _ESYS_STATE_INIT,
  945. _ESYS_STATE_INTERNALERROR
  946. };
  947. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  948. esys_context->state = esys_states[i];
  949. r = Esys_PCR_SetAuthPolicy_Finish(esys_context);
  950. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  951. }
  952. }
  953. void
  954. check_PCR_SetAuthValue(void **state)
  955. {
  956. TSS2_RC r;
  957. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  958. enum _ESYS_STATE esys_states[3] = {
  959. _ESYS_STATE_INIT,
  960. _ESYS_STATE_INTERNALERROR
  961. };
  962. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  963. esys_context->state = esys_states[i];
  964. r = Esys_PCR_SetAuthValue_Finish(esys_context);
  965. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  966. }
  967. }
  968. void
  969. check_PCR_Reset(void **state)
  970. {
  971. TSS2_RC r;
  972. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  973. enum _ESYS_STATE esys_states[3] = {
  974. _ESYS_STATE_INIT,
  975. _ESYS_STATE_INTERNALERROR
  976. };
  977. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  978. esys_context->state = esys_states[i];
  979. r = Esys_PCR_Reset_Finish(esys_context);
  980. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  981. }
  982. }
  983. void
  984. check_PolicySigned(void **state)
  985. {
  986. TSS2_RC r;
  987. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  988. enum _ESYS_STATE esys_states[3] = {
  989. _ESYS_STATE_INIT,
  990. _ESYS_STATE_INTERNALERROR
  991. };
  992. TPM2B_TIMEOUT *timeout;
  993. TPMT_TK_AUTH *policyTicket;
  994. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  995. esys_context->state = esys_states[i];
  996. r = Esys_PolicySigned_Finish(esys_context, &timeout, &policyTicket);
  997. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  998. }
  999. }
  1000. void
  1001. check_PolicySecret(void **state)
  1002. {
  1003. TSS2_RC r;
  1004. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1005. enum _ESYS_STATE esys_states[3] = {
  1006. _ESYS_STATE_INIT,
  1007. _ESYS_STATE_INTERNALERROR
  1008. };
  1009. TPM2B_TIMEOUT *timeout;
  1010. TPMT_TK_AUTH *policyTicket;
  1011. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1012. esys_context->state = esys_states[i];
  1013. r = Esys_PolicySecret_Finish(esys_context, &timeout, &policyTicket);
  1014. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1015. }
  1016. }
  1017. void
  1018. check_PolicyTicket(void **state)
  1019. {
  1020. TSS2_RC r;
  1021. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1022. enum _ESYS_STATE esys_states[3] = {
  1023. _ESYS_STATE_INIT,
  1024. _ESYS_STATE_INTERNALERROR
  1025. };
  1026. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1027. esys_context->state = esys_states[i];
  1028. r = Esys_PolicyTicket_Finish(esys_context);
  1029. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1030. }
  1031. }
  1032. void
  1033. check_PolicyOR(void **state)
  1034. {
  1035. TSS2_RC r;
  1036. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1037. enum _ESYS_STATE esys_states[3] = {
  1038. _ESYS_STATE_INIT,
  1039. _ESYS_STATE_INTERNALERROR
  1040. };
  1041. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1042. esys_context->state = esys_states[i];
  1043. r = Esys_PolicyOR_Finish(esys_context);
  1044. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1045. }
  1046. }
  1047. void
  1048. check_PolicyPCR(void **state)
  1049. {
  1050. TSS2_RC r;
  1051. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1052. enum _ESYS_STATE esys_states[3] = {
  1053. _ESYS_STATE_INIT,
  1054. _ESYS_STATE_INTERNALERROR
  1055. };
  1056. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1057. esys_context->state = esys_states[i];
  1058. r = Esys_PolicyPCR_Finish(esys_context);
  1059. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1060. }
  1061. }
  1062. void
  1063. check_PolicyLocality(void **state)
  1064. {
  1065. TSS2_RC r;
  1066. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1067. enum _ESYS_STATE esys_states[3] = {
  1068. _ESYS_STATE_INIT,
  1069. _ESYS_STATE_INTERNALERROR
  1070. };
  1071. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1072. esys_context->state = esys_states[i];
  1073. r = Esys_PolicyLocality_Finish(esys_context);
  1074. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1075. }
  1076. }
  1077. void
  1078. check_PolicyNV(void **state)
  1079. {
  1080. TSS2_RC r;
  1081. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1082. enum _ESYS_STATE esys_states[3] = {
  1083. _ESYS_STATE_INIT,
  1084. _ESYS_STATE_INTERNALERROR
  1085. };
  1086. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1087. esys_context->state = esys_states[i];
  1088. r = Esys_PolicyNV_Finish(esys_context);
  1089. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1090. }
  1091. }
  1092. void
  1093. check_PolicyCounterTimer(void **state)
  1094. {
  1095. TSS2_RC r;
  1096. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1097. enum _ESYS_STATE esys_states[3] = {
  1098. _ESYS_STATE_INIT,
  1099. _ESYS_STATE_INTERNALERROR
  1100. };
  1101. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1102. esys_context->state = esys_states[i];
  1103. r = Esys_PolicyCounterTimer_Finish(esys_context);
  1104. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1105. }
  1106. }
  1107. void
  1108. check_PolicyCommandCode(void **state)
  1109. {
  1110. TSS2_RC r;
  1111. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1112. enum _ESYS_STATE esys_states[3] = {
  1113. _ESYS_STATE_INIT,
  1114. _ESYS_STATE_INTERNALERROR
  1115. };
  1116. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1117. esys_context->state = esys_states[i];
  1118. r = Esys_PolicyCommandCode_Finish(esys_context);
  1119. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1120. }
  1121. }
  1122. void
  1123. check_PolicyPhysicalPresence(void **state)
  1124. {
  1125. TSS2_RC r;
  1126. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1127. enum _ESYS_STATE esys_states[3] = {
  1128. _ESYS_STATE_INIT,
  1129. _ESYS_STATE_INTERNALERROR
  1130. };
  1131. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1132. esys_context->state = esys_states[i];
  1133. r = Esys_PolicyPhysicalPresence_Finish(esys_context);
  1134. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1135. }
  1136. }
  1137. void
  1138. check_PolicyCpHash(void **state)
  1139. {
  1140. TSS2_RC r;
  1141. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1142. enum _ESYS_STATE esys_states[3] = {
  1143. _ESYS_STATE_INIT,
  1144. _ESYS_STATE_INTERNALERROR
  1145. };
  1146. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1147. esys_context->state = esys_states[i];
  1148. r = Esys_PolicyCpHash_Finish(esys_context);
  1149. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1150. }
  1151. }
  1152. void
  1153. check_PolicyNameHash(void **state)
  1154. {
  1155. TSS2_RC r;
  1156. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1157. enum _ESYS_STATE esys_states[3] = {
  1158. _ESYS_STATE_INIT,
  1159. _ESYS_STATE_INTERNALERROR
  1160. };
  1161. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1162. esys_context->state = esys_states[i];
  1163. r = Esys_PolicyNameHash_Finish(esys_context);
  1164. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1165. }
  1166. }
  1167. void
  1168. check_PolicyDuplicationSelect(void **state)
  1169. {
  1170. TSS2_RC r;
  1171. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1172. enum _ESYS_STATE esys_states[3] = {
  1173. _ESYS_STATE_INIT,
  1174. _ESYS_STATE_INTERNALERROR
  1175. };
  1176. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1177. esys_context->state = esys_states[i];
  1178. r = Esys_PolicyDuplicationSelect_Finish(esys_context);
  1179. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1180. }
  1181. }
  1182. void
  1183. check_PolicyAuthorize(void **state)
  1184. {
  1185. TSS2_RC r;
  1186. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1187. enum _ESYS_STATE esys_states[3] = {
  1188. _ESYS_STATE_INIT,
  1189. _ESYS_STATE_INTERNALERROR
  1190. };
  1191. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1192. esys_context->state = esys_states[i];
  1193. r = Esys_PolicyAuthorize_Finish(esys_context);
  1194. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1195. }
  1196. }
  1197. void
  1198. check_PolicyAuthValue(void **state)
  1199. {
  1200. TSS2_RC r;
  1201. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1202. enum _ESYS_STATE esys_states[3] = {
  1203. _ESYS_STATE_INIT,
  1204. _ESYS_STATE_INTERNALERROR
  1205. };
  1206. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1207. esys_context->state = esys_states[i];
  1208. r = Esys_PolicyAuthValue_Finish(esys_context);
  1209. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1210. }
  1211. }
  1212. void
  1213. check_PolicyPassword(void **state)
  1214. {
  1215. TSS2_RC r;
  1216. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1217. enum _ESYS_STATE esys_states[3] = {
  1218. _ESYS_STATE_INIT,
  1219. _ESYS_STATE_INTERNALERROR
  1220. };
  1221. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1222. esys_context->state = esys_states[i];
  1223. r = Esys_PolicyPassword_Finish(esys_context);
  1224. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1225. }
  1226. }
  1227. void
  1228. check_PolicyGetDigest(void **state)
  1229. {
  1230. TSS2_RC r;
  1231. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1232. enum _ESYS_STATE esys_states[3] = {
  1233. _ESYS_STATE_INIT,
  1234. _ESYS_STATE_INTERNALERROR
  1235. };
  1236. TPM2B_DIGEST *policyDigest;
  1237. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1238. esys_context->state = esys_states[i];
  1239. r = Esys_PolicyGetDigest_Finish(esys_context, &policyDigest);
  1240. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1241. }
  1242. }
  1243. void
  1244. check_PolicyNvWritten(void **state)
  1245. {
  1246. TSS2_RC r;
  1247. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1248. enum _ESYS_STATE esys_states[3] = {
  1249. _ESYS_STATE_INIT,
  1250. _ESYS_STATE_INTERNALERROR
  1251. };
  1252. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1253. esys_context->state = esys_states[i];
  1254. r = Esys_PolicyNvWritten_Finish(esys_context);
  1255. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1256. }
  1257. }
  1258. void
  1259. check_PolicyTemplate(void **state)
  1260. {
  1261. TSS2_RC r;
  1262. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1263. enum _ESYS_STATE esys_states[3] = {
  1264. _ESYS_STATE_INIT,
  1265. _ESYS_STATE_INTERNALERROR
  1266. };
  1267. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1268. esys_context->state = esys_states[i];
  1269. r = Esys_PolicyTemplate_Finish(esys_context);
  1270. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1271. }
  1272. }
  1273. void
  1274. check_PolicyAuthorizeNV(void **state)
  1275. {
  1276. TSS2_RC r;
  1277. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1278. enum _ESYS_STATE esys_states[3] = {
  1279. _ESYS_STATE_INIT,
  1280. _ESYS_STATE_INTERNALERROR
  1281. };
  1282. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1283. esys_context->state = esys_states[i];
  1284. r = Esys_PolicyAuthorizeNV_Finish(esys_context);
  1285. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1286. }
  1287. }
  1288. void
  1289. check_CreatePrimary(void **state)
  1290. {
  1291. TSS2_RC r;
  1292. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1293. enum _ESYS_STATE esys_states[3] = {
  1294. _ESYS_STATE_INIT,
  1295. _ESYS_STATE_INTERNALERROR
  1296. };
  1297. ESYS_TR objectHandle_handle;
  1298. TPM2B_PUBLIC *outPublic;
  1299. TPM2B_CREATION_DATA *creationData;
  1300. TPM2B_DIGEST *creationHash;
  1301. TPMT_TK_CREATION *creationTicket;
  1302. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1303. esys_context->state = esys_states[i];
  1304. r = Esys_CreatePrimary_Finish(esys_context,
  1305. &objectHandle_handle,
  1306. &outPublic,
  1307. &creationData,
  1308. &creationHash, &creationTicket);
  1309. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1310. }
  1311. }
  1312. void
  1313. check_HierarchyControl(void **state)
  1314. {
  1315. TSS2_RC r;
  1316. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1317. enum _ESYS_STATE esys_states[3] = {
  1318. _ESYS_STATE_INIT,
  1319. _ESYS_STATE_INTERNALERROR
  1320. };
  1321. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1322. esys_context->state = esys_states[i];
  1323. r = Esys_HierarchyControl_Finish(esys_context);
  1324. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1325. }
  1326. }
  1327. void
  1328. check_SetPrimaryPolicy(void **state)
  1329. {
  1330. TSS2_RC r;
  1331. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1332. enum _ESYS_STATE esys_states[3] = {
  1333. _ESYS_STATE_INIT,
  1334. _ESYS_STATE_INTERNALERROR
  1335. };
  1336. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1337. esys_context->state = esys_states[i];
  1338. r = Esys_SetPrimaryPolicy_Finish(esys_context);
  1339. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1340. }
  1341. }
  1342. void
  1343. check_ChangePPS(void **state)
  1344. {
  1345. TSS2_RC r;
  1346. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1347. enum _ESYS_STATE esys_states[3] = {
  1348. _ESYS_STATE_INIT,
  1349. _ESYS_STATE_INTERNALERROR
  1350. };
  1351. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1352. esys_context->state = esys_states[i];
  1353. r = Esys_ChangePPS_Finish(esys_context);
  1354. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1355. }
  1356. }
  1357. void
  1358. check_ChangeEPS(void **state)
  1359. {
  1360. TSS2_RC r;
  1361. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1362. enum _ESYS_STATE esys_states[3] = {
  1363. _ESYS_STATE_INIT,
  1364. _ESYS_STATE_INTERNALERROR
  1365. };
  1366. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1367. esys_context->state = esys_states[i];
  1368. r = Esys_ChangeEPS_Finish(esys_context);
  1369. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1370. }
  1371. }
  1372. void
  1373. check_Clear(void **state)
  1374. {
  1375. TSS2_RC r;
  1376. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1377. enum _ESYS_STATE esys_states[3] = {
  1378. _ESYS_STATE_INIT,
  1379. _ESYS_STATE_INTERNALERROR
  1380. };
  1381. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1382. esys_context->state = esys_states[i];
  1383. r = Esys_Clear_Finish(esys_context);
  1384. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1385. }
  1386. }
  1387. void
  1388. check_ClearControl(void **state)
  1389. {
  1390. TSS2_RC r;
  1391. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1392. enum _ESYS_STATE esys_states[3] = {
  1393. _ESYS_STATE_INIT,
  1394. _ESYS_STATE_INTERNALERROR
  1395. };
  1396. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1397. esys_context->state = esys_states[i];
  1398. r = Esys_ClearControl_Finish(esys_context);
  1399. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1400. }
  1401. }
  1402. void
  1403. check_HierarchyChangeAuth(void **state)
  1404. {
  1405. TSS2_RC r;
  1406. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1407. enum _ESYS_STATE esys_states[3] = {
  1408. _ESYS_STATE_INIT,
  1409. _ESYS_STATE_INTERNALERROR
  1410. };
  1411. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1412. esys_context->state = esys_states[i];
  1413. r = Esys_HierarchyChangeAuth_Finish(esys_context);
  1414. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1415. }
  1416. }
  1417. void
  1418. check_DictionaryAttackLockReset(void **state)
  1419. {
  1420. TSS2_RC r;
  1421. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1422. enum _ESYS_STATE esys_states[3] = {
  1423. _ESYS_STATE_INIT,
  1424. _ESYS_STATE_INTERNALERROR
  1425. };
  1426. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1427. esys_context->state = esys_states[i];
  1428. r = Esys_DictionaryAttackLockReset_Finish(esys_context);
  1429. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1430. }
  1431. }
  1432. void
  1433. check_DictionaryAttackParameters(void **state)
  1434. {
  1435. TSS2_RC r;
  1436. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1437. enum _ESYS_STATE esys_states[3] = {
  1438. _ESYS_STATE_INIT,
  1439. _ESYS_STATE_INTERNALERROR
  1440. };
  1441. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1442. esys_context->state = esys_states[i];
  1443. r = Esys_DictionaryAttackParameters_Finish(esys_context);
  1444. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1445. }
  1446. }
  1447. void
  1448. check_PP_Commands(void **state)
  1449. {
  1450. TSS2_RC r;
  1451. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1452. enum _ESYS_STATE esys_states[3] = {
  1453. _ESYS_STATE_INIT,
  1454. _ESYS_STATE_INTERNALERROR
  1455. };
  1456. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1457. esys_context->state = esys_states[i];
  1458. r = Esys_PP_Commands_Finish(esys_context);
  1459. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1460. }
  1461. }
  1462. void
  1463. check_SetAlgorithmSet(void **state)
  1464. {
  1465. TSS2_RC r;
  1466. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1467. enum _ESYS_STATE esys_states[3] = {
  1468. _ESYS_STATE_INIT,
  1469. _ESYS_STATE_INTERNALERROR
  1470. };
  1471. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1472. esys_context->state = esys_states[i];
  1473. r = Esys_SetAlgorithmSet_Finish(esys_context);
  1474. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1475. }
  1476. }
  1477. void
  1478. check_FieldUpgradeStart(void **state)
  1479. {
  1480. TSS2_RC r;
  1481. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1482. enum _ESYS_STATE esys_states[3] = {
  1483. _ESYS_STATE_INIT,
  1484. _ESYS_STATE_INTERNALERROR
  1485. };
  1486. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1487. esys_context->state = esys_states[i];
  1488. r = Esys_FieldUpgradeStart_Finish(esys_context);
  1489. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1490. }
  1491. }
  1492. void
  1493. check_FieldUpgradeData(void **state)
  1494. {
  1495. TSS2_RC r;
  1496. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1497. enum _ESYS_STATE esys_states[3] = {
  1498. _ESYS_STATE_INIT,
  1499. _ESYS_STATE_INTERNALERROR
  1500. };
  1501. TPMT_HA *nextDigest;
  1502. TPMT_HA *firstDigest;
  1503. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1504. esys_context->state = esys_states[i];
  1505. r = Esys_FieldUpgradeData_Finish(esys_context,
  1506. &nextDigest, &firstDigest);
  1507. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1508. }
  1509. }
  1510. void
  1511. check_FirmwareRead(void **state)
  1512. {
  1513. TSS2_RC r;
  1514. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1515. enum _ESYS_STATE esys_states[3] = {
  1516. _ESYS_STATE_INIT,
  1517. _ESYS_STATE_INTERNALERROR
  1518. };
  1519. TPM2B_MAX_BUFFER *fuData;
  1520. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1521. esys_context->state = esys_states[i];
  1522. r = Esys_FirmwareRead_Finish(esys_context, &fuData);
  1523. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1524. }
  1525. }
  1526. void
  1527. check_ContextSave(void **state)
  1528. {
  1529. TSS2_RC r;
  1530. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1531. enum _ESYS_STATE esys_states[3] = {
  1532. _ESYS_STATE_INIT,
  1533. _ESYS_STATE_INTERNALERROR
  1534. };
  1535. TPMS_CONTEXT *context;
  1536. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1537. esys_context->state = esys_states[i];
  1538. r = Esys_ContextSave_Finish(esys_context, &context);
  1539. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1540. }
  1541. }
  1542. void
  1543. check_ContextLoad(void **state)
  1544. {
  1545. TSS2_RC r;
  1546. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1547. enum _ESYS_STATE esys_states[3] = {
  1548. _ESYS_STATE_INIT,
  1549. _ESYS_STATE_INTERNALERROR
  1550. };
  1551. ESYS_TR loadedHandle_handle;
  1552. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1553. esys_context->state = esys_states[i];
  1554. r = Esys_ContextLoad_Finish(esys_context, &loadedHandle_handle);
  1555. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1556. }
  1557. }
  1558. void
  1559. check_FlushContext(void **state)
  1560. {
  1561. TSS2_RC r;
  1562. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1563. enum _ESYS_STATE esys_states[3] = {
  1564. _ESYS_STATE_INIT,
  1565. _ESYS_STATE_INTERNALERROR
  1566. };
  1567. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1568. esys_context->state = esys_states[i];
  1569. r = Esys_FlushContext_Finish(esys_context);
  1570. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1571. }
  1572. }
  1573. void
  1574. check_EvictControl(void **state)
  1575. {
  1576. TSS2_RC r;
  1577. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1578. enum _ESYS_STATE esys_states[3] = {
  1579. _ESYS_STATE_INIT,
  1580. _ESYS_STATE_INTERNALERROR
  1581. };
  1582. ESYS_TR newObjectHandle_handle;
  1583. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1584. esys_context->state = esys_states[i];
  1585. r = Esys_EvictControl_Finish(esys_context, &newObjectHandle_handle);
  1586. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1587. }
  1588. }
  1589. void
  1590. check_ReadClock(void **state)
  1591. {
  1592. TSS2_RC r;
  1593. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1594. enum _ESYS_STATE esys_states[3] = {
  1595. _ESYS_STATE_INIT,
  1596. _ESYS_STATE_INTERNALERROR
  1597. };
  1598. TPMS_TIME_INFO *currentTime;
  1599. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1600. esys_context->state = esys_states[i];
  1601. r = Esys_ReadClock_Finish(esys_context, &currentTime);
  1602. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1603. }
  1604. }
  1605. void
  1606. check_ClockSet(void **state)
  1607. {
  1608. TSS2_RC r;
  1609. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1610. enum _ESYS_STATE esys_states[3] = {
  1611. _ESYS_STATE_INIT,
  1612. _ESYS_STATE_INTERNALERROR
  1613. };
  1614. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1615. esys_context->state = esys_states[i];
  1616. r = Esys_ClockSet_Finish(esys_context);
  1617. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1618. }
  1619. }
  1620. void
  1621. check_ClockRateAdjust(void **state)
  1622. {
  1623. TSS2_RC r;
  1624. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1625. enum _ESYS_STATE esys_states[3] = {
  1626. _ESYS_STATE_INIT,
  1627. _ESYS_STATE_INTERNALERROR
  1628. };
  1629. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1630. esys_context->state = esys_states[i];
  1631. r = Esys_ClockRateAdjust_Finish(esys_context);
  1632. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1633. }
  1634. }
  1635. void
  1636. check_GetCapability(void **state)
  1637. {
  1638. TSS2_RC r;
  1639. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1640. enum _ESYS_STATE esys_states[3] = {
  1641. _ESYS_STATE_INIT,
  1642. _ESYS_STATE_INTERNALERROR
  1643. };
  1644. TPMS_CAPABILITY_DATA *capabilityData;
  1645. TPMI_YES_NO moreData;
  1646. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1647. esys_context->state = esys_states[i];
  1648. r = Esys_GetCapability_Finish(esys_context, &moreData, &capabilityData);
  1649. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1650. }
  1651. }
  1652. void
  1653. check_TestParms(void **state)
  1654. {
  1655. TSS2_RC r;
  1656. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1657. enum _ESYS_STATE esys_states[3] = {
  1658. _ESYS_STATE_INIT,
  1659. _ESYS_STATE_INTERNALERROR
  1660. };
  1661. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1662. esys_context->state = esys_states[i];
  1663. r = Esys_TestParms_Finish(esys_context);
  1664. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1665. }
  1666. }
  1667. void
  1668. check_NV_DefineSpace(void **state)
  1669. {
  1670. TSS2_RC r;
  1671. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1672. enum _ESYS_STATE esys_states[3] = {
  1673. _ESYS_STATE_INIT,
  1674. _ESYS_STATE_INTERNALERROR
  1675. };
  1676. ESYS_TR nvHandle_handle;
  1677. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1678. esys_context->state = esys_states[i];
  1679. r = Esys_NV_DefineSpace_Finish(esys_context, &nvHandle_handle);
  1680. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1681. }
  1682. }
  1683. void
  1684. check_NV_UndefineSpace(void **state)
  1685. {
  1686. TSS2_RC r;
  1687. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1688. enum _ESYS_STATE esys_states[3] = {
  1689. _ESYS_STATE_INIT,
  1690. _ESYS_STATE_INTERNALERROR
  1691. };
  1692. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1693. esys_context->state = esys_states[i];
  1694. r = Esys_NV_UndefineSpace_Finish(esys_context);
  1695. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1696. }
  1697. }
  1698. void
  1699. check_NV_UndefineSpaceSpecial(void **state)
  1700. {
  1701. TSS2_RC r;
  1702. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1703. enum _ESYS_STATE esys_states[3] = {
  1704. _ESYS_STATE_INIT,
  1705. _ESYS_STATE_INTERNALERROR
  1706. };
  1707. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1708. esys_context->state = esys_states[i];
  1709. r = Esys_NV_UndefineSpaceSpecial_Finish(esys_context);
  1710. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1711. }
  1712. }
  1713. void
  1714. check_NV_ReadPublic(void **state)
  1715. {
  1716. TSS2_RC r;
  1717. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1718. enum _ESYS_STATE esys_states[3] = {
  1719. _ESYS_STATE_INIT,
  1720. _ESYS_STATE_INTERNALERROR
  1721. };
  1722. TPM2B_NV_PUBLIC *nvPublic;
  1723. TPM2B_NAME *nvName;
  1724. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1725. esys_context->state = esys_states[i];
  1726. r = Esys_NV_ReadPublic_Finish(esys_context, &nvPublic, &nvName);
  1727. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1728. }
  1729. }
  1730. void
  1731. check_NV_Write(void **state)
  1732. {
  1733. TSS2_RC r;
  1734. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1735. enum _ESYS_STATE esys_states[3] = {
  1736. _ESYS_STATE_INIT,
  1737. _ESYS_STATE_INTERNALERROR
  1738. };
  1739. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1740. esys_context->state = esys_states[i];
  1741. r = Esys_NV_Write_Finish(esys_context);
  1742. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1743. }
  1744. }
  1745. void
  1746. check_NV_Increment(void **state)
  1747. {
  1748. TSS2_RC r;
  1749. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1750. enum _ESYS_STATE esys_states[3] = {
  1751. _ESYS_STATE_INIT,
  1752. _ESYS_STATE_INTERNALERROR
  1753. };
  1754. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1755. esys_context->state = esys_states[i];
  1756. r = Esys_NV_Increment_Finish(esys_context);
  1757. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1758. }
  1759. }
  1760. void
  1761. check_NV_Extend(void **state)
  1762. {
  1763. TSS2_RC r;
  1764. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1765. enum _ESYS_STATE esys_states[3] = {
  1766. _ESYS_STATE_INIT,
  1767. _ESYS_STATE_INTERNALERROR
  1768. };
  1769. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1770. esys_context->state = esys_states[i];
  1771. r = Esys_NV_Extend_Finish(esys_context);
  1772. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1773. }
  1774. }
  1775. void
  1776. check_NV_SetBits(void **state)
  1777. {
  1778. TSS2_RC r;
  1779. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1780. enum _ESYS_STATE esys_states[3] = {
  1781. _ESYS_STATE_INIT,
  1782. _ESYS_STATE_INTERNALERROR
  1783. };
  1784. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1785. esys_context->state = esys_states[i];
  1786. r = Esys_NV_SetBits_Finish(esys_context);
  1787. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1788. }
  1789. }
  1790. void
  1791. check_NV_WriteLock(void **state)
  1792. {
  1793. TSS2_RC r;
  1794. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1795. enum _ESYS_STATE esys_states[3] = {
  1796. _ESYS_STATE_INIT,
  1797. _ESYS_STATE_INTERNALERROR
  1798. };
  1799. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1800. esys_context->state = esys_states[i];
  1801. r = Esys_NV_WriteLock_Finish(esys_context);
  1802. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1803. }
  1804. }
  1805. void
  1806. check_NV_GlobalWriteLock(void **state)
  1807. {
  1808. TSS2_RC r;
  1809. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1810. enum _ESYS_STATE esys_states[3] = {
  1811. _ESYS_STATE_INIT,
  1812. _ESYS_STATE_INTERNALERROR
  1813. };
  1814. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1815. esys_context->state = esys_states[i];
  1816. r = Esys_NV_GlobalWriteLock_Finish(esys_context);
  1817. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1818. }
  1819. }
  1820. void
  1821. check_NV_Read(void **state)
  1822. {
  1823. TSS2_RC r;
  1824. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1825. enum _ESYS_STATE esys_states[3] = {
  1826. _ESYS_STATE_INIT,
  1827. _ESYS_STATE_INTERNALERROR
  1828. };
  1829. TPM2B_MAX_NV_BUFFER *data;
  1830. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1831. esys_context->state = esys_states[i];
  1832. r = Esys_NV_Read_Finish(esys_context, &data);
  1833. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1834. }
  1835. }
  1836. void
  1837. check_NV_ReadLock(void **state)
  1838. {
  1839. TSS2_RC r;
  1840. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1841. enum _ESYS_STATE esys_states[3] = {
  1842. _ESYS_STATE_INIT,
  1843. _ESYS_STATE_INTERNALERROR
  1844. };
  1845. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1846. esys_context->state = esys_states[i];
  1847. r = Esys_NV_ReadLock_Finish(esys_context);
  1848. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1849. }
  1850. }
  1851. void
  1852. check_NV_ChangeAuth(void **state)
  1853. {
  1854. TSS2_RC r;
  1855. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1856. enum _ESYS_STATE esys_states[3] = {
  1857. _ESYS_STATE_INIT,
  1858. _ESYS_STATE_INTERNALERROR
  1859. };
  1860. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1861. esys_context->state = esys_states[i];
  1862. r = Esys_NV_ChangeAuth_Finish(esys_context);
  1863. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1864. }
  1865. }
  1866. void
  1867. check_NV_Certify(void **state)
  1868. {
  1869. TSS2_RC r;
  1870. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1871. enum _ESYS_STATE esys_states[3] = {
  1872. _ESYS_STATE_INIT,
  1873. _ESYS_STATE_INTERNALERROR
  1874. };
  1875. TPM2B_ATTEST *certifyInfo;
  1876. TPMT_SIGNATURE *signature;
  1877. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1878. esys_context->state = esys_states[i];
  1879. r = Esys_NV_Certify_Finish(esys_context, &certifyInfo, &signature);
  1880. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1881. }
  1882. }
  1883. void
  1884. check_Vendor_TCG_Test(void **state)
  1885. {
  1886. TSS2_RC r;
  1887. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1888. enum _ESYS_STATE esys_states[3] = {
  1889. _ESYS_STATE_INIT,
  1890. _ESYS_STATE_INTERNALERROR
  1891. };
  1892. TPM2B_DATA *outputData;
  1893. for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
  1894. esys_context->state = esys_states[i];
  1895. r = Esys_Vendor_TCG_Test_Finish(esys_context, &outputData);
  1896. assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
  1897. }
  1898. }
  1899. int
  1900. main(void)
  1901. {
  1902. const struct CMUnitTest tests[] = {
  1903. cmocka_unit_test_setup_teardown(check_Startup, esys_unit_setup,
  1904. esys_unit_teardown),
  1905. cmocka_unit_test_setup_teardown(check_Shutdown, esys_unit_setup,
  1906. esys_unit_teardown),
  1907. cmocka_unit_test_setup_teardown(check_SelfTest, esys_unit_setup,
  1908. esys_unit_teardown),
  1909. cmocka_unit_test_setup_teardown(check_IncrementalSelfTest,
  1910. esys_unit_setup, esys_unit_teardown),
  1911. cmocka_unit_test_setup_teardown(check_GetTestResult, esys_unit_setup,
  1912. esys_unit_teardown),
  1913. cmocka_unit_test_setup_teardown(check_StartAuthSession, esys_unit_setup,
  1914. esys_unit_teardown),
  1915. cmocka_unit_test_setup_teardown(check_PolicyRestart, esys_unit_setup,
  1916. esys_unit_teardown),
  1917. cmocka_unit_test_setup_teardown(check_Create, esys_unit_setup,
  1918. esys_unit_teardown),
  1919. cmocka_unit_test_setup_teardown(check_Load, esys_unit_setup,
  1920. esys_unit_teardown),
  1921. cmocka_unit_test_setup_teardown(check_LoadExternal, esys_unit_setup,
  1922. esys_unit_teardown),
  1923. cmocka_unit_test_setup_teardown(check_ReadPublic, esys_unit_setup,
  1924. esys_unit_teardown),
  1925. cmocka_unit_test_setup_teardown(check_ActivateCredential,
  1926. esys_unit_setup, esys_unit_teardown),
  1927. cmocka_unit_test_setup_teardown(check_MakeCredential, esys_unit_setup,
  1928. esys_unit_teardown),
  1929. cmocka_unit_test_setup_teardown(check_Unseal, esys_unit_setup,
  1930. esys_unit_teardown),
  1931. cmocka_unit_test_setup_teardown(check_ObjectChangeAuth, esys_unit_setup,
  1932. esys_unit_teardown),
  1933. cmocka_unit_test_setup_teardown(check_CreateLoaded, esys_unit_setup,
  1934. esys_unit_teardown),
  1935. cmocka_unit_test_setup_teardown(check_Duplicate, esys_unit_setup,
  1936. esys_unit_teardown),
  1937. cmocka_unit_test_setup_teardown(check_Rewrap, esys_unit_setup,
  1938. esys_unit_teardown),
  1939. cmocka_unit_test_setup_teardown(check_Import, esys_unit_setup,
  1940. esys_unit_teardown),
  1941. cmocka_unit_test_setup_teardown(check_RSA_Encrypt, esys_unit_setup,
  1942. esys_unit_teardown),
  1943. cmocka_unit_test_setup_teardown(check_RSA_Decrypt, esys_unit_setup,
  1944. esys_unit_teardown),
  1945. cmocka_unit_test_setup_teardown(check_ECDH_KeyGen, esys_unit_setup,
  1946. esys_unit_teardown),
  1947. cmocka_unit_test_setup_teardown(check_ECDH_ZGen, esys_unit_setup,
  1948. esys_unit_teardown),
  1949. cmocka_unit_test_setup_teardown(check_ECC_Parameters, esys_unit_setup,
  1950. esys_unit_teardown),
  1951. cmocka_unit_test_setup_teardown(check_ZGen_2Phase, esys_unit_setup,
  1952. esys_unit_teardown),
  1953. cmocka_unit_test_setup_teardown(check_EncryptDecrypt, esys_unit_setup,
  1954. esys_unit_teardown),
  1955. cmocka_unit_test_setup_teardown(check_EncryptDecrypt2, esys_unit_setup,
  1956. esys_unit_teardown),
  1957. cmocka_unit_test_setup_teardown(check_Hash, esys_unit_setup,
  1958. esys_unit_teardown),
  1959. cmocka_unit_test_setup_teardown(check_HMAC, esys_unit_setup,
  1960. esys_unit_teardown),
  1961. cmocka_unit_test_setup_teardown(check_GetRandom, esys_unit_setup,
  1962. esys_unit_teardown),
  1963. cmocka_unit_test_setup_teardown(check_StirRandom, esys_unit_setup,
  1964. esys_unit_teardown),
  1965. cmocka_unit_test_setup_teardown(check_HMAC_Start, esys_unit_setup,
  1966. esys_unit_teardown),
  1967. cmocka_unit_test_setup_teardown(check_HashSequenceStart,
  1968. esys_unit_setup, esys_unit_teardown),
  1969. cmocka_unit_test_setup_teardown(check_SequenceUpdate, esys_unit_setup,
  1970. esys_unit_teardown),
  1971. cmocka_unit_test_setup_teardown(check_SequenceComplete, esys_unit_setup,
  1972. esys_unit_teardown),
  1973. cmocka_unit_test_setup_teardown(check_EventSequenceComplete,
  1974. esys_unit_setup, esys_unit_teardown),
  1975. cmocka_unit_test_setup_teardown(check_Certify, esys_unit_setup,
  1976. esys_unit_teardown),
  1977. cmocka_unit_test_setup_teardown(check_CertifyCreation, esys_unit_setup,
  1978. esys_unit_teardown),
  1979. cmocka_unit_test_setup_teardown(check_Quote, esys_unit_setup,
  1980. esys_unit_teardown),
  1981. cmocka_unit_test_setup_teardown(check_GetSessionAuditDigest,
  1982. esys_unit_setup, esys_unit_teardown),
  1983. cmocka_unit_test_setup_teardown(check_GetCommandAuditDigest,
  1984. esys_unit_setup, esys_unit_teardown),
  1985. cmocka_unit_test_setup_teardown(check_GetTime, esys_unit_setup,
  1986. esys_unit_teardown),
  1987. cmocka_unit_test_setup_teardown(check_Commit, esys_unit_setup,
  1988. esys_unit_teardown),
  1989. cmocka_unit_test_setup_teardown(check_EC_Ephemeral, esys_unit_setup,
  1990. esys_unit_teardown),
  1991. cmocka_unit_test_setup_teardown(check_VerifySignature, esys_unit_setup,
  1992. esys_unit_teardown),
  1993. cmocka_unit_test_setup_teardown(check_Sign, esys_unit_setup,
  1994. esys_unit_teardown),
  1995. cmocka_unit_test_setup_teardown(check_SetCommandCodeAuditStatus,
  1996. esys_unit_setup, esys_unit_teardown),
  1997. cmocka_unit_test_setup_teardown(check_PCR_Extend, esys_unit_setup,
  1998. esys_unit_teardown),
  1999. cmocka_unit_test_setup_teardown(check_PCR_Event, esys_unit_setup,
  2000. esys_unit_teardown),
  2001. cmocka_unit_test_setup_teardown(check_PCR_Read, esys_unit_setup,
  2002. esys_unit_teardown),
  2003. cmocka_unit_test_setup_teardown(check_PCR_Allocate, esys_unit_setup,
  2004. esys_unit_teardown),
  2005. cmocka_unit_test_setup_teardown(check_PCR_SetAuthPolicy,
  2006. esys_unit_setup, esys_unit_teardown),
  2007. cmocka_unit_test_setup_teardown(check_PCR_SetAuthValue, esys_unit_setup,
  2008. esys_unit_teardown),
  2009. cmocka_unit_test_setup_teardown(check_PCR_Reset, esys_unit_setup,
  2010. esys_unit_teardown),
  2011. cmocka_unit_test_setup_teardown(check_PolicySigned, esys_unit_setup,
  2012. esys_unit_teardown),
  2013. cmocka_unit_test_setup_teardown(check_PolicySecret, esys_unit_setup,
  2014. esys_unit_teardown),
  2015. cmocka_unit_test_setup_teardown(check_PolicyTicket, esys_unit_setup,
  2016. esys_unit_teardown),
  2017. cmocka_unit_test_setup_teardown(check_PolicyOR, esys_unit_setup,
  2018. esys_unit_teardown),
  2019. cmocka_unit_test_setup_teardown(check_PolicyPCR, esys_unit_setup,
  2020. esys_unit_teardown),
  2021. cmocka_unit_test_setup_teardown(check_PolicyLocality, esys_unit_setup,
  2022. esys_unit_teardown),
  2023. cmocka_unit_test_setup_teardown(check_PolicyNV, esys_unit_setup,
  2024. esys_unit_teardown),
  2025. cmocka_unit_test_setup_teardown(check_PolicyCounterTimer,
  2026. esys_unit_setup, esys_unit_teardown),
  2027. cmocka_unit_test_setup_teardown(check_PolicyCommandCode,
  2028. esys_unit_setup, esys_unit_teardown),
  2029. cmocka_unit_test_setup_teardown(check_PolicyPhysicalPresence,
  2030. esys_unit_setup, esys_unit_teardown),
  2031. cmocka_unit_test_setup_teardown(check_PolicyCpHash, esys_unit_setup,
  2032. esys_unit_teardown),
  2033. cmocka_unit_test_setup_teardown(check_PolicyNameHash, esys_unit_setup,
  2034. esys_unit_teardown),
  2035. cmocka_unit_test_setup_teardown(check_PolicyDuplicationSelect,
  2036. esys_unit_setup, esys_unit_teardown),
  2037. cmocka_unit_test_setup_teardown(check_PolicyAuthorize, esys_unit_setup,
  2038. esys_unit_teardown),
  2039. cmocka_unit_test_setup_teardown(check_PolicyAuthValue, esys_unit_setup,
  2040. esys_unit_teardown),
  2041. cmocka_unit_test_setup_teardown(check_PolicyPassword, esys_unit_setup,
  2042. esys_unit_teardown),
  2043. cmocka_unit_test_setup_teardown(check_PolicyGetDigest, esys_unit_setup,
  2044. esys_unit_teardown),
  2045. cmocka_unit_test_setup_teardown(check_PolicyNvWritten, esys_unit_setup,
  2046. esys_unit_teardown),
  2047. cmocka_unit_test_setup_teardown(check_PolicyTemplate, esys_unit_setup,
  2048. esys_unit_teardown),
  2049. cmocka_unit_test_setup_teardown(check_PolicyAuthorizeNV,
  2050. esys_unit_setup, esys_unit_teardown),
  2051. cmocka_unit_test_setup_teardown(check_CreatePrimary, esys_unit_setup,
  2052. esys_unit_teardown),
  2053. cmocka_unit_test_setup_teardown(check_HierarchyControl, esys_unit_setup,
  2054. esys_unit_teardown),
  2055. cmocka_unit_test_setup_teardown(check_SetPrimaryPolicy, esys_unit_setup,
  2056. esys_unit_teardown),
  2057. cmocka_unit_test_setup_teardown(check_ChangePPS, esys_unit_setup,
  2058. esys_unit_teardown),
  2059. cmocka_unit_test_setup_teardown(check_ChangeEPS, esys_unit_setup,
  2060. esys_unit_teardown),
  2061. cmocka_unit_test_setup_teardown(check_Clear, esys_unit_setup,
  2062. esys_unit_teardown),
  2063. cmocka_unit_test_setup_teardown(check_ClearControl, esys_unit_setup,
  2064. esys_unit_teardown),
  2065. cmocka_unit_test_setup_teardown(check_HierarchyChangeAuth,
  2066. esys_unit_setup, esys_unit_teardown),
  2067. cmocka_unit_test_setup_teardown(check_DictionaryAttackLockReset,
  2068. esys_unit_setup, esys_unit_teardown),
  2069. cmocka_unit_test_setup_teardown(check_DictionaryAttackParameters,
  2070. esys_unit_setup, esys_unit_teardown),
  2071. cmocka_unit_test_setup_teardown(check_PP_Commands, esys_unit_setup,
  2072. esys_unit_teardown),
  2073. cmocka_unit_test_setup_teardown(check_SetAlgorithmSet, esys_unit_setup,
  2074. esys_unit_teardown),
  2075. cmocka_unit_test_setup_teardown(check_FieldUpgradeStart,
  2076. esys_unit_setup, esys_unit_teardown),
  2077. cmocka_unit_test_setup_teardown(check_FieldUpgradeData, esys_unit_setup,
  2078. esys_unit_teardown),
  2079. cmocka_unit_test_setup_teardown(check_FirmwareRead, esys_unit_setup,
  2080. esys_unit_teardown),
  2081. cmocka_unit_test_setup_teardown(check_ContextSave, esys_unit_setup,
  2082. esys_unit_teardown),
  2083. cmocka_unit_test_setup_teardown(check_ContextLoad, esys_unit_setup,
  2084. esys_unit_teardown),
  2085. cmocka_unit_test_setup_teardown(check_FlushContext, esys_unit_setup,
  2086. esys_unit_teardown),
  2087. cmocka_unit_test_setup_teardown(check_EvictControl, esys_unit_setup,
  2088. esys_unit_teardown),
  2089. cmocka_unit_test_setup_teardown(check_ReadClock, esys_unit_setup,
  2090. esys_unit_teardown),
  2091. cmocka_unit_test_setup_teardown(check_ClockSet, esys_unit_setup,
  2092. esys_unit_teardown),
  2093. cmocka_unit_test_setup_teardown(check_ClockRateAdjust, esys_unit_setup,
  2094. esys_unit_teardown),
  2095. cmocka_unit_test_setup_teardown(check_GetCapability, esys_unit_setup,
  2096. esys_unit_teardown),
  2097. cmocka_unit_test_setup_teardown(check_TestParms, esys_unit_setup,
  2098. esys_unit_teardown),
  2099. cmocka_unit_test_setup_teardown(check_NV_DefineSpace, esys_unit_setup,
  2100. esys_unit_teardown),
  2101. cmocka_unit_test_setup_teardown(check_NV_UndefineSpace, esys_unit_setup,
  2102. esys_unit_teardown),
  2103. cmocka_unit_test_setup_teardown(check_NV_UndefineSpaceSpecial,
  2104. esys_unit_setup, esys_unit_teardown),
  2105. cmocka_unit_test_setup_teardown(check_NV_ReadPublic, esys_unit_setup,
  2106. esys_unit_teardown),
  2107. cmocka_unit_test_setup_teardown(check_NV_Write, esys_unit_setup,
  2108. esys_unit_teardown),
  2109. cmocka_unit_test_setup_teardown(check_NV_Increment, esys_unit_setup,
  2110. esys_unit_teardown),
  2111. cmocka_unit_test_setup_teardown(check_NV_Extend, esys_unit_setup,
  2112. esys_unit_teardown),
  2113. cmocka_unit_test_setup_teardown(check_NV_SetBits, esys_unit_setup,
  2114. esys_unit_teardown),
  2115. cmocka_unit_test_setup_teardown(check_NV_WriteLock, esys_unit_setup,
  2116. esys_unit_teardown),
  2117. cmocka_unit_test_setup_teardown(check_NV_GlobalWriteLock,
  2118. esys_unit_setup, esys_unit_teardown),
  2119. cmocka_unit_test_setup_teardown(check_NV_Read, esys_unit_setup,
  2120. esys_unit_teardown),
  2121. cmocka_unit_test_setup_teardown(check_NV_ReadLock, esys_unit_setup,
  2122. esys_unit_teardown),
  2123. cmocka_unit_test_setup_teardown(check_NV_ChangeAuth, esys_unit_setup,
  2124. esys_unit_teardown),
  2125. cmocka_unit_test_setup_teardown(check_NV_Certify, esys_unit_setup,
  2126. esys_unit_teardown),
  2127. cmocka_unit_test_setup_teardown(check_Vendor_TCG_Test, esys_unit_setup,
  2128. esys_unit_teardown),
  2129. };
  2130. return cmocka_run_group_tests(tests, NULL, NULL);
  2131. }