esys-tcti-rcs.c 89 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674
  1. /* SPDX-License-Identifier: BSD-2-Clause */
  2. /*******************************************************************************
  3. * Copyright 2017-2018, Fraunhofer SIT sponsored by Infineon Technologies AG All
  4. * rights reserved.
  5. ******************************************************************************/
  6. #ifdef HAVE_CONFIG_H
  7. #include <config.h>
  8. #endif
  9. #include <stdarg.h>
  10. #include <inttypes.h>
  11. #include <string.h>
  12. #include <stdlib.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. #include "esys-dummy-defs.h"
  21. /**
  22. * This unit test looks into a set of Esys_<cmd>() functions and tests the
  23. * resubmission behaviour. The ESAPI is expected to resubmit a command for a
  24. * certain number of times if the TPM return RC_YIELDED. After this number of
  25. * times, the ESAPI shall not try it any further but return the TPM's error.
  26. * For all these resubmissions the command must be the same as before.
  27. * This shall be extended to cover all functions at some point.
  28. */
  29. #define TCTI_TRYAGAINERROR_MAGIC 0x5441455252000000ULL /* 'TAERR\0' */
  30. #define TCTI_TRYAGAINERROR_VERSION 0x1
  31. typedef struct {
  32. uint64_t magic;
  33. uint32_t version;
  34. TSS2_TCTI_TRANSMIT_FCN transmit;
  35. TSS2_TCTI_RECEIVE_FCN receive;
  36. TSS2_RC(*finalize) (TSS2_TCTI_CONTEXT * tctiContext);
  37. TSS2_RC(*cancel) (TSS2_TCTI_CONTEXT * tctiContext);
  38. TSS2_RC(*getPollHandles) (TSS2_TCTI_CONTEXT * tctiContext,
  39. TSS2_TCTI_POLL_HANDLE * handles,
  40. size_t * num_handles);
  41. TSS2_RC(*setLocality) (TSS2_TCTI_CONTEXT * tctiContext, uint8_t locality);
  42. uint32_t count;
  43. } TSS2_TCTI_CONTEXT_TRYAGAINERROR;
  44. static TSS2_TCTI_CONTEXT_TRYAGAINERROR *
  45. tcti_tryagainerror_cast(TSS2_TCTI_CONTEXT * ctx)
  46. {
  47. TSS2_TCTI_CONTEXT_TRYAGAINERROR *ctxi = (TSS2_TCTI_CONTEXT_TRYAGAINERROR *) ctx;
  48. if (ctxi == NULL || ctxi->magic != TCTI_TRYAGAINERROR_MAGIC) {
  49. LOG_ERROR("Bad tcti passed.");
  50. exit(1);
  51. }
  52. return ctxi;
  53. }
  54. static TSS2_RC
  55. tcti_tryagainerror_transmit(TSS2_TCTI_CONTEXT * tctiContext,
  56. size_t size, const uint8_t * buffer)
  57. {
  58. TSS2_TCTI_CONTEXT_TRYAGAINERROR *tcti = tcti_tryagainerror_cast(tctiContext);
  59. /* First call to transmit on this context */
  60. if (tcti->count == 0)
  61. return TSS2_RC_SUCCESS;
  62. if (tcti->count == 2)
  63. return TSS2_RC_SUCCESS;
  64. LOG_ERROR("Expected 2 receives before the next transmit, but %" PRIu32
  65. "receives occurred.", tcti->count);
  66. return TSS2_TCTI_RC_GENERAL_FAILURE;
  67. }
  68. static TSS2_RC
  69. tcti_tryagainerror_receive(TSS2_TCTI_CONTEXT * tctiContext,
  70. size_t * response_size,
  71. uint8_t * response_buffer, int32_t timeout)
  72. {
  73. TSS2_TCTI_CONTEXT_TRYAGAINERROR *tcti = tcti_tryagainerror_cast(tctiContext);
  74. UNUSED(response_size);
  75. UNUSED(response_buffer);
  76. UNUSED(timeout);
  77. tcti->count++;
  78. if (tcti->count == 1)
  79. return TSS2_TCTI_RC_TRY_AGAIN;
  80. else
  81. return TSS2_TCTI_RC_NO_CONNECTION;
  82. }
  83. static void
  84. tcti_tryagainerror_finalize(TSS2_TCTI_CONTEXT * tctiContext)
  85. {
  86. TSS2_TCTI_CONTEXT_TRYAGAINERROR *tcti = tcti_tryagainerror_cast(tctiContext);
  87. if (tcti->count != 2) {
  88. LOG_ERROR("Expected 2 receives before the next transmit, but %" PRIu32
  89. "receives occurred.", tcti->count);
  90. exit(1);
  91. }
  92. }
  93. static TSS2_RC
  94. tcti_tryagainerror_initialize(TSS2_TCTI_CONTEXT * tctiContext, size_t * contextSize)
  95. {
  96. TSS2_TCTI_CONTEXT_TRYAGAINERROR *tcti_tryagainerror =
  97. (TSS2_TCTI_CONTEXT_TRYAGAINERROR *) tctiContext;
  98. if (tctiContext == NULL && contextSize == NULL) {
  99. return TSS2_TCTI_RC_BAD_VALUE;
  100. } else if (tctiContext == NULL) {
  101. *contextSize = sizeof(*tcti_tryagainerror);
  102. return TSS2_RC_SUCCESS;
  103. }
  104. /* Init TCTI context */
  105. memset(tcti_tryagainerror, 0, sizeof(*tcti_tryagainerror));
  106. TSS2_TCTI_MAGIC(tctiContext) = TCTI_TRYAGAINERROR_MAGIC;
  107. TSS2_TCTI_VERSION(tctiContext) = TCTI_TRYAGAINERROR_VERSION;
  108. TSS2_TCTI_TRANSMIT(tctiContext) = tcti_tryagainerror_transmit;
  109. TSS2_TCTI_RECEIVE(tctiContext) = tcti_tryagainerror_receive;
  110. TSS2_TCTI_FINALIZE(tctiContext) = tcti_tryagainerror_finalize;
  111. TSS2_TCTI_CANCEL(tctiContext) = NULL;
  112. TSS2_TCTI_GET_POLL_HANDLES(tctiContext) = NULL;
  113. TSS2_TCTI_SET_LOCALITY(tctiContext) = NULL;
  114. tcti_tryagainerror->count = 0;
  115. return TSS2_RC_SUCCESS;
  116. }
  117. static int
  118. setup(void **state)
  119. {
  120. TSS2_RC r;
  121. ESYS_CONTEXT *ectx;
  122. size_t size = sizeof(TSS2_TCTI_CONTEXT_TRYAGAINERROR);
  123. TSS2_TCTI_CONTEXT *tcti = malloc(size);
  124. ESYS_TR objectHandle;
  125. RSRC_NODE_T *objectHandleNode = NULL;
  126. r = tcti_tryagainerror_initialize(tcti, &size);
  127. if (r)
  128. return (int)r;
  129. r = Esys_Initialize(&ectx, tcti, NULL);
  130. if (r)
  131. return (int)r;
  132. /* Create dummy object to enable usage of SAPI prepare functions in the tests */
  133. objectHandle = DUMMY_TR_HANDLE_POLICY_SESSION;
  134. r = esys_CreateResourceObject(ectx, objectHandle, &objectHandleNode);
  135. if (r)
  136. return (int)r;
  137. objectHandleNode->rsrc.rsrcType = IESYSC_SESSION_RSRC;
  138. objectHandleNode->rsrc.handle = TPM2_POLICY_SESSION_FIRST;
  139. objectHandle = DUMMY_TR_HANDLE_HMAC_SESSION;
  140. r = esys_CreateResourceObject(ectx, objectHandle, &objectHandleNode);
  141. if (r)
  142. return (int)r;
  143. objectHandleNode->rsrc.rsrcType = IESYSC_SESSION_RSRC;
  144. objectHandleNode->rsrc.handle = TPM2_HMAC_SESSION_FIRST;
  145. objectHandle = DUMMY_TR_HANDLE_KEY;
  146. r = esys_CreateResourceObject(ectx, objectHandle, &objectHandleNode);
  147. if (r)
  148. return (int)r;
  149. objectHandleNode->rsrc.rsrcType = IESYSC_KEY_RSRC;
  150. objectHandleNode->rsrc.handle = TPM2_TRANSIENT_FIRST;
  151. objectHandle = DUMMY_TR_HANDLE_HIERARCHY_OWNER;
  152. r = esys_CreateResourceObject(ectx, objectHandle, &objectHandleNode);
  153. if (r)
  154. return (int)r;
  155. objectHandleNode->rsrc.rsrcType = IESYSC_WITHOUT_MISC_RSRC;
  156. objectHandleNode->rsrc.handle = TPM2_RH_OWNER;
  157. objectHandle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  158. r = esys_CreateResourceObject(ectx, objectHandle, &objectHandleNode);
  159. if (r)
  160. return (int)r;
  161. objectHandleNode->rsrc.rsrcType = IESYSC_WITHOUT_MISC_RSRC;
  162. objectHandleNode->rsrc.handle = TPM2_RH_PLATFORM;
  163. objectHandle = DUMMY_TR_HANDLE_LOCKOUT;
  164. r = esys_CreateResourceObject(ectx, objectHandle, &objectHandleNode);
  165. if (r)
  166. return (int)r;
  167. objectHandleNode->rsrc.rsrcType = IESYSC_WITHOUT_MISC_RSRC;
  168. objectHandleNode->rsrc.handle = TPM2_RH_LOCKOUT;
  169. objectHandle = DUMMY_TR_HANDLE_NV_INDEX;
  170. r = esys_CreateResourceObject(ectx, objectHandle, &objectHandleNode);
  171. if (r)
  172. return (int)r;
  173. objectHandleNode->rsrc.rsrcType = IESYSC_WITHOUT_MISC_RSRC;
  174. objectHandleNode->rsrc.handle = TPM2_NV_INDEX_FIRST;
  175. objectHandle = DUMMY_TR_HANDLE_PRIVACY_ADMIN;
  176. r = esys_CreateResourceObject(ectx, objectHandle, &objectHandleNode);
  177. if (r)
  178. return (int)r;
  179. objectHandleNode->rsrc.rsrcType = IESYSC_WITHOUT_MISC_RSRC;
  180. objectHandleNode->rsrc.handle = TPM2_RH_ENDORSEMENT;
  181. *state = (void *)ectx;
  182. return 0;
  183. }
  184. static int
  185. teardown(void **state)
  186. {
  187. TSS2_TCTI_CONTEXT *tcti;
  188. ESYS_CONTEXT *ectx = (ESYS_CONTEXT *) * state;
  189. Esys_GetTcti(ectx, &tcti);
  190. Esys_Finalize(&ectx);
  191. free(tcti);
  192. return 0;
  193. }
  194. static void
  195. test_Startup(void **state)
  196. {
  197. TSS2_RC r;
  198. TSS2_TCTI_CONTEXT *tcti;
  199. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  200. Esys_GetTcti(esys_context, &tcti);
  201. TPM2_SU startupType = TPM2_SU_CLEAR;
  202. r = Esys_Startup(esys_context, startupType);
  203. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  204. }
  205. static void
  206. test_Shutdown(void **state)
  207. {
  208. TSS2_RC r;
  209. TSS2_TCTI_CONTEXT *tcti;
  210. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  211. Esys_GetTcti(esys_context, &tcti);
  212. TPM2_SU shutdownType = TPM2_SU_CLEAR;
  213. r = Esys_Shutdown(esys_context,
  214. ESYS_TR_NONE, ESYS_TR_NONE, ESYS_TR_NONE, shutdownType);
  215. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  216. }
  217. static void
  218. test_SelfTest(void **state)
  219. {
  220. TSS2_RC r;
  221. TSS2_TCTI_CONTEXT *tcti;
  222. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  223. Esys_GetTcti(esys_context, &tcti);
  224. r = Esys_SelfTest(esys_context,
  225. ESYS_TR_NONE, ESYS_TR_NONE, ESYS_TR_NONE, 0);
  226. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  227. }
  228. static void
  229. test_IncrementalSelfTest(void **state)
  230. {
  231. TSS2_RC r;
  232. TSS2_TCTI_CONTEXT *tcti;
  233. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  234. Esys_GetTcti(esys_context, &tcti);
  235. TPML_ALG toTest = {0};
  236. TPML_ALG *toDoList = {0} ;
  237. r = Esys_IncrementalSelfTest(esys_context,
  238. ESYS_TR_NONE,
  239. ESYS_TR_NONE,
  240. ESYS_TR_NONE, &toTest, &toDoList);
  241. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  242. }
  243. static void
  244. test_GetTestResult(void **state)
  245. {
  246. TSS2_RC r;
  247. TSS2_TCTI_CONTEXT *tcti;
  248. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  249. Esys_GetTcti(esys_context, &tcti);
  250. TPM2B_MAX_BUFFER *outData;
  251. TPM2_RC testResult;
  252. r = Esys_GetTestResult(esys_context,
  253. ESYS_TR_NONE,
  254. ESYS_TR_NONE, ESYS_TR_NONE, &outData, &testResult);
  255. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  256. }
  257. static void
  258. test_StartAuthSession(void **state)
  259. {
  260. TSS2_RC r;
  261. TSS2_TCTI_CONTEXT *tcti;
  262. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  263. Esys_GetTcti(esys_context, &tcti);
  264. ESYS_TR tpmKey_handle = ESYS_TR_NONE;
  265. ESYS_TR bind_handle = ESYS_TR_NONE;
  266. TPM2B_NONCE nonceCaller = DUMMY_2B_DATA(.buffer);
  267. TPM2_SE sessionType = TPM2_SE_HMAC;
  268. TPMT_SYM_DEF symmetric = {.algorithm = TPM2_ALG_AES,
  269. .keyBits = {.aes = 128},
  270. .mode = {.aes = TPM2_ALG_CFB}
  271. };
  272. TPMI_ALG_HASH authHash = TPM2_ALG_SHA1;
  273. ESYS_TR sessionHandle_handle;
  274. r = Esys_StartAuthSession(esys_context,
  275. tpmKey_handle,
  276. bind_handle,
  277. ESYS_TR_NONE,
  278. ESYS_TR_NONE,
  279. ESYS_TR_NONE,
  280. &nonceCaller,
  281. sessionType,
  282. &symmetric,
  283. authHash, &sessionHandle_handle);
  284. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  285. }
  286. static void
  287. test_PolicyRestart(void **state)
  288. {
  289. TSS2_RC r;
  290. TSS2_TCTI_CONTEXT *tcti;
  291. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  292. Esys_GetTcti(esys_context, &tcti);
  293. r = Esys_PolicyRestart(esys_context,
  294. DUMMY_TR_HANDLE_POLICY_SESSION,
  295. ESYS_TR_NONE, ESYS_TR_NONE, ESYS_TR_NONE);
  296. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  297. }
  298. static void
  299. test_Create(void **state)
  300. {
  301. TSS2_RC r;
  302. TSS2_TCTI_CONTEXT *tcti;
  303. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  304. Esys_GetTcti(esys_context, &tcti);
  305. TPM2B_SENSITIVE_CREATE inSensitive = { 0 };
  306. TPM2B_PUBLIC inPublic = DUMMY_IN_PUBLIC_DATA;
  307. TPM2B_DATA outsideInfo = DUMMY_2B_DATA0;
  308. TPML_PCR_SELECTION creationPCR = {
  309. .count = 0,
  310. };
  311. TPM2B_PRIVATE *outPrivate;
  312. TPM2B_PUBLIC *outPublic;
  313. TPM2B_CREATION_DATA *creationData;
  314. TPM2B_DIGEST *creationHash;
  315. TPMT_TK_CREATION *creationTicket;
  316. r = Esys_Create(esys_context,
  317. DUMMY_TR_HANDLE_KEY,
  318. ESYS_TR_PASSWORD,
  319. ESYS_TR_NONE,
  320. ESYS_TR_NONE,
  321. &inSensitive,
  322. &inPublic,
  323. &outsideInfo,
  324. &creationPCR,
  325. &outPrivate,
  326. &outPublic, &creationData, &creationHash, &creationTicket);
  327. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  328. }
  329. static void
  330. test_Load(void **state)
  331. {
  332. TSS2_RC r;
  333. TSS2_TCTI_CONTEXT *tcti;
  334. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  335. Esys_GetTcti(esys_context, &tcti);
  336. TPM2B_PRIVATE inPrivate = DUMMY_2B_DATA(.buffer);
  337. TPM2B_PUBLIC inPublic = DUMMY_IN_PUBLIC_DATA;
  338. ESYS_TR objectHandle_handle;
  339. r = Esys_Load(esys_context,
  340. DUMMY_TR_HANDLE_KEY,
  341. ESYS_TR_PASSWORD,
  342. ESYS_TR_NONE,
  343. ESYS_TR_NONE, &inPrivate, &inPublic, &objectHandle_handle);
  344. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  345. }
  346. static void
  347. test_LoadExternal(void **state)
  348. {
  349. TSS2_RC r;
  350. TSS2_TCTI_CONTEXT *tcti;
  351. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  352. Esys_GetTcti(esys_context, &tcti);
  353. TPM2B_PUBLIC inPublic = DUMMY_IN_PUBLIC_DATA;
  354. ESYS_TR objectHandle_handle;
  355. r = Esys_LoadExternal(esys_context,
  356. ESYS_TR_NONE,
  357. ESYS_TR_NONE,
  358. ESYS_TR_NONE,
  359. NULL, &inPublic, ESYS_TR_RH_OWNER, &objectHandle_handle);
  360. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  361. }
  362. static void
  363. test_ReadPublic(void **state)
  364. {
  365. TSS2_RC r;
  366. TSS2_TCTI_CONTEXT *tcti;
  367. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  368. Esys_GetTcti(esys_context, &tcti);
  369. ESYS_TR objectHandle_handle = DUMMY_TR_HANDLE_KEY;
  370. TPM2B_PUBLIC *outPublic;
  371. TPM2B_NAME *name;
  372. TPM2B_NAME *qualifiedName;
  373. r = Esys_ReadPublic(esys_context,
  374. objectHandle_handle,
  375. ESYS_TR_NONE,
  376. ESYS_TR_NONE,
  377. ESYS_TR_NONE, &outPublic, &name, &qualifiedName);
  378. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  379. }
  380. static void
  381. test_ActivateCredential(void **state)
  382. {
  383. TSS2_RC r;
  384. TSS2_TCTI_CONTEXT *tcti;
  385. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  386. Esys_GetTcti(esys_context, &tcti);
  387. ESYS_TR activateHandle_handle = DUMMY_TR_HANDLE_KEY;
  388. ESYS_TR keyHandle_handle = DUMMY_TR_HANDLE_KEY;
  389. TPM2B_ID_OBJECT credentialBlob = DUMMY_2B_DATA(.credential);
  390. TPM2B_ENCRYPTED_SECRET secret = DUMMY_2B_DATA(.secret);;
  391. TPM2B_DIGEST *certInfo;
  392. r = Esys_ActivateCredential(esys_context,
  393. activateHandle_handle,
  394. keyHandle_handle,
  395. ESYS_TR_PASSWORD,
  396. ESYS_TR_PASSWORD,
  397. ESYS_TR_NONE,
  398. &credentialBlob, &secret, &certInfo);
  399. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  400. }
  401. static void
  402. test_MakeCredential(void **state)
  403. {
  404. TSS2_RC r;
  405. TSS2_TCTI_CONTEXT *tcti;
  406. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  407. Esys_GetTcti(esys_context, &tcti);
  408. ESYS_TR handle_handle = ESYS_TR_NONE;
  409. TPM2B_DIGEST credential = DUMMY_2B_DATA(.buffer);
  410. TPM2B_NAME objectName = DUMMY_2B_DATA(.name);;
  411. TPM2B_ID_OBJECT *credentialBlob;
  412. TPM2B_ENCRYPTED_SECRET *secret;
  413. r = Esys_MakeCredential(esys_context,
  414. handle_handle,
  415. ESYS_TR_NONE,
  416. ESYS_TR_NONE,
  417. ESYS_TR_NONE,
  418. &credential, &objectName, &credentialBlob, &secret);
  419. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  420. }
  421. static void
  422. test_Unseal(void **state)
  423. {
  424. TSS2_RC r;
  425. TSS2_TCTI_CONTEXT *tcti;
  426. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  427. Esys_GetTcti(esys_context, &tcti);
  428. ESYS_TR itemHandle_handle = DUMMY_TR_HANDLE_KEY;
  429. TPM2B_SENSITIVE_DATA *outData;
  430. r = Esys_Unseal(esys_context,
  431. itemHandle_handle,
  432. ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE, &outData);
  433. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  434. }
  435. static void
  436. test_ObjectChangeAuth(void **state)
  437. {
  438. TSS2_RC r;
  439. TSS2_TCTI_CONTEXT *tcti;
  440. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  441. Esys_GetTcti(esys_context, &tcti);
  442. ESYS_TR objectHandle_handle = DUMMY_TR_HANDLE_KEY;
  443. ESYS_TR parentHandle_handle = DUMMY_TR_HANDLE_KEY;
  444. TPM2B_AUTH newAuth = DUMMY_2B_DATA(.buffer);
  445. TPM2B_PRIVATE *outPrivate;
  446. r = Esys_ObjectChangeAuth(esys_context,
  447. objectHandle_handle,
  448. parentHandle_handle,
  449. ESYS_TR_PASSWORD,
  450. ESYS_TR_NONE,
  451. ESYS_TR_NONE, &newAuth, &outPrivate);
  452. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  453. }
  454. static void
  455. test_Duplicate(void **state)
  456. {
  457. TSS2_RC r;
  458. TSS2_TCTI_CONTEXT *tcti;
  459. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  460. Esys_GetTcti(esys_context, &tcti);
  461. ESYS_TR objectHandle_handle = DUMMY_TR_HANDLE_KEY;
  462. ESYS_TR newParentHandle_handle = DUMMY_TR_HANDLE_KEY;
  463. TPM2B_DATA encryptionKeyIn = DUMMY_2B_DATA(.buffer);
  464. TPMT_SYM_DEF_OBJECT symmetricAlg = DUMMY_SYMMETRIC;
  465. TPM2B_DATA *encryptionKeyOut;
  466. TPM2B_PRIVATE *duplicate;
  467. TPM2B_ENCRYPTED_SECRET *outSymSeed;
  468. r = Esys_Duplicate(esys_context,
  469. objectHandle_handle,
  470. newParentHandle_handle,
  471. ESYS_TR_PASSWORD,
  472. ESYS_TR_NONE,
  473. ESYS_TR_NONE,
  474. &encryptionKeyIn,
  475. &symmetricAlg,
  476. &encryptionKeyOut, &duplicate, &outSymSeed);
  477. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  478. }
  479. static void
  480. test_Rewrap(void **state)
  481. {
  482. TSS2_RC r;
  483. TSS2_TCTI_CONTEXT *tcti;
  484. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  485. Esys_GetTcti(esys_context, &tcti);
  486. ESYS_TR oldParent_handle = DUMMY_TR_HANDLE_KEY;
  487. ESYS_TR newParent_handle = DUMMY_TR_HANDLE_KEY;
  488. TPM2B_PRIVATE inDuplicate = DUMMY_2B_DATA(.buffer);
  489. TPM2B_NAME name = DUMMY_2B_DATA(.name);
  490. TPM2B_ENCRYPTED_SECRET inSymSeed = DUMMY_2B_DATA(.secret);
  491. TPM2B_PRIVATE *outDuplicate;
  492. TPM2B_ENCRYPTED_SECRET *outSymSeed;
  493. r = Esys_Rewrap(esys_context,
  494. oldParent_handle,
  495. newParent_handle,
  496. ESYS_TR_PASSWORD,
  497. ESYS_TR_NONE,
  498. ESYS_TR_NONE,
  499. &inDuplicate,
  500. &name, &inSymSeed, &outDuplicate, &outSymSeed);
  501. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  502. }
  503. static void
  504. test_Import(void **state)
  505. {
  506. TSS2_RC r;
  507. TSS2_TCTI_CONTEXT *tcti;
  508. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  509. Esys_GetTcti(esys_context, &tcti);
  510. ESYS_TR parentHandle_handle = DUMMY_TR_HANDLE_KEY;
  511. TPM2B_DATA encryptionKey = DUMMY_2B_DATA(.buffer);
  512. TPM2B_PUBLIC objectPublic = DUMMY_IN_PUBLIC_DATA;
  513. TPM2B_PRIVATE duplicate = DUMMY_2B_DATA(.buffer);
  514. TPM2B_ENCRYPTED_SECRET inSymSeed = DUMMY_2B_DATA(.secret);
  515. TPMT_SYM_DEF_OBJECT symmetricAlg = DUMMY_SYMMETRIC;
  516. TPM2B_PRIVATE *outPrivate;
  517. r = Esys_Import(esys_context,
  518. parentHandle_handle,
  519. ESYS_TR_PASSWORD,
  520. ESYS_TR_NONE,
  521. ESYS_TR_NONE,
  522. &encryptionKey,
  523. &objectPublic,
  524. &duplicate, &inSymSeed, &symmetricAlg, &outPrivate);
  525. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  526. }
  527. static void
  528. test_RSA_Encrypt(void **state)
  529. {
  530. TSS2_RC r;
  531. TSS2_TCTI_CONTEXT *tcti;
  532. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  533. Esys_GetTcti(esys_context, &tcti);
  534. ESYS_TR keyHandle_handle = DUMMY_TR_HANDLE_KEY;
  535. TPM2B_PUBLIC_KEY_RSA message = DUMMY_2B_DATA(.buffer);
  536. TPMT_RSA_DECRYPT inScheme = DUMMY_RSA_DECRYPT;
  537. TPM2B_DATA label = DUMMY_2B_DATA(.buffer);
  538. TPM2B_PUBLIC_KEY_RSA *outData;
  539. r = Esys_RSA_Encrypt(esys_context,
  540. keyHandle_handle,
  541. ESYS_TR_NONE,
  542. ESYS_TR_NONE,
  543. ESYS_TR_NONE, &message, &inScheme, &label, &outData);
  544. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  545. }
  546. static void
  547. test_RSA_Decrypt(void **state)
  548. {
  549. TSS2_RC r;
  550. TSS2_TCTI_CONTEXT *tcti;
  551. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  552. Esys_GetTcti(esys_context, &tcti);
  553. ESYS_TR keyHandle_handle = DUMMY_TR_HANDLE_KEY;
  554. TPM2B_PUBLIC_KEY_RSA cipherText = DUMMY_2B_DATA(.buffer);
  555. TPMT_RSA_DECRYPT inScheme = DUMMY_RSA_DECRYPT;
  556. TPM2B_DATA label = DUMMY_2B_DATA(.buffer);
  557. TPM2B_PUBLIC_KEY_RSA *message;
  558. r = Esys_RSA_Decrypt(esys_context,
  559. keyHandle_handle,
  560. ESYS_TR_PASSWORD,
  561. ESYS_TR_NONE,
  562. ESYS_TR_NONE,
  563. &cipherText, &inScheme, &label, &message);
  564. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  565. }
  566. static void
  567. test_ECDH_KeyGen(void **state)
  568. {
  569. TSS2_RC r;
  570. TSS2_TCTI_CONTEXT *tcti;
  571. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  572. Esys_GetTcti(esys_context, &tcti);
  573. ESYS_TR keyHandle_handle = DUMMY_TR_HANDLE_KEY;
  574. TPM2B_ECC_POINT *zPoint;
  575. TPM2B_ECC_POINT *pubPoint;
  576. r = Esys_ECDH_KeyGen(esys_context,
  577. keyHandle_handle,
  578. ESYS_TR_NONE,
  579. ESYS_TR_NONE, ESYS_TR_NONE, &zPoint, &pubPoint);
  580. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  581. }
  582. static void
  583. test_ECDH_ZGen(void **state)
  584. {
  585. TSS2_RC r;
  586. TSS2_TCTI_CONTEXT *tcti;
  587. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  588. Esys_GetTcti(esys_context, &tcti);
  589. ESYS_TR keyHandle_handle = DUMMY_TR_HANDLE_KEY;
  590. TPM2B_ECC_POINT inPoint = { 0 };
  591. TPM2B_ECC_POINT *outPoint;
  592. r = Esys_ECDH_ZGen(esys_context,
  593. keyHandle_handle,
  594. ESYS_TR_PASSWORD,
  595. ESYS_TR_NONE, ESYS_TR_NONE, &inPoint, &outPoint);
  596. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  597. }
  598. static void
  599. test_ECC_Parameters(void **state)
  600. {
  601. TSS2_RC r;
  602. TSS2_TCTI_CONTEXT *tcti;
  603. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  604. Esys_GetTcti(esys_context, &tcti);
  605. TPMI_ECC_CURVE curveID = TPM2_ECC_BN_P256;
  606. TPMS_ALGORITHM_DETAIL_ECC *parameters;
  607. r = Esys_ECC_Parameters(esys_context,
  608. ESYS_TR_NONE,
  609. ESYS_TR_NONE, ESYS_TR_NONE, curveID, &parameters);
  610. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  611. }
  612. static void
  613. test_ZGen_2Phase(void **state)
  614. {
  615. TSS2_RC r;
  616. TSS2_TCTI_CONTEXT *tcti;
  617. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  618. Esys_GetTcti(esys_context, &tcti);
  619. ESYS_TR keyA_handle = DUMMY_TR_HANDLE_KEY;
  620. TPM2B_ECC_POINT inQsB = { 0 };
  621. TPM2B_ECC_POINT inQeB = { 0 };
  622. TPMI_ECC_KEY_EXCHANGE inScheme = TPM2_ALG_NULL;
  623. UINT16 counter = 0;
  624. TPM2B_ECC_POINT *outZ1;
  625. TPM2B_ECC_POINT *outZ2;
  626. r = Esys_ZGen_2Phase(esys_context,
  627. keyA_handle,
  628. ESYS_TR_PASSWORD,
  629. ESYS_TR_NONE,
  630. ESYS_TR_NONE,
  631. &inQsB, &inQeB, inScheme, counter, &outZ1, &outZ2);
  632. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  633. }
  634. static void
  635. test_EncryptDecrypt(void **state)
  636. {
  637. TSS2_RC r;
  638. TSS2_TCTI_CONTEXT *tcti;
  639. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  640. Esys_GetTcti(esys_context, &tcti);
  641. ESYS_TR keyHandle_handle = DUMMY_TR_HANDLE_KEY;
  642. TPMI_YES_NO decrypt = 0;
  643. TPMI_ALG_CIPHER_MODE mode = TPM2_ALG_NULL;
  644. TPM2B_IV ivIn = DUMMY_2B_DATA16(.buffer);
  645. TPM2B_MAX_BUFFER inData = DUMMY_2B_DATA(.buffer);
  646. TPM2B_MAX_BUFFER *outData;
  647. TPM2B_IV *ivOut;
  648. r = Esys_EncryptDecrypt(esys_context,
  649. keyHandle_handle,
  650. ESYS_TR_PASSWORD,
  651. ESYS_TR_NONE,
  652. ESYS_TR_NONE,
  653. decrypt, mode, &ivIn, &inData, &outData, &ivOut);
  654. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  655. }
  656. static void
  657. test_EncryptDecrypt2(void **state)
  658. {
  659. TSS2_RC r;
  660. TSS2_TCTI_CONTEXT *tcti;
  661. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  662. Esys_GetTcti(esys_context, &tcti);
  663. ESYS_TR keyHandle_handle = DUMMY_TR_HANDLE_KEY;
  664. TPM2B_MAX_BUFFER inData = DUMMY_2B_DATA(.buffer);
  665. TPMI_YES_NO decrypt = 0;
  666. TPMI_ALG_CIPHER_MODE mode = TPM2_ALG_NULL;
  667. TPM2B_IV ivIn = DUMMY_2B_DATA16(.buffer);
  668. TPM2B_MAX_BUFFER *outData;
  669. TPM2B_IV *ivOut;
  670. r = Esys_EncryptDecrypt2(esys_context,
  671. keyHandle_handle,
  672. ESYS_TR_PASSWORD,
  673. ESYS_TR_NONE,
  674. ESYS_TR_NONE,
  675. &inData, decrypt, mode, &ivIn, &outData, &ivOut);
  676. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  677. }
  678. static void
  679. test_Hash(void **state)
  680. {
  681. TSS2_RC r;
  682. TSS2_TCTI_CONTEXT *tcti;
  683. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  684. Esys_GetTcti(esys_context, &tcti);
  685. TPM2B_MAX_BUFFER data = DUMMY_2B_DATA(.buffer);
  686. TPMI_ALG_HASH hashAlg = TPM2_ALG_SHA1;
  687. ESYS_TR hierarchy = ESYS_TR_RH_OWNER;
  688. TPM2B_DIGEST *outHash;
  689. TPMT_TK_HASHCHECK *validation;
  690. r = Esys_Hash(esys_context,
  691. ESYS_TR_NONE,
  692. ESYS_TR_NONE,
  693. ESYS_TR_NONE,
  694. &data, hashAlg, hierarchy, &outHash, &validation);
  695. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  696. }
  697. static void
  698. test_HMAC(void **state)
  699. {
  700. TSS2_RC r;
  701. TSS2_TCTI_CONTEXT *tcti;
  702. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  703. Esys_GetTcti(esys_context, &tcti);
  704. ESYS_TR handle_handle = DUMMY_TR_HANDLE_KEY;
  705. TPM2B_MAX_BUFFER buffer = DUMMY_2B_DATA(.buffer);
  706. TPMI_ALG_HASH hashAlg = TPM2_ALG_SHA1;
  707. TPM2B_DIGEST *outHMAC;
  708. r = Esys_HMAC(esys_context,
  709. handle_handle,
  710. ESYS_TR_PASSWORD,
  711. ESYS_TR_NONE, ESYS_TR_NONE, &buffer, hashAlg, &outHMAC);
  712. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  713. }
  714. static void
  715. test_GetRandom(void **state)
  716. {
  717. TSS2_RC r;
  718. TSS2_TCTI_CONTEXT *tcti;
  719. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  720. Esys_GetTcti(esys_context, &tcti);
  721. UINT16 bytesRequested = 0;
  722. TPM2B_DIGEST *randomBytes;
  723. r = Esys_GetRandom(esys_context,
  724. ESYS_TR_NONE,
  725. ESYS_TR_NONE,
  726. ESYS_TR_NONE, bytesRequested, &randomBytes);
  727. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  728. }
  729. static void
  730. test_StirRandom(void **state)
  731. {
  732. TSS2_RC r;
  733. TSS2_TCTI_CONTEXT *tcti;
  734. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  735. Esys_GetTcti(esys_context, &tcti);
  736. TPM2B_SENSITIVE_DATA inData = DUMMY_2B_DATA(.buffer);
  737. r = Esys_StirRandom(esys_context,
  738. ESYS_TR_NONE, ESYS_TR_NONE, ESYS_TR_NONE, &inData);
  739. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  740. }
  741. static void
  742. test_HMAC_Start(void **state)
  743. {
  744. TSS2_RC r;
  745. TSS2_TCTI_CONTEXT *tcti;
  746. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  747. Esys_GetTcti(esys_context, &tcti);
  748. ESYS_TR handle_handle = DUMMY_TR_HANDLE_KEY;
  749. TPM2B_AUTH auth = DUMMY_2B_DATA(.buffer);
  750. TPMI_ALG_HASH hashAlg = TPM2_ALG_SHA1;
  751. ESYS_TR sequenceHandle_handle;
  752. r = Esys_HMAC_Start(esys_context,
  753. handle_handle,
  754. ESYS_TR_PASSWORD,
  755. ESYS_TR_NONE,
  756. ESYS_TR_NONE, &auth, hashAlg, &sequenceHandle_handle);
  757. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  758. }
  759. static void
  760. test_HashSequenceStart(void **state)
  761. {
  762. TSS2_RC r;
  763. TSS2_TCTI_CONTEXT *tcti;
  764. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  765. Esys_GetTcti(esys_context, &tcti);
  766. TPM2B_AUTH auth = DUMMY_2B_DATA(.buffer);
  767. TPMI_ALG_HASH hashAlg = TPM2_ALG_SHA1;
  768. ESYS_TR sequenceHandle_handle;
  769. r = Esys_HashSequenceStart(esys_context,
  770. ESYS_TR_NONE,
  771. ESYS_TR_NONE,
  772. ESYS_TR_NONE,
  773. &auth, hashAlg, &sequenceHandle_handle);
  774. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  775. }
  776. static void
  777. test_SequenceUpdate(void **state)
  778. {
  779. TSS2_RC r;
  780. TSS2_TCTI_CONTEXT *tcti;
  781. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  782. Esys_GetTcti(esys_context, &tcti);
  783. ESYS_TR sequenceHandle_handle = DUMMY_TR_HANDLE_KEY;
  784. TPM2B_MAX_BUFFER buffer = DUMMY_2B_DATA(.buffer);
  785. r = Esys_SequenceUpdate(esys_context,
  786. sequenceHandle_handle,
  787. ESYS_TR_PASSWORD,
  788. ESYS_TR_NONE, ESYS_TR_NONE, &buffer);
  789. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  790. }
  791. static void
  792. test_SequenceComplete(void **state)
  793. {
  794. TSS2_RC r;
  795. TSS2_TCTI_CONTEXT *tcti;
  796. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  797. Esys_GetTcti(esys_context, &tcti);
  798. ESYS_TR sequenceHandle_handle = DUMMY_TR_HANDLE_KEY;
  799. TPM2B_MAX_BUFFER buffer = DUMMY_2B_DATA(.buffer);
  800. ESYS_TR hierarchy = ESYS_TR_RH_OWNER;
  801. TPM2B_DIGEST *result;
  802. TPMT_TK_HASHCHECK *validation;
  803. r = Esys_SequenceComplete(esys_context,
  804. sequenceHandle_handle,
  805. ESYS_TR_PASSWORD,
  806. ESYS_TR_NONE,
  807. ESYS_TR_NONE,
  808. &buffer, hierarchy, &result, &validation);
  809. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  810. }
  811. static void
  812. test_EventSequenceComplete(void **state)
  813. {
  814. TSS2_RC r;
  815. TSS2_TCTI_CONTEXT *tcti;
  816. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  817. Esys_GetTcti(esys_context, &tcti);
  818. ESYS_TR pcrHandle_handle = 16;
  819. ESYS_TR sequenceHandle_handle = DUMMY_TR_HANDLE_KEY;
  820. TPM2B_MAX_BUFFER buffer = DUMMY_2B_DATA(.buffer);
  821. TPML_DIGEST_VALUES *results;
  822. r = Esys_EventSequenceComplete(esys_context,
  823. pcrHandle_handle,
  824. sequenceHandle_handle,
  825. ESYS_TR_PASSWORD,
  826. ESYS_TR_PASSWORD,
  827. ESYS_TR_NONE, &buffer, &results);
  828. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  829. }
  830. static void
  831. test_Certify(void **state)
  832. {
  833. TSS2_RC r;
  834. TSS2_TCTI_CONTEXT *tcti;
  835. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  836. Esys_GetTcti(esys_context, &tcti);
  837. ESYS_TR objectHandle_handle = DUMMY_TR_HANDLE_KEY;
  838. ESYS_TR signHandle_handle = DUMMY_TR_HANDLE_KEY;
  839. TPM2B_DATA qualifyingData = DUMMY_2B_DATA(.buffer);
  840. TPMT_SIG_SCHEME inScheme = {.scheme = TPM2_ALG_NULL,.details = {} };
  841. TPM2B_ATTEST *certifyInfo;
  842. TPMT_SIGNATURE *signature;
  843. r = Esys_Certify(esys_context,
  844. objectHandle_handle,
  845. signHandle_handle,
  846. ESYS_TR_PASSWORD,
  847. ESYS_TR_PASSWORD,
  848. ESYS_TR_NONE,
  849. &qualifyingData, &inScheme, &certifyInfo, &signature);
  850. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  851. }
  852. static void
  853. test_CertifyCreation(void **state)
  854. {
  855. TSS2_RC r;
  856. TSS2_TCTI_CONTEXT *tcti;
  857. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  858. Esys_GetTcti(esys_context, &tcti);
  859. ESYS_TR signHandle_handle = DUMMY_TR_HANDLE_KEY;
  860. ESYS_TR objectHandle_handle = DUMMY_TR_HANDLE_KEY;
  861. TPM2B_DATA qualifyingData = DUMMY_2B_DATA(.buffer);
  862. TPM2B_DIGEST creationHash = DUMMY_2B_DATA(.buffer);
  863. TPMT_SIG_SCHEME inScheme = {.scheme = TPM2_ALG_NULL,.details = {} };
  864. TPMT_TK_CREATION creationTicket = DUMMY_TPMT_TK_CREATION;
  865. TPM2B_ATTEST *certifyInfo;
  866. TPMT_SIGNATURE *signature;
  867. r = Esys_CertifyCreation(esys_context,
  868. signHandle_handle,
  869. objectHandle_handle,
  870. ESYS_TR_PASSWORD,
  871. ESYS_TR_NONE,
  872. ESYS_TR_NONE,
  873. &qualifyingData,
  874. &creationHash,
  875. &inScheme,
  876. &creationTicket, &certifyInfo, &signature);
  877. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  878. }
  879. static void
  880. test_Quote(void **state)
  881. {
  882. TSS2_RC r;
  883. TSS2_TCTI_CONTEXT *tcti;
  884. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  885. Esys_GetTcti(esys_context, &tcti);
  886. ESYS_TR signHandle_handle = DUMMY_TR_HANDLE_KEY;
  887. TPM2B_DATA qualifyingData = DUMMY_2B_DATA(.buffer);
  888. TPMT_SIG_SCHEME inScheme = {.scheme = TPM2_ALG_NULL,.details = {} };
  889. TPML_PCR_SELECTION PCRselect = { 0 };
  890. TPM2B_ATTEST *quoted;
  891. TPMT_SIGNATURE *signature;
  892. r = Esys_Quote(esys_context,
  893. signHandle_handle,
  894. ESYS_TR_PASSWORD,
  895. ESYS_TR_NONE,
  896. ESYS_TR_NONE,
  897. &qualifyingData, &inScheme, &PCRselect, &quoted, &signature);
  898. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  899. }
  900. static void
  901. test_GetSessionAuditDigest(void **state)
  902. {
  903. TSS2_RC r;
  904. TSS2_TCTI_CONTEXT *tcti;
  905. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  906. Esys_GetTcti(esys_context, &tcti);
  907. ESYS_TR privacyAdminHandle_handle = DUMMY_TR_HANDLE_PRIVACY_ADMIN;
  908. ESYS_TR signHandle_handle = DUMMY_TR_HANDLE_KEY;
  909. ESYS_TR sessionHandle_handle = DUMMY_TR_HANDLE_HMAC_SESSION;
  910. TPM2B_DATA qualifyingData = DUMMY_2B_DATA(.buffer);
  911. TPMT_SIG_SCHEME inScheme = {.scheme = TPM2_ALG_NULL,.details = {} };
  912. TPM2B_ATTEST *auditInfo;
  913. TPMT_SIGNATURE *signature;
  914. r = Esys_GetSessionAuditDigest(esys_context,
  915. privacyAdminHandle_handle,
  916. signHandle_handle,
  917. sessionHandle_handle,
  918. ESYS_TR_PASSWORD,
  919. ESYS_TR_PASSWORD,
  920. ESYS_TR_NONE,
  921. &qualifyingData,
  922. &inScheme, &auditInfo, &signature);
  923. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  924. }
  925. static void
  926. test_GetCommandAuditDigest(void **state)
  927. {
  928. TSS2_RC r;
  929. TSS2_TCTI_CONTEXT *tcti;
  930. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  931. Esys_GetTcti(esys_context, &tcti);
  932. ESYS_TR privacyHandle_handle = DUMMY_TR_HANDLE_PRIVACY_ADMIN;
  933. ESYS_TR signHandle_handle = DUMMY_TR_HANDLE_KEY;
  934. TPM2B_DATA qualifyingData = DUMMY_2B_DATA(.buffer);
  935. TPMT_SIG_SCHEME inScheme = {.scheme = TPM2_ALG_NULL,.details = {} };
  936. TPM2B_ATTEST *auditInfo;
  937. TPMT_SIGNATURE *signature;
  938. r = Esys_GetCommandAuditDigest(esys_context,
  939. privacyHandle_handle,
  940. signHandle_handle,
  941. ESYS_TR_PASSWORD,
  942. ESYS_TR_PASSWORD,
  943. ESYS_TR_NONE,
  944. &qualifyingData,
  945. &inScheme, &auditInfo, &signature);
  946. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  947. }
  948. static void
  949. test_GetTime(void **state)
  950. {
  951. TSS2_RC r;
  952. TSS2_TCTI_CONTEXT *tcti;
  953. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  954. Esys_GetTcti(esys_context, &tcti);
  955. ESYS_TR privacyAdminHandle_handle = DUMMY_TR_HANDLE_PRIVACY_ADMIN;
  956. ESYS_TR signHandle_handle = DUMMY_TR_HANDLE_KEY;
  957. TPM2B_DATA qualifyingData = DUMMY_2B_DATA(.buffer);
  958. TPMT_SIG_SCHEME inScheme = {.scheme = TPM2_ALG_NULL,.details = {} };
  959. TPM2B_ATTEST *timeInfo;
  960. TPMT_SIGNATURE *signature;
  961. r = Esys_GetTime(esys_context,
  962. privacyAdminHandle_handle,
  963. signHandle_handle,
  964. ESYS_TR_PASSWORD,
  965. ESYS_TR_PASSWORD,
  966. ESYS_TR_NONE,
  967. &qualifyingData, &inScheme, &timeInfo, &signature);
  968. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  969. }
  970. static void
  971. test_Commit(void **state)
  972. {
  973. TSS2_RC r;
  974. TSS2_TCTI_CONTEXT *tcti;
  975. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  976. Esys_GetTcti(esys_context, &tcti);
  977. ESYS_TR signHandle_handle = DUMMY_TR_HANDLE_KEY;
  978. TPM2B_ECC_POINT P1 = { 0 };
  979. TPM2B_SENSITIVE_DATA s2 = DUMMY_2B_DATA(.buffer);
  980. TPM2B_ECC_PARAMETER y2 = { 0 };
  981. TPM2B_ECC_POINT *K;
  982. TPM2B_ECC_POINT *L;
  983. TPM2B_ECC_POINT *E;
  984. UINT16 counter;
  985. r = Esys_Commit(esys_context,
  986. signHandle_handle,
  987. ESYS_TR_PASSWORD,
  988. ESYS_TR_NONE,
  989. ESYS_TR_NONE, &P1, &s2, &y2, &K, &L, &E, &counter);
  990. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  991. }
  992. static void
  993. test_EC_Ephemeral(void **state)
  994. {
  995. TSS2_RC r;
  996. TSS2_TCTI_CONTEXT *tcti;
  997. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  998. Esys_GetTcti(esys_context, &tcti);
  999. TPMI_ECC_CURVE curveID = TPM2_ECC_BN_P256;
  1000. TPM2B_ECC_POINT *Q;
  1001. UINT16 counter;
  1002. r = Esys_EC_Ephemeral(esys_context,
  1003. ESYS_TR_NONE,
  1004. ESYS_TR_NONE, ESYS_TR_NONE, curveID, &Q, &counter);
  1005. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1006. }
  1007. static void
  1008. test_VerifySignature(void **state)
  1009. {
  1010. TSS2_RC r;
  1011. TSS2_TCTI_CONTEXT *tcti;
  1012. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1013. Esys_GetTcti(esys_context, &tcti);
  1014. ESYS_TR keyHandle_handle = DUMMY_TR_HANDLE_KEY;
  1015. TPM2B_DIGEST digest = DUMMY_2B_DATA(.buffer);
  1016. TPMT_SIGNATURE signature = DUMMY_TPMT_SIGNATURE;
  1017. TPMT_TK_VERIFIED *validation;
  1018. r = Esys_VerifySignature(esys_context,
  1019. keyHandle_handle,
  1020. ESYS_TR_NONE,
  1021. ESYS_TR_NONE,
  1022. ESYS_TR_NONE, &digest, &signature, &validation);
  1023. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1024. }
  1025. static void
  1026. test_Sign(void **state)
  1027. {
  1028. TSS2_RC r;
  1029. TSS2_TCTI_CONTEXT *tcti;
  1030. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1031. Esys_GetTcti(esys_context, &tcti);
  1032. ESYS_TR keyHandle_handle = DUMMY_TR_HANDLE_KEY;
  1033. TPM2B_DIGEST digest = DUMMY_2B_DATA(.buffer);
  1034. TPMT_SIG_SCHEME inScheme = {.scheme = TPM2_ALG_NULL,.details = {} };
  1035. TPMT_TK_HASHCHECK validation = DUMMY_TPMT_TK_HASHCHECK;
  1036. TPMT_SIGNATURE *signature;
  1037. r = Esys_Sign(esys_context,
  1038. keyHandle_handle,
  1039. ESYS_TR_PASSWORD,
  1040. ESYS_TR_NONE,
  1041. ESYS_TR_NONE, &digest, &inScheme, &validation, &signature);
  1042. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1043. }
  1044. static void
  1045. test_SetCommandCodeAuditStatus(void **state)
  1046. {
  1047. TSS2_RC r;
  1048. TSS2_TCTI_CONTEXT *tcti;
  1049. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1050. Esys_GetTcti(esys_context, &tcti);
  1051. ESYS_TR auth_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  1052. TPMI_ALG_HASH auditAlg = TPM2_ALG_SHA1;
  1053. TPML_CC setList = { 0 };
  1054. TPML_CC clearList = { 0 };
  1055. r = Esys_SetCommandCodeAuditStatus(esys_context,
  1056. auth_handle,
  1057. ESYS_TR_PASSWORD,
  1058. ESYS_TR_NONE,
  1059. ESYS_TR_NONE,
  1060. auditAlg, &setList, &clearList);
  1061. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1062. }
  1063. static void
  1064. test_PCR_Extend(void **state)
  1065. {
  1066. TSS2_RC r;
  1067. TSS2_TCTI_CONTEXT *tcti;
  1068. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1069. Esys_GetTcti(esys_context, &tcti);
  1070. ESYS_TR pcrHandle_handle = 16;
  1071. TPML_DIGEST_VALUES digests = { 0 };
  1072. r = Esys_PCR_Extend(esys_context,
  1073. pcrHandle_handle,
  1074. ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE, &digests);
  1075. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1076. }
  1077. static void
  1078. test_PCR_Event(void **state)
  1079. {
  1080. TSS2_RC r;
  1081. TSS2_TCTI_CONTEXT *tcti;
  1082. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1083. Esys_GetTcti(esys_context, &tcti);
  1084. ESYS_TR pcrHandle_handle = 16;
  1085. TPM2B_EVENT eventData = DUMMY_2B_DATA(.buffer);
  1086. TPML_DIGEST_VALUES *digests;
  1087. r = Esys_PCR_Event(esys_context,
  1088. pcrHandle_handle,
  1089. ESYS_TR_PASSWORD,
  1090. ESYS_TR_NONE, ESYS_TR_NONE, &eventData, &digests);
  1091. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1092. }
  1093. static void
  1094. test_PCR_Read(void **state)
  1095. {
  1096. TSS2_RC r;
  1097. TSS2_TCTI_CONTEXT *tcti;
  1098. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1099. Esys_GetTcti(esys_context, &tcti);
  1100. TPML_PCR_SELECTION pcrSelectionIn = { 0 };
  1101. TPML_PCR_SELECTION *pcrSelectionOut;
  1102. TPML_DIGEST *pcrValues;
  1103. UINT32 pcrUpdateCounter;
  1104. r = Esys_PCR_Read(esys_context,
  1105. ESYS_TR_NONE,
  1106. ESYS_TR_NONE,
  1107. ESYS_TR_NONE,
  1108. &pcrSelectionIn,
  1109. &pcrUpdateCounter, &pcrSelectionOut, &pcrValues);
  1110. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1111. }
  1112. static void
  1113. test_PCR_Allocate(void **state)
  1114. {
  1115. TSS2_RC r;
  1116. TSS2_TCTI_CONTEXT *tcti;
  1117. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1118. Esys_GetTcti(esys_context, &tcti);
  1119. ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  1120. TPML_PCR_SELECTION pcrAllocation = { 0 };
  1121. TPMI_YES_NO allocationSuccess;
  1122. UINT32 maxPCR;
  1123. UINT32 sizeNeeded;
  1124. UINT32 sizeAvailable;
  1125. r = Esys_PCR_Allocate(esys_context,
  1126. authHandle_handle,
  1127. ESYS_TR_PASSWORD,
  1128. ESYS_TR_NONE,
  1129. ESYS_TR_NONE,
  1130. &pcrAllocation,
  1131. &allocationSuccess,
  1132. &maxPCR, &sizeNeeded, &sizeAvailable);
  1133. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1134. }
  1135. static void
  1136. test_PCR_SetAuthPolicy(void **state)
  1137. {
  1138. TSS2_RC r;
  1139. TSS2_TCTI_CONTEXT *tcti;
  1140. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1141. Esys_GetTcti(esys_context, &tcti);
  1142. ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  1143. TPM2B_DIGEST authPolicy = DUMMY_2B_DATA(.buffer);
  1144. TPMI_ALG_HASH hashAlg = TPM2_ALG_SHA1;
  1145. TPMI_DH_PCR pcrNum = 0;
  1146. r = Esys_PCR_SetAuthPolicy(esys_context,
  1147. authHandle_handle,
  1148. ESYS_TR_PASSWORD,
  1149. ESYS_TR_NONE,
  1150. ESYS_TR_NONE, &authPolicy, hashAlg, pcrNum);
  1151. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1152. }
  1153. static void
  1154. test_PCR_SetAuthValue(void **state)
  1155. {
  1156. TSS2_RC r;
  1157. TSS2_TCTI_CONTEXT *tcti;
  1158. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1159. Esys_GetTcti(esys_context, &tcti);
  1160. ESYS_TR pcrHandle_handle = 16;
  1161. TPM2B_DIGEST auth = DUMMY_2B_DATA(.buffer);
  1162. r = Esys_PCR_SetAuthValue(esys_context,
  1163. pcrHandle_handle,
  1164. ESYS_TR_PASSWORD,
  1165. ESYS_TR_NONE, ESYS_TR_NONE, &auth);
  1166. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1167. }
  1168. static void
  1169. test_PCR_Reset(void **state)
  1170. {
  1171. TSS2_RC r;
  1172. TSS2_TCTI_CONTEXT *tcti;
  1173. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1174. Esys_GetTcti(esys_context, &tcti);
  1175. ESYS_TR pcrHandle_handle = 16;
  1176. r = Esys_PCR_Reset(esys_context,
  1177. pcrHandle_handle,
  1178. ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE);
  1179. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1180. }
  1181. static void
  1182. test_PolicySigned(void **state)
  1183. {
  1184. TSS2_RC r;
  1185. TSS2_TCTI_CONTEXT *tcti;
  1186. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1187. Esys_GetTcti(esys_context, &tcti);
  1188. ESYS_TR authObject_handle = DUMMY_TR_HANDLE_KEY;
  1189. ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
  1190. TPM2B_NONCE nonceTPM = DUMMY_2B_DATA(.buffer);
  1191. TPM2B_DIGEST cpHashA = DUMMY_2B_DATA(.buffer);
  1192. TPM2B_NONCE policyRef = DUMMY_2B_DATA(.buffer);
  1193. INT32 expiration = 0;
  1194. TPMT_SIGNATURE auth = DUMMY_TPMT_SIGNATURE;
  1195. TPM2B_TIMEOUT *timeout;
  1196. TPMT_TK_AUTH *policyTicket;
  1197. r = Esys_PolicySigned(esys_context,
  1198. authObject_handle,
  1199. policySession_handle,
  1200. ESYS_TR_NONE,
  1201. ESYS_TR_NONE,
  1202. ESYS_TR_NONE,
  1203. &nonceTPM,
  1204. &cpHashA,
  1205. &policyRef,
  1206. expiration, &auth, &timeout, &policyTicket);
  1207. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1208. }
  1209. static void
  1210. test_PolicySecret(void **state)
  1211. {
  1212. TSS2_RC r;
  1213. TSS2_TCTI_CONTEXT *tcti;
  1214. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1215. Esys_GetTcti(esys_context, &tcti);
  1216. ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  1217. ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
  1218. TPM2B_NONCE nonceTPM = DUMMY_2B_DATA(.buffer);
  1219. TPM2B_DIGEST cpHashA = DUMMY_2B_DATA(.buffer);
  1220. TPM2B_NONCE policyRef = DUMMY_2B_DATA(.buffer);
  1221. INT32 expiration = 0;
  1222. TPM2B_TIMEOUT *timeout;
  1223. TPMT_TK_AUTH *policyTicket;
  1224. r = Esys_PolicySecret(esys_context,
  1225. authHandle_handle,
  1226. policySession_handle,
  1227. ESYS_TR_PASSWORD,
  1228. ESYS_TR_NONE,
  1229. ESYS_TR_NONE,
  1230. &nonceTPM,
  1231. &cpHashA,
  1232. &policyRef, expiration, &timeout, &policyTicket);
  1233. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1234. }
  1235. static void
  1236. test_PolicyTicket(void **state)
  1237. {
  1238. TSS2_RC r;
  1239. TSS2_TCTI_CONTEXT *tcti;
  1240. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1241. Esys_GetTcti(esys_context, &tcti);
  1242. ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
  1243. TPM2B_TIMEOUT timeout = DUMMY_2B_DATA(.buffer);
  1244. TPM2B_DIGEST cpHashA = DUMMY_2B_DATA(.buffer);
  1245. TPM2B_NONCE policyRef = DUMMY_2B_DATA(.buffer);
  1246. TPM2B_NAME authName = DUMMY_2B_DATA(.name);
  1247. TPMT_TK_AUTH ticket = DUMMY_TPMT_TK_AUTH;
  1248. r = Esys_PolicyTicket(esys_context,
  1249. policySession_handle,
  1250. ESYS_TR_NONE,
  1251. ESYS_TR_NONE,
  1252. ESYS_TR_NONE,
  1253. &timeout, &cpHashA, &policyRef, &authName, &ticket);
  1254. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1255. }
  1256. static void
  1257. test_PolicyOR(void **state)
  1258. {
  1259. TSS2_RC r;
  1260. TSS2_TCTI_CONTEXT *tcti;
  1261. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1262. Esys_GetTcti(esys_context, &tcti);
  1263. ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
  1264. TPML_DIGEST pHashList = { 0 };
  1265. r = Esys_PolicyOR(esys_context,
  1266. policySession_handle,
  1267. ESYS_TR_NONE, ESYS_TR_NONE, ESYS_TR_NONE, &pHashList);
  1268. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1269. }
  1270. static void
  1271. test_PolicyPCR(void **state)
  1272. {
  1273. TSS2_RC r;
  1274. TSS2_TCTI_CONTEXT *tcti;
  1275. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1276. Esys_GetTcti(esys_context, &tcti);
  1277. ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
  1278. TPM2B_DIGEST pcrDigest = DUMMY_2B_DATA(.buffer);
  1279. TPML_PCR_SELECTION pcrs = { 0 };
  1280. r = Esys_PolicyPCR(esys_context,
  1281. policySession_handle,
  1282. ESYS_TR_NONE,
  1283. ESYS_TR_NONE, ESYS_TR_NONE, &pcrDigest, &pcrs);
  1284. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1285. }
  1286. static void
  1287. test_PolicyLocality(void **state)
  1288. {
  1289. TSS2_RC r;
  1290. TSS2_TCTI_CONTEXT *tcti;
  1291. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1292. Esys_GetTcti(esys_context, &tcti);
  1293. ESYS_TR policySession = DUMMY_TR_HANDLE_POLICY_SESSION;
  1294. TPMA_LOCALITY locality = TPMA_LOCALITY_TPM2_LOC_ZERO;
  1295. r = Esys_PolicyLocality(esys_context, policySession,
  1296. ESYS_TR_NONE, ESYS_TR_NONE, ESYS_TR_NONE, locality);
  1297. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1298. }
  1299. static void
  1300. test_PolicyNV(void **state)
  1301. {
  1302. TSS2_RC r;
  1303. TSS2_TCTI_CONTEXT *tcti;
  1304. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1305. Esys_GetTcti(esys_context, &tcti);
  1306. ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  1307. ESYS_TR nvIndex_handle = DUMMY_TR_HANDLE_NV_INDEX;
  1308. ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
  1309. TPM2B_OPERAND operandB = DUMMY_2B_DATA(.buffer);
  1310. UINT16 offset = 0;
  1311. TPM2_EO operation = 0;
  1312. r = Esys_PolicyNV(esys_context,
  1313. authHandle_handle,
  1314. nvIndex_handle,
  1315. policySession_handle,
  1316. ESYS_TR_PASSWORD,
  1317. ESYS_TR_NONE, ESYS_TR_NONE, &operandB, offset, operation);
  1318. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1319. }
  1320. static void
  1321. test_PolicyCounterTimer(void **state)
  1322. {
  1323. TSS2_RC r;
  1324. TSS2_TCTI_CONTEXT *tcti;
  1325. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1326. Esys_GetTcti(esys_context, &tcti);
  1327. ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
  1328. TPM2B_OPERAND operandB = DUMMY_2B_DATA(.buffer);
  1329. UINT16 offset = 0;
  1330. TPM2_EO operation = 0;
  1331. r = Esys_PolicyCounterTimer(esys_context,
  1332. policySession_handle,
  1333. ESYS_TR_NONE,
  1334. ESYS_TR_NONE,
  1335. ESYS_TR_NONE, &operandB, offset, operation);
  1336. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1337. }
  1338. static void
  1339. test_PolicyCommandCode(void **state)
  1340. {
  1341. TSS2_RC r;
  1342. TSS2_TCTI_CONTEXT *tcti;
  1343. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1344. Esys_GetTcti(esys_context, &tcti);
  1345. ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
  1346. TPM2_CC code = TPM2_CC_FIRST;
  1347. r = Esys_PolicyCommandCode(esys_context,
  1348. policySession_handle,
  1349. ESYS_TR_NONE, ESYS_TR_NONE, ESYS_TR_NONE, code);
  1350. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1351. }
  1352. static void
  1353. test_PolicyPhysicalPresence(void **state)
  1354. {
  1355. TSS2_RC r;
  1356. TSS2_TCTI_CONTEXT *tcti;
  1357. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1358. Esys_GetTcti(esys_context, &tcti);
  1359. ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
  1360. r = Esys_PolicyPhysicalPresence(esys_context,
  1361. policySession_handle,
  1362. ESYS_TR_NONE, ESYS_TR_NONE, ESYS_TR_NONE);
  1363. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1364. }
  1365. static void
  1366. test_PolicyCpHash(void **state)
  1367. {
  1368. TSS2_RC r;
  1369. TSS2_TCTI_CONTEXT *tcti;
  1370. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1371. Esys_GetTcti(esys_context, &tcti);
  1372. ESYS_TR policySession = DUMMY_TR_HANDLE_POLICY_SESSION;
  1373. TPM2B_DIGEST cpHashA = DUMMY_2B_DATA(.buffer);
  1374. r = Esys_PolicyCpHash(esys_context,
  1375. policySession,
  1376. ESYS_TR_NONE,
  1377. ESYS_TR_NONE, ESYS_TR_NONE, &cpHashA);
  1378. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1379. }
  1380. static void
  1381. test_PolicyNameHash(void **state)
  1382. {
  1383. TSS2_RC r;
  1384. TSS2_TCTI_CONTEXT *tcti;
  1385. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1386. Esys_GetTcti(esys_context, &tcti);
  1387. ESYS_TR policySession = DUMMY_TR_HANDLE_POLICY_SESSION;
  1388. TPM2B_DIGEST nameHash = DUMMY_2B_DATA(.buffer);
  1389. r = Esys_PolicyNameHash(esys_context,
  1390. policySession,
  1391. ESYS_TR_NONE,
  1392. ESYS_TR_NONE,
  1393. ESYS_TR_NONE, &nameHash);
  1394. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1395. }
  1396. static void
  1397. test_PolicyDuplicationSelect(void **state)
  1398. {
  1399. TSS2_RC r;
  1400. TSS2_TCTI_CONTEXT *tcti;
  1401. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1402. Esys_GetTcti(esys_context, &tcti);
  1403. ESYS_TR policySession = DUMMY_TR_HANDLE_POLICY_SESSION;
  1404. TPM2B_NAME objectName = DUMMY_2B_DATA(.name);
  1405. TPM2B_NAME newParentName = DUMMY_2B_DATA(.name);
  1406. TPMI_YES_NO includeObject = 0;
  1407. r = Esys_PolicyDuplicationSelect(esys_context,
  1408. policySession,
  1409. ESYS_TR_NONE,
  1410. ESYS_TR_NONE,
  1411. ESYS_TR_NONE,
  1412. &objectName,
  1413. &newParentName, includeObject);
  1414. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1415. }
  1416. static void
  1417. test_PolicyAuthorize(void **state)
  1418. {
  1419. TSS2_RC r;
  1420. TSS2_TCTI_CONTEXT *tcti;
  1421. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1422. Esys_GetTcti(esys_context, &tcti);
  1423. ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
  1424. TPM2B_DIGEST approvedPolicy = DUMMY_2B_DATA(.buffer);
  1425. TPM2B_NONCE policyRef = DUMMY_2B_DATA(.buffer);
  1426. TPM2B_NAME keySign = DUMMY_2B_DATA(.name);
  1427. TPMT_TK_VERIFIED checkTicket = DUMMY_TPMT_TK_VERIFIED;
  1428. r = Esys_PolicyAuthorize(esys_context,
  1429. policySession_handle,
  1430. ESYS_TR_NONE,
  1431. ESYS_TR_NONE,
  1432. ESYS_TR_NONE,
  1433. &approvedPolicy,
  1434. &policyRef, &keySign, &checkTicket);
  1435. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1436. }
  1437. static void
  1438. test_PolicyAuthValue(void **state)
  1439. {
  1440. TSS2_RC r;
  1441. TSS2_TCTI_CONTEXT *tcti;
  1442. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1443. Esys_GetTcti(esys_context, &tcti);
  1444. ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
  1445. r = Esys_PolicyAuthValue(esys_context,
  1446. policySession_handle,
  1447. ESYS_TR_NONE, ESYS_TR_NONE, ESYS_TR_NONE);
  1448. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1449. }
  1450. static void
  1451. test_PolicyPassword(void **state)
  1452. {
  1453. TSS2_RC r;
  1454. TSS2_TCTI_CONTEXT *tcti;
  1455. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1456. Esys_GetTcti(esys_context, &tcti);
  1457. ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
  1458. r = Esys_PolicyPassword(esys_context,
  1459. policySession_handle,
  1460. ESYS_TR_NONE, ESYS_TR_NONE, ESYS_TR_NONE);
  1461. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1462. }
  1463. static void
  1464. test_PolicyGetDigest(void **state)
  1465. {
  1466. TSS2_RC r;
  1467. TSS2_TCTI_CONTEXT *tcti;
  1468. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1469. Esys_GetTcti(esys_context, &tcti);
  1470. ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
  1471. TPM2B_DIGEST *policyDigest;
  1472. r = Esys_PolicyGetDigest(esys_context,
  1473. policySession_handle,
  1474. ESYS_TR_NONE,
  1475. ESYS_TR_NONE, ESYS_TR_NONE, &policyDigest);
  1476. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1477. }
  1478. static void
  1479. test_PolicyNvWritten(void **state)
  1480. {
  1481. TSS2_RC r;
  1482. TSS2_TCTI_CONTEXT *tcti;
  1483. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1484. Esys_GetTcti(esys_context, &tcti);
  1485. ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
  1486. TPMI_YES_NO writtenSet = 0;
  1487. r = Esys_PolicyNvWritten(esys_context,
  1488. policySession_handle,
  1489. ESYS_TR_NONE,
  1490. ESYS_TR_NONE, ESYS_TR_NONE, writtenSet);
  1491. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1492. }
  1493. static void
  1494. test_PolicyTemplate(void **state)
  1495. {
  1496. TSS2_RC r;
  1497. TSS2_TCTI_CONTEXT *tcti;
  1498. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1499. Esys_GetTcti(esys_context, &tcti);
  1500. ESYS_TR policySession = DUMMY_TR_HANDLE_POLICY_SESSION;
  1501. TPM2B_DIGEST templateHash = DUMMY_2B_DATA(.buffer);
  1502. r = Esys_PolicyTemplate(esys_context,
  1503. policySession,
  1504. ESYS_TR_NONE,
  1505. ESYS_TR_NONE,
  1506. ESYS_TR_NONE, &templateHash);
  1507. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1508. }
  1509. static void
  1510. test_PolicyAuthorizeNV(void **state)
  1511. {
  1512. TSS2_RC r;
  1513. TSS2_TCTI_CONTEXT *tcti;
  1514. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1515. Esys_GetTcti(esys_context, &tcti);
  1516. ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  1517. ESYS_TR nvIndex_handle = DUMMY_TR_HANDLE_NV_INDEX;
  1518. ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
  1519. r = Esys_PolicyAuthorizeNV(esys_context,
  1520. authHandle_handle,
  1521. nvIndex_handle,
  1522. policySession_handle,
  1523. ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE);
  1524. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1525. }
  1526. static void
  1527. test_CreatePrimary(void **state)
  1528. {
  1529. TSS2_RC r;
  1530. TSS2_TCTI_CONTEXT *tcti;
  1531. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1532. Esys_GetTcti(esys_context, &tcti);
  1533. ESYS_TR primaryHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  1534. TPM2B_SENSITIVE_CREATE inSensitive = { 0 };
  1535. TPM2B_PUBLIC inPublic = DUMMY_IN_PUBLIC_DATA;
  1536. TPM2B_DATA outsideInfo = DUMMY_2B_DATA(.buffer);
  1537. TPML_PCR_SELECTION creationPCR = { 0 };
  1538. ESYS_TR objectHandle_handle;
  1539. TPM2B_PUBLIC *outPublic;
  1540. TPM2B_CREATION_DATA *creationData;
  1541. TPM2B_DIGEST *creationHash;
  1542. TPMT_TK_CREATION *creationTicket;
  1543. r = Esys_CreatePrimary(esys_context,
  1544. primaryHandle_handle,
  1545. ESYS_TR_PASSWORD,
  1546. ESYS_TR_NONE,
  1547. ESYS_TR_NONE,
  1548. &inSensitive,
  1549. &inPublic,
  1550. &outsideInfo,
  1551. &creationPCR,
  1552. &objectHandle_handle,
  1553. &outPublic,
  1554. &creationData, &creationHash, &creationTicket);
  1555. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1556. }
  1557. static void
  1558. test_HierarchyControl(void **state)
  1559. {
  1560. TSS2_RC r;
  1561. TSS2_TCTI_CONTEXT *tcti;
  1562. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1563. Esys_GetTcti(esys_context, &tcti);
  1564. ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  1565. ESYS_TR enable = ESYS_TR_RH_OWNER;
  1566. TPMI_YES_NO state2 = 0;
  1567. r = Esys_HierarchyControl(esys_context,
  1568. authHandle_handle,
  1569. ESYS_TR_PASSWORD,
  1570. ESYS_TR_NONE, ESYS_TR_NONE, enable, state2);
  1571. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1572. }
  1573. static void
  1574. test_SetPrimaryPolicy(void **state)
  1575. {
  1576. TSS2_RC r;
  1577. TSS2_TCTI_CONTEXT *tcti;
  1578. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1579. Esys_GetTcti(esys_context, &tcti);
  1580. ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  1581. TPM2B_DIGEST authPolicy = DUMMY_2B_DATA(.buffer);
  1582. TPMI_ALG_HASH hashAlg = TPM2_ALG_SHA1;
  1583. r = Esys_SetPrimaryPolicy(esys_context,
  1584. authHandle_handle,
  1585. ESYS_TR_PASSWORD,
  1586. ESYS_TR_NONE, ESYS_TR_NONE, &authPolicy, hashAlg);
  1587. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1588. }
  1589. static void
  1590. test_ChangePPS(void **state)
  1591. {
  1592. TSS2_RC r;
  1593. TSS2_TCTI_CONTEXT *tcti;
  1594. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1595. Esys_GetTcti(esys_context, &tcti);
  1596. ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  1597. r = Esys_ChangePPS(esys_context,
  1598. authHandle_handle,
  1599. ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE);
  1600. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1601. }
  1602. static void
  1603. test_ChangeEPS(void **state)
  1604. {
  1605. TSS2_RC r;
  1606. TSS2_TCTI_CONTEXT *tcti;
  1607. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1608. Esys_GetTcti(esys_context, &tcti);
  1609. ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  1610. r = Esys_ChangeEPS(esys_context,
  1611. authHandle_handle,
  1612. ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE);
  1613. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1614. }
  1615. static void
  1616. test_Clear(void **state)
  1617. {
  1618. TSS2_RC r;
  1619. TSS2_TCTI_CONTEXT *tcti;
  1620. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1621. Esys_GetTcti(esys_context, &tcti);
  1622. ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  1623. r = Esys_Clear(esys_context,
  1624. authHandle_handle,
  1625. ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE);
  1626. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1627. }
  1628. static void
  1629. test_ClearControl(void **state)
  1630. {
  1631. TSS2_RC r;
  1632. TSS2_TCTI_CONTEXT *tcti;
  1633. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1634. Esys_GetTcti(esys_context, &tcti);
  1635. ESYS_TR auth_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  1636. TPMI_YES_NO disable = 0;
  1637. r = Esys_ClearControl(esys_context,
  1638. auth_handle,
  1639. ESYS_TR_PASSWORD,
  1640. ESYS_TR_NONE, ESYS_TR_NONE, disable);
  1641. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1642. }
  1643. static void
  1644. test_HierarchyChangeAuth(void **state)
  1645. {
  1646. TSS2_RC r;
  1647. TSS2_TCTI_CONTEXT *tcti;
  1648. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1649. Esys_GetTcti(esys_context, &tcti);
  1650. ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  1651. TPM2B_AUTH newAuth = DUMMY_2B_DATA(.buffer);
  1652. r = Esys_HierarchyChangeAuth(esys_context,
  1653. authHandle_handle,
  1654. ESYS_TR_PASSWORD,
  1655. ESYS_TR_NONE, ESYS_TR_NONE, &newAuth);
  1656. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1657. }
  1658. static void
  1659. test_DictionaryAttackLockReset(void **state)
  1660. {
  1661. TSS2_RC r;
  1662. TSS2_TCTI_CONTEXT *tcti;
  1663. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1664. Esys_GetTcti(esys_context, &tcti);
  1665. ESYS_TR lockHandle_handle = DUMMY_TR_HANDLE_LOCKOUT;;
  1666. r = Esys_DictionaryAttackLockReset(esys_context,
  1667. lockHandle_handle,
  1668. ESYS_TR_PASSWORD,
  1669. ESYS_TR_NONE, ESYS_TR_NONE);
  1670. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1671. }
  1672. static void
  1673. test_DictionaryAttackParameters(void **state)
  1674. {
  1675. TSS2_RC r;
  1676. TSS2_TCTI_CONTEXT *tcti;
  1677. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1678. Esys_GetTcti(esys_context, &tcti);
  1679. ESYS_TR lockHandle_handle = DUMMY_TR_HANDLE_LOCKOUT;
  1680. UINT32 newMaxTries = 0;
  1681. UINT32 newRecoveryTime = 0;
  1682. UINT32 lockoutRecovery = 0;
  1683. r = Esys_DictionaryAttackParameters(esys_context,
  1684. lockHandle_handle,
  1685. ESYS_TR_PASSWORD,
  1686. ESYS_TR_NONE,
  1687. ESYS_TR_NONE,
  1688. newMaxTries,
  1689. newRecoveryTime, lockoutRecovery);
  1690. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1691. }
  1692. static void
  1693. test_PP_Commands(void **state)
  1694. {
  1695. TSS2_RC r;
  1696. TSS2_TCTI_CONTEXT *tcti;
  1697. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1698. Esys_GetTcti(esys_context, &tcti);
  1699. ESYS_TR auth_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  1700. TPML_CC setList = { 0 };
  1701. TPML_CC clearList = { 0 };
  1702. r = Esys_PP_Commands(esys_context,
  1703. auth_handle,
  1704. ESYS_TR_PASSWORD,
  1705. ESYS_TR_NONE, ESYS_TR_NONE, &setList, &clearList);
  1706. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1707. }
  1708. static void
  1709. test_SetAlgorithmSet(void **state)
  1710. {
  1711. TSS2_RC r;
  1712. TSS2_TCTI_CONTEXT *tcti;
  1713. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1714. Esys_GetTcti(esys_context, &tcti);
  1715. ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  1716. UINT32 algorithmSet = 0;
  1717. r = Esys_SetAlgorithmSet(esys_context,
  1718. authHandle_handle,
  1719. ESYS_TR_PASSWORD,
  1720. ESYS_TR_NONE, ESYS_TR_NONE, algorithmSet);
  1721. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1722. }
  1723. static void
  1724. test_FieldUpgradeStart(void **state)
  1725. {
  1726. TSS2_RC r;
  1727. TSS2_TCTI_CONTEXT *tcti;
  1728. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1729. Esys_GetTcti(esys_context, &tcti);
  1730. ESYS_TR authorization_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;;
  1731. ESYS_TR keyHandle_handle = DUMMY_TR_HANDLE_KEY;
  1732. TPM2B_DIGEST fuDigest = DUMMY_2B_DATA(.buffer);
  1733. TPMT_SIGNATURE manifestSignature = DUMMY_TPMT_SIGNATURE;
  1734. r = Esys_FieldUpgradeStart(esys_context,
  1735. authorization_handle,
  1736. keyHandle_handle,
  1737. ESYS_TR_PASSWORD,
  1738. ESYS_TR_NONE,
  1739. ESYS_TR_NONE, &fuDigest, &manifestSignature);
  1740. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1741. }
  1742. static void
  1743. test_FieldUpgradeData(void **state)
  1744. {
  1745. TSS2_RC r;
  1746. TSS2_TCTI_CONTEXT *tcti;
  1747. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1748. Esys_GetTcti(esys_context, &tcti);
  1749. TPM2B_MAX_BUFFER fuData = DUMMY_2B_DATA(.buffer);
  1750. TPMT_HA *nextDigest;
  1751. TPMT_HA *firstDigest;
  1752. r = Esys_FieldUpgradeData(esys_context,
  1753. ESYS_TR_NONE,
  1754. ESYS_TR_NONE,
  1755. ESYS_TR_NONE, &fuData, &nextDigest, &firstDigest);
  1756. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1757. }
  1758. static void
  1759. test_FirmwareRead(void **state)
  1760. {
  1761. TSS2_RC r;
  1762. TSS2_TCTI_CONTEXT *tcti;
  1763. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1764. Esys_GetTcti(esys_context, &tcti);
  1765. UINT32 sequenceNumber = 0;
  1766. TPM2B_MAX_BUFFER *fuData;
  1767. r = Esys_FirmwareRead(esys_context,
  1768. ESYS_TR_NONE,
  1769. ESYS_TR_NONE, ESYS_TR_NONE, sequenceNumber, &fuData);
  1770. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1771. }
  1772. static void
  1773. test_ContextSave(void **state)
  1774. {
  1775. TSS2_RC r;
  1776. TSS2_TCTI_CONTEXT *tcti;
  1777. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1778. Esys_GetTcti(esys_context, &tcti);
  1779. ESYS_TR saveHandle_handle = DUMMY_TR_HANDLE_KEY;
  1780. TPMS_CONTEXT *context;
  1781. r = Esys_ContextSave(esys_context, saveHandle_handle, &context);
  1782. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1783. }
  1784. static void
  1785. test_ContextLoad(void **state)
  1786. {
  1787. TSS2_RC r;
  1788. TSS2_TCTI_CONTEXT *tcti;
  1789. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1790. Esys_GetTcti(esys_context, &tcti);
  1791. TPMS_CONTEXT context = { 0 };
  1792. ESYS_TR loadedHandle_handle;
  1793. context.contextBlob.size = 0x100;
  1794. context.savedHandle = TPM2_TRANSIENT_FIRST;
  1795. context.hierarchy = TPM2_RH_OWNER;
  1796. r = Esys_ContextLoad(esys_context, &context, &loadedHandle_handle);
  1797. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1798. }
  1799. static void
  1800. test_FlushContext(void **state)
  1801. {
  1802. TSS2_RC r;
  1803. TSS2_TCTI_CONTEXT *tcti;
  1804. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1805. Esys_GetTcti(esys_context, &tcti);
  1806. ESYS_TR flushHandle_handle = DUMMY_TR_HANDLE_KEY;
  1807. r = Esys_FlushContext(esys_context, flushHandle_handle);
  1808. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1809. }
  1810. static void
  1811. test_EvictControl(void **state)
  1812. {
  1813. TSS2_RC r;
  1814. TSS2_TCTI_CONTEXT *tcti;
  1815. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1816. Esys_GetTcti(esys_context, &tcti);
  1817. ESYS_TR auth_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  1818. ESYS_TR objectHandle_handle = DUMMY_TR_HANDLE_KEY;
  1819. TPMI_DH_PERSISTENT persistentHandle = TPM2_PERSISTENT_FIRST;
  1820. ESYS_TR newObjectHandle_handle;
  1821. r = Esys_EvictControl(esys_context,
  1822. auth_handle,
  1823. objectHandle_handle,
  1824. ESYS_TR_PASSWORD,
  1825. ESYS_TR_NONE,
  1826. ESYS_TR_NONE,
  1827. persistentHandle, &newObjectHandle_handle);
  1828. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1829. }
  1830. static void
  1831. test_ReadClock(void **state)
  1832. {
  1833. TSS2_RC r;
  1834. TSS2_TCTI_CONTEXT *tcti;
  1835. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1836. Esys_GetTcti(esys_context, &tcti);
  1837. TPMS_TIME_INFO *currentTime;
  1838. r = Esys_ReadClock(esys_context,
  1839. ESYS_TR_NONE, ESYS_TR_NONE, ESYS_TR_NONE, &currentTime);
  1840. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1841. }
  1842. static void
  1843. test_ClockSet(void **state)
  1844. {
  1845. TSS2_RC r;
  1846. TSS2_TCTI_CONTEXT *tcti;
  1847. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1848. Esys_GetTcti(esys_context, &tcti);
  1849. ESYS_TR auth_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  1850. UINT64 newTime = 0;
  1851. r = Esys_ClockSet(esys_context,
  1852. auth_handle,
  1853. ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE, newTime);
  1854. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1855. }
  1856. static void
  1857. test_ClockRateAdjust(void **state)
  1858. {
  1859. TSS2_RC r;
  1860. TSS2_TCTI_CONTEXT *tcti;
  1861. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1862. Esys_GetTcti(esys_context, &tcti);
  1863. ESYS_TR auth_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  1864. TPM2_CLOCK_ADJUST rateAdjust = 0;
  1865. r = Esys_ClockRateAdjust(esys_context,
  1866. auth_handle,
  1867. ESYS_TR_PASSWORD,
  1868. ESYS_TR_NONE, ESYS_TR_NONE, rateAdjust);
  1869. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1870. }
  1871. static void
  1872. test_GetCapability(void **state)
  1873. {
  1874. TSS2_RC r;
  1875. TSS2_TCTI_CONTEXT *tcti;
  1876. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1877. Esys_GetTcti(esys_context, &tcti);
  1878. TPM2_CAP capability = 0;
  1879. UINT32 property = 0;
  1880. UINT32 propertyCount = 0;
  1881. TPMS_CAPABILITY_DATA *capabilityData;
  1882. TPMI_YES_NO moreData;
  1883. r = Esys_GetCapability(esys_context,
  1884. ESYS_TR_NONE,
  1885. ESYS_TR_NONE,
  1886. ESYS_TR_NONE,
  1887. capability,
  1888. property, propertyCount, &moreData, &capabilityData);
  1889. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1890. }
  1891. static void
  1892. test_TestParms(void **state)
  1893. {
  1894. TSS2_RC r;
  1895. TSS2_TCTI_CONTEXT *tcti;
  1896. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1897. Esys_GetTcti(esys_context, &tcti);
  1898. TPMT_PUBLIC_PARMS parameters = DUMMY_TPMT_PUBLIC_PARAMS;
  1899. r = Esys_TestParms(esys_context,
  1900. ESYS_TR_NONE, ESYS_TR_NONE, ESYS_TR_NONE, &parameters);
  1901. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1902. }
  1903. static void
  1904. test_NV_DefineSpace(void **state)
  1905. {
  1906. TSS2_RC r;
  1907. TSS2_TCTI_CONTEXT *tcti;
  1908. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1909. Esys_GetTcti(esys_context, &tcti);
  1910. ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  1911. TPM2B_AUTH auth = DUMMY_2B_DATA(.buffer);
  1912. TPM2B_NV_PUBLIC publicInfo = {
  1913. .size = 0,
  1914. .nvPublic = {
  1915. .nvIndex = TPM2_NV_INDEX_FIRST,
  1916. .nameAlg = TPM2_ALG_SHA1,
  1917. .attributes = (TPMA_NV_PPWRITE |
  1918. TPMA_NV_AUTHWRITE |
  1919. 1 << TPMA_NV_TPM2_NT_SHIFT |
  1920. TPMA_NV_WRITE_STCLEAR |
  1921. TPMA_NV_PPREAD |
  1922. TPMA_NV_AUTHREAD | TPMA_NV_PLATFORMCREATE),
  1923. .authPolicy = {
  1924. .size = 0,
  1925. .buffer = {},
  1926. },
  1927. .dataSize = 32,
  1928. }
  1929. };
  1930. ESYS_TR nvHandle_handle;
  1931. r = Esys_NV_DefineSpace(esys_context,
  1932. authHandle_handle,
  1933. ESYS_TR_PASSWORD,
  1934. ESYS_TR_NONE,
  1935. ESYS_TR_NONE, &auth, &publicInfo, &nvHandle_handle);
  1936. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1937. }
  1938. static void
  1939. test_NV_UndefineSpace(void **state)
  1940. {
  1941. TSS2_RC r;
  1942. TSS2_TCTI_CONTEXT *tcti;
  1943. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1944. Esys_GetTcti(esys_context, &tcti);
  1945. ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  1946. ESYS_TR nvIndex_handle = DUMMY_TR_HANDLE_NV_INDEX;
  1947. r = Esys_NV_UndefineSpace(esys_context,
  1948. authHandle_handle,
  1949. nvIndex_handle,
  1950. ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE);
  1951. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1952. }
  1953. static void
  1954. test_NV_UndefineSpaceSpecial(void **state)
  1955. {
  1956. TSS2_RC r;
  1957. TSS2_TCTI_CONTEXT *tcti;
  1958. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1959. Esys_GetTcti(esys_context, &tcti);
  1960. ESYS_TR nvIndex_handle = DUMMY_TR_HANDLE_NV_INDEX;
  1961. ESYS_TR platform_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  1962. r = Esys_NV_UndefineSpaceSpecial(esys_context,
  1963. nvIndex_handle,
  1964. platform_handle,
  1965. ESYS_TR_PASSWORD,
  1966. ESYS_TR_PASSWORD, ESYS_TR_NONE);
  1967. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1968. }
  1969. static void
  1970. test_NV_ReadPublic(void **state)
  1971. {
  1972. TSS2_RC r;
  1973. TSS2_TCTI_CONTEXT *tcti;
  1974. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1975. Esys_GetTcti(esys_context, &tcti);
  1976. ESYS_TR nvIndex_handle = DUMMY_TR_HANDLE_NV_INDEX;
  1977. TPM2B_NV_PUBLIC *nvPublic;
  1978. TPM2B_NAME *nvName;
  1979. r = Esys_NV_ReadPublic(esys_context,
  1980. nvIndex_handle,
  1981. ESYS_TR_NONE,
  1982. ESYS_TR_NONE, ESYS_TR_NONE, &nvPublic, &nvName);
  1983. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  1984. }
  1985. static void
  1986. test_NV_Write(void **state)
  1987. {
  1988. TSS2_RC r;
  1989. TSS2_TCTI_CONTEXT *tcti;
  1990. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  1991. Esys_GetTcti(esys_context, &tcti);
  1992. ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  1993. ESYS_TR nvIndex_handle = DUMMY_TR_HANDLE_NV_INDEX;
  1994. TPM2B_MAX_NV_BUFFER data = DUMMY_2B_DATA(.buffer);
  1995. UINT16 offset = 0;
  1996. r = Esys_NV_Write(esys_context,
  1997. authHandle_handle,
  1998. nvIndex_handle,
  1999. ESYS_TR_PASSWORD,
  2000. ESYS_TR_NONE, ESYS_TR_NONE, &data, offset);
  2001. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  2002. }
  2003. static void
  2004. test_NV_Increment(void **state)
  2005. {
  2006. TSS2_RC r;
  2007. TSS2_TCTI_CONTEXT *tcti;
  2008. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  2009. Esys_GetTcti(esys_context, &tcti);
  2010. ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  2011. ESYS_TR nvIndex_handle = DUMMY_TR_HANDLE_NV_INDEX;
  2012. r = Esys_NV_Increment(esys_context,
  2013. authHandle_handle,
  2014. nvIndex_handle,
  2015. ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE);
  2016. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  2017. }
  2018. static void
  2019. test_NV_Extend(void **state)
  2020. {
  2021. TSS2_RC r;
  2022. TSS2_TCTI_CONTEXT *tcti;
  2023. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  2024. Esys_GetTcti(esys_context, &tcti);
  2025. ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  2026. ESYS_TR nvIndex_handle = DUMMY_TR_HANDLE_NV_INDEX;
  2027. TPM2B_MAX_NV_BUFFER data = DUMMY_2B_DATA(.buffer);
  2028. r = Esys_NV_Extend(esys_context,
  2029. authHandle_handle,
  2030. nvIndex_handle,
  2031. ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE, &data);
  2032. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  2033. }
  2034. static void
  2035. test_NV_SetBits(void **state)
  2036. {
  2037. TSS2_RC r;
  2038. TSS2_TCTI_CONTEXT *tcti;
  2039. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  2040. Esys_GetTcti(esys_context, &tcti);
  2041. ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  2042. ESYS_TR nvIndex_handle = DUMMY_TR_HANDLE_NV_INDEX;
  2043. UINT64 bits = 0;
  2044. r = Esys_NV_SetBits(esys_context,
  2045. authHandle_handle,
  2046. nvIndex_handle,
  2047. ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE, bits);
  2048. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  2049. }
  2050. static void
  2051. test_NV_WriteLock(void **state)
  2052. {
  2053. TSS2_RC r;
  2054. TSS2_TCTI_CONTEXT *tcti;
  2055. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  2056. Esys_GetTcti(esys_context, &tcti);
  2057. ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  2058. ESYS_TR nvIndex_handle = DUMMY_TR_HANDLE_NV_INDEX;
  2059. r = Esys_NV_WriteLock(esys_context,
  2060. authHandle_handle,
  2061. nvIndex_handle,
  2062. ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE);
  2063. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  2064. }
  2065. static void
  2066. test_NV_GlobalWriteLock(void **state)
  2067. {
  2068. TSS2_RC r;
  2069. TSS2_TCTI_CONTEXT *tcti;
  2070. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  2071. Esys_GetTcti(esys_context, &tcti);
  2072. ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  2073. r = Esys_NV_GlobalWriteLock(esys_context,
  2074. authHandle_handle,
  2075. ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE);
  2076. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  2077. }
  2078. static void
  2079. test_NV_Read(void **state)
  2080. {
  2081. TSS2_RC r;
  2082. TSS2_TCTI_CONTEXT *tcti;
  2083. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  2084. Esys_GetTcti(esys_context, &tcti);
  2085. ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  2086. ESYS_TR nvIndex_handle = DUMMY_TR_HANDLE_NV_INDEX;
  2087. UINT16 size = 0;
  2088. UINT16 offset = 0;
  2089. TPM2B_MAX_NV_BUFFER *data;
  2090. r = Esys_NV_Read(esys_context,
  2091. authHandle_handle,
  2092. nvIndex_handle,
  2093. ESYS_TR_PASSWORD,
  2094. ESYS_TR_NONE, ESYS_TR_NONE, size, offset, &data);
  2095. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  2096. }
  2097. static void
  2098. test_NV_ReadLock(void **state)
  2099. {
  2100. TSS2_RC r;
  2101. TSS2_TCTI_CONTEXT *tcti;
  2102. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  2103. Esys_GetTcti(esys_context, &tcti);
  2104. ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  2105. ESYS_TR nvIndex_handle = DUMMY_TR_HANDLE_NV_INDEX;
  2106. r = Esys_NV_ReadLock(esys_context,
  2107. authHandle_handle,
  2108. nvIndex_handle,
  2109. ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE);
  2110. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  2111. }
  2112. static void
  2113. test_NV_ChangeAuth(void **state)
  2114. {
  2115. TSS2_RC r;
  2116. TSS2_TCTI_CONTEXT *tcti;
  2117. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  2118. Esys_GetTcti(esys_context, &tcti);
  2119. ESYS_TR nvIndex_handle = DUMMY_TR_HANDLE_NV_INDEX;
  2120. TPM2B_AUTH newAuth = DUMMY_2B_DATA(.buffer);
  2121. r = Esys_NV_ChangeAuth(esys_context,
  2122. nvIndex_handle,
  2123. ESYS_TR_PASSWORD,
  2124. ESYS_TR_NONE, ESYS_TR_NONE, &newAuth);
  2125. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  2126. }
  2127. static void
  2128. test_NV_Certify(void **state)
  2129. {
  2130. TSS2_RC r;
  2131. TSS2_TCTI_CONTEXT *tcti;
  2132. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  2133. Esys_GetTcti(esys_context, &tcti);
  2134. ESYS_TR signHandle_handle = DUMMY_TR_HANDLE_KEY;
  2135. ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
  2136. ESYS_TR nvIndex_handle = DUMMY_TR_HANDLE_NV_INDEX;
  2137. TPM2B_DATA qualifyingData = DUMMY_2B_DATA(.buffer);
  2138. TPMT_SIG_SCHEME inScheme = {.scheme = TPM2_ALG_NULL,.details = {} };
  2139. UINT16 size = 0;
  2140. UINT16 offset = 0;
  2141. TPM2B_ATTEST *certifyInfo;
  2142. TPMT_SIGNATURE *signature;
  2143. r = Esys_NV_Certify(esys_context,
  2144. signHandle_handle,
  2145. authHandle_handle,
  2146. nvIndex_handle,
  2147. ESYS_TR_PASSWORD,
  2148. ESYS_TR_PASSWORD,
  2149. ESYS_TR_NONE,
  2150. &qualifyingData,
  2151. &inScheme, size, offset, &certifyInfo, &signature);
  2152. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  2153. }
  2154. static void
  2155. test_Vendor_TCG_Test(void **state)
  2156. {
  2157. TSS2_RC r;
  2158. TSS2_TCTI_CONTEXT *tcti;
  2159. ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
  2160. Esys_GetTcti(esys_context, &tcti);
  2161. TPM2B_DATA inputData = DUMMY_2B_DATA(.buffer);
  2162. TPM2B_DATA *outputData;
  2163. r = Esys_Vendor_TCG_Test(esys_context,
  2164. ESYS_TR_NONE,
  2165. ESYS_TR_NONE,
  2166. ESYS_TR_NONE, &inputData, &outputData);
  2167. assert_int_equal(r, TSS2_TCTI_RC_NO_CONNECTION);
  2168. }
  2169. int
  2170. main(int argc, char *argv[])
  2171. {
  2172. const struct CMUnitTest tests[] = {
  2173. cmocka_unit_test_setup_teardown(test_Startup, setup, teardown),
  2174. cmocka_unit_test_setup_teardown(test_Shutdown, setup, teardown),
  2175. cmocka_unit_test_setup_teardown(test_SelfTest, setup, teardown),
  2176. cmocka_unit_test_setup_teardown(test_IncrementalSelfTest, setup,
  2177. teardown),
  2178. cmocka_unit_test_setup_teardown(test_GetTestResult, setup, teardown),
  2179. cmocka_unit_test_setup_teardown(test_StartAuthSession, setup, teardown),
  2180. cmocka_unit_test_setup_teardown(test_PolicyRestart, setup, teardown),
  2181. cmocka_unit_test_setup_teardown(test_Create, setup, teardown),
  2182. cmocka_unit_test_setup_teardown(test_Load, setup, teardown),
  2183. cmocka_unit_test_setup_teardown(test_LoadExternal, setup, teardown),
  2184. cmocka_unit_test_setup_teardown(test_ReadPublic, setup, teardown),
  2185. cmocka_unit_test_setup_teardown(test_ActivateCredential, setup,
  2186. teardown),
  2187. cmocka_unit_test_setup_teardown(test_MakeCredential, setup, teardown),
  2188. cmocka_unit_test_setup_teardown(test_Unseal, setup, teardown),
  2189. cmocka_unit_test_setup_teardown(test_ObjectChangeAuth, setup, teardown),
  2190. cmocka_unit_test_setup_teardown(test_Duplicate, setup, teardown),
  2191. cmocka_unit_test_setup_teardown(test_Rewrap, setup, teardown),
  2192. cmocka_unit_test_setup_teardown(test_Import, setup, teardown),
  2193. cmocka_unit_test_setup_teardown(test_RSA_Encrypt, setup, teardown),
  2194. cmocka_unit_test_setup_teardown(test_RSA_Decrypt, setup, teardown),
  2195. cmocka_unit_test_setup_teardown(test_ECDH_KeyGen, setup, teardown),
  2196. cmocka_unit_test_setup_teardown(test_ECDH_ZGen, setup, teardown),
  2197. cmocka_unit_test_setup_teardown(test_ECC_Parameters, setup, teardown),
  2198. cmocka_unit_test_setup_teardown(test_ZGen_2Phase, setup, teardown),
  2199. cmocka_unit_test_setup_teardown(test_EncryptDecrypt, setup, teardown),
  2200. cmocka_unit_test_setup_teardown(test_EncryptDecrypt2, setup, teardown),
  2201. cmocka_unit_test_setup_teardown(test_Hash, setup, teardown),
  2202. cmocka_unit_test_setup_teardown(test_HMAC, setup, teardown),
  2203. cmocka_unit_test_setup_teardown(test_GetRandom, setup, teardown),
  2204. cmocka_unit_test_setup_teardown(test_StirRandom, setup, teardown),
  2205. cmocka_unit_test_setup_teardown(test_HMAC_Start, setup, teardown),
  2206. cmocka_unit_test_setup_teardown(test_HashSequenceStart, setup,
  2207. teardown),
  2208. cmocka_unit_test_setup_teardown(test_SequenceUpdate, setup, teardown),
  2209. cmocka_unit_test_setup_teardown(test_SequenceComplete, setup, teardown),
  2210. cmocka_unit_test_setup_teardown(test_EventSequenceComplete, setup,
  2211. teardown),
  2212. cmocka_unit_test_setup_teardown(test_Certify, setup, teardown),
  2213. cmocka_unit_test_setup_teardown(test_CertifyCreation, setup, teardown),
  2214. cmocka_unit_test_setup_teardown(test_Quote, setup, teardown),
  2215. cmocka_unit_test_setup_teardown(test_GetSessionAuditDigest, setup,
  2216. teardown),
  2217. cmocka_unit_test_setup_teardown(test_GetCommandAuditDigest, setup,
  2218. teardown),
  2219. cmocka_unit_test_setup_teardown(test_GetTime, setup, teardown),
  2220. cmocka_unit_test_setup_teardown(test_Commit, setup, teardown),
  2221. cmocka_unit_test_setup_teardown(test_EC_Ephemeral, setup, teardown),
  2222. cmocka_unit_test_setup_teardown(test_VerifySignature, setup, teardown),
  2223. cmocka_unit_test_setup_teardown(test_Sign, setup, teardown),
  2224. cmocka_unit_test_setup_teardown(test_SetCommandCodeAuditStatus, setup,
  2225. teardown),
  2226. cmocka_unit_test_setup_teardown(test_PCR_Extend, setup, teardown),
  2227. cmocka_unit_test_setup_teardown(test_PCR_Event, setup, teardown),
  2228. cmocka_unit_test_setup_teardown(test_PCR_Read, setup, teardown),
  2229. cmocka_unit_test_setup_teardown(test_PCR_Allocate, setup, teardown),
  2230. cmocka_unit_test_setup_teardown(test_PCR_SetAuthPolicy, setup,
  2231. teardown),
  2232. cmocka_unit_test_setup_teardown(test_PCR_SetAuthValue, setup, teardown),
  2233. cmocka_unit_test_setup_teardown(test_PCR_Reset, setup, teardown),
  2234. cmocka_unit_test_setup_teardown(test_PolicySigned, setup, teardown),
  2235. cmocka_unit_test_setup_teardown(test_PolicySecret, setup, teardown),
  2236. cmocka_unit_test_setup_teardown(test_PolicyTicket, setup, teardown),
  2237. cmocka_unit_test_setup_teardown(test_PolicyOR, setup, teardown),
  2238. cmocka_unit_test_setup_teardown(test_PolicyPCR, setup, teardown),
  2239. cmocka_unit_test_setup_teardown(test_PolicyLocality, setup, teardown),
  2240. cmocka_unit_test_setup_teardown(test_PolicyNV, setup, teardown),
  2241. cmocka_unit_test_setup_teardown(test_PolicyCounterTimer, setup,
  2242. teardown),
  2243. cmocka_unit_test_setup_teardown(test_PolicyCommandCode, setup,
  2244. teardown),
  2245. cmocka_unit_test_setup_teardown(test_PolicyPhysicalPresence, setup,
  2246. teardown),
  2247. cmocka_unit_test_setup_teardown(test_PolicyCpHash, setup, teardown),
  2248. cmocka_unit_test_setup_teardown(test_PolicyNameHash, setup, teardown),
  2249. cmocka_unit_test_setup_teardown(test_PolicyDuplicationSelect, setup,
  2250. teardown),
  2251. cmocka_unit_test_setup_teardown(test_PolicyAuthorize, setup, teardown),
  2252. cmocka_unit_test_setup_teardown(test_PolicyAuthValue, setup, teardown),
  2253. cmocka_unit_test_setup_teardown(test_PolicyPassword, setup, teardown),
  2254. cmocka_unit_test_setup_teardown(test_PolicyGetDigest, setup, teardown),
  2255. cmocka_unit_test_setup_teardown(test_PolicyNvWritten, setup, teardown),
  2256. cmocka_unit_test_setup_teardown(test_PolicyTemplate, setup, teardown),
  2257. cmocka_unit_test_setup_teardown(test_PolicyAuthorizeNV, setup,
  2258. teardown),
  2259. cmocka_unit_test_setup_teardown(test_CreatePrimary, setup, teardown),
  2260. cmocka_unit_test_setup_teardown(test_HierarchyControl, setup, teardown),
  2261. cmocka_unit_test_setup_teardown(test_SetPrimaryPolicy, setup, teardown),
  2262. cmocka_unit_test_setup_teardown(test_ChangePPS, setup, teardown),
  2263. cmocka_unit_test_setup_teardown(test_ChangeEPS, setup, teardown),
  2264. cmocka_unit_test_setup_teardown(test_Clear, setup, teardown),
  2265. cmocka_unit_test_setup_teardown(test_ClearControl, setup, teardown),
  2266. cmocka_unit_test_setup_teardown(test_HierarchyChangeAuth, setup,
  2267. teardown),
  2268. cmocka_unit_test_setup_teardown(test_DictionaryAttackLockReset, setup,
  2269. teardown),
  2270. cmocka_unit_test_setup_teardown(test_DictionaryAttackParameters, setup,
  2271. teardown),
  2272. cmocka_unit_test_setup_teardown(test_PP_Commands, setup, teardown),
  2273. cmocka_unit_test_setup_teardown(test_SetAlgorithmSet, setup, teardown),
  2274. cmocka_unit_test_setup_teardown(test_FieldUpgradeStart, setup,
  2275. teardown),
  2276. cmocka_unit_test_setup_teardown(test_FieldUpgradeData, setup, teardown),
  2277. cmocka_unit_test_setup_teardown(test_FirmwareRead, setup, teardown),
  2278. cmocka_unit_test_setup_teardown(test_ContextSave, setup, teardown),
  2279. cmocka_unit_test_setup_teardown(test_ContextLoad, setup, teardown),
  2280. cmocka_unit_test_setup_teardown(test_FlushContext, setup, teardown),
  2281. cmocka_unit_test_setup_teardown(test_EvictControl, setup, teardown),
  2282. cmocka_unit_test_setup_teardown(test_ReadClock, setup, teardown),
  2283. cmocka_unit_test_setup_teardown(test_ClockSet, setup, teardown),
  2284. cmocka_unit_test_setup_teardown(test_ClockRateAdjust, setup, teardown),
  2285. cmocka_unit_test_setup_teardown(test_GetCapability, setup, teardown),
  2286. cmocka_unit_test_setup_teardown(test_TestParms, setup, teardown),
  2287. cmocka_unit_test_setup_teardown(test_NV_DefineSpace, setup, teardown),
  2288. cmocka_unit_test_setup_teardown(test_NV_UndefineSpace, setup, teardown),
  2289. cmocka_unit_test_setup_teardown(test_NV_UndefineSpaceSpecial, setup,
  2290. teardown),
  2291. cmocka_unit_test_setup_teardown(test_NV_ReadPublic, setup, teardown),
  2292. cmocka_unit_test_setup_teardown(test_NV_Write, setup, teardown),
  2293. cmocka_unit_test_setup_teardown(test_NV_Increment, setup, teardown),
  2294. cmocka_unit_test_setup_teardown(test_NV_Extend, setup, teardown),
  2295. cmocka_unit_test_setup_teardown(test_NV_SetBits, setup, teardown),
  2296. cmocka_unit_test_setup_teardown(test_NV_WriteLock, setup, teardown),
  2297. cmocka_unit_test_setup_teardown(test_NV_GlobalWriteLock, setup,
  2298. teardown),
  2299. cmocka_unit_test_setup_teardown(test_NV_Read, setup, teardown),
  2300. cmocka_unit_test_setup_teardown(test_NV_ReadLock, setup, teardown),
  2301. cmocka_unit_test_setup_teardown(test_NV_ChangeAuth, setup, teardown),
  2302. cmocka_unit_test_setup_teardown(test_NV_Certify, setup, teardown),
  2303. cmocka_unit_test_setup_teardown(test_Vendor_TCG_Test, setup, teardown),
  2304. };
  2305. return cmocka_run_group_tests(tests, NULL, NULL);
  2306. }