123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901 |
- /* SPDX-License-Identifier: BSD-2-Clause */
- /*******************************************************************************
- * Copyright 2017-2018, Fraunhofer SIT sponsored by Infineon Technologies AG All
- * rights reserved.
- ******************************************************************************/
- #ifdef HAVE_CONFIG_H
- #include <config.h>
- #endif
- #include <stdarg.h>
- #include <inttypes.h>
- #include <string.h>
- #include <stdlib.h>
- #include <setjmp.h>
- #include <cmocka.h>
- #include "tss2_esys.h"
- #include "tss2-esys/esys_iutil.h"
- #define LOGMODULE tests
- #include "util/log.h"
- #include "util/aux_util.h"
- #include "esys-dummy-defs.h"
- /**
- * This unit test looks into a set of Esys_<cmd>() functions and tests the
- * resubmission behaviour. The ESAPI is expected to resubmit a command for a
- * certain number of times if the TPM return RC_YIELDED. After this number of
- * times, the ESAPI shall not try it any further but return the TPM's error.
- * For all these resubmissions the command must be the same as before.
- * This shall be extended to cover all functions at some point.
- */
- #define TCTI_YIELDER_MAGIC 0x5949454c44455200ULL /* 'YIELDER\0' */
- #define TCTI_YIELDER_VERSION 0x1
- typedef struct {
- uint64_t magic;
- uint32_t version;
- TSS2_TCTI_TRANSMIT_FCN transmit;
- TSS2_TCTI_RECEIVE_FCN receive;
- TSS2_RC(*finalize) (TSS2_TCTI_CONTEXT * tctiContext);
- TSS2_RC(*cancel) (TSS2_TCTI_CONTEXT * tctiContext);
- TSS2_RC(*getPollHandles) (TSS2_TCTI_CONTEXT * tctiContext,
- TSS2_TCTI_POLL_HANDLE * handles,
- size_t * num_handles);
- TSS2_RC(*setLocality) (TSS2_TCTI_CONTEXT * tctiContext, uint8_t locality);
- uint32_t count;
- uint8_t cmd[4096];
- } TSS2_TCTI_CONTEXT_YIELDER;
- static TSS2_TCTI_CONTEXT_YIELDER *
- tcti_yielder_cast(TSS2_TCTI_CONTEXT * ctx)
- {
- TSS2_TCTI_CONTEXT_YIELDER *ctxi = (TSS2_TCTI_CONTEXT_YIELDER *) ctx;
- if (ctxi == NULL || ctxi->magic != TCTI_YIELDER_MAGIC) {
- LOG_ERROR("Bad tcti passed.");
- return NULL;
- }
- return ctxi;
- }
- static TSS2_RC
- tcti_yielder_transmit(TSS2_TCTI_CONTEXT * tctiContext,
- size_t size, const uint8_t * buffer)
- {
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tctiContext);
- if (size > sizeof(tcti_yielder->cmd)) {
- LOG_ERROR("Bad size value.");
- return TSS2_TCTI_RC_INSUFFICIENT_BUFFER;
- }
- if (tcti_yielder->count != 0)
- assert_memory_equal(&tcti_yielder->cmd[0], buffer, size);
- tcti_yielder->count++;
- memcpy(&tcti_yielder->cmd[0], buffer, size);
- return TSS2_RC_SUCCESS;
- }
- const uint8_t yielded_response[] = {
- 0x80, 0x01, /* TPM_ST_NO_SESSION */
- 0x00, 0x00, 0x00, 0x0A, /* Response Size 10 */
- 0x00, 0x00, 0x09, 0x08 /* TPM_RC_YIELDED */
- };
- static TSS2_RC
- tcti_yielder_receive(TSS2_TCTI_CONTEXT * tctiContext,
- size_t * response_size,
- uint8_t * response_buffer, int32_t timeout)
- {
- *response_size = sizeof(yielded_response);
- if (response_buffer != NULL)
- memcpy(response_buffer, &yielded_response[0], sizeof(yielded_response));
- return TSS2_RC_SUCCESS;
- }
- static void
- tcti_yielder_finalize(TSS2_TCTI_CONTEXT * tctiContext)
- {
- memset(tctiContext, 0, sizeof(TSS2_TCTI_CONTEXT_YIELDER));
- }
- static TSS2_RC
- tcti_yielder_initialize(TSS2_TCTI_CONTEXT * tctiContext, size_t * contextSize)
- {
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder =
- (TSS2_TCTI_CONTEXT_YIELDER *) tctiContext;
- if (tctiContext == NULL && contextSize == NULL) {
- return TSS2_TCTI_RC_BAD_VALUE;
- } else if (tctiContext == NULL) {
- *contextSize = sizeof(*tcti_yielder);
- return TSS2_RC_SUCCESS;
- }
- /* Init TCTI context */
- memset(tcti_yielder, 0, sizeof(*tcti_yielder));
- TSS2_TCTI_MAGIC(tctiContext) = TCTI_YIELDER_MAGIC;
- TSS2_TCTI_VERSION(tctiContext) = TCTI_YIELDER_VERSION;
- TSS2_TCTI_TRANSMIT(tctiContext) = tcti_yielder_transmit;
- TSS2_TCTI_RECEIVE(tctiContext) = tcti_yielder_receive;
- TSS2_TCTI_FINALIZE(tctiContext) = tcti_yielder_finalize;
- TSS2_TCTI_CANCEL(tctiContext) = NULL;
- TSS2_TCTI_GET_POLL_HANDLES(tctiContext) = NULL;
- TSS2_TCTI_SET_LOCALITY(tctiContext) = NULL;
- tcti_yielder->count = 0;
- return TSS2_RC_SUCCESS;
- }
- static int
- setup(void **state)
- {
- TSS2_RC r;
- ESYS_CONTEXT *ectx;
- size_t size = sizeof(TSS2_TCTI_CONTEXT_YIELDER);
- TSS2_TCTI_CONTEXT *tcti = malloc(size);
- ESYS_TR objectHandle;
- RSRC_NODE_T *objectHandleNode = NULL;
- r = tcti_yielder_initialize(tcti, &size);
- if (r)
- return (int)r;
- r = Esys_Initialize(&ectx, tcti, NULL);
- if (r)
- return (int)r;
- /* Create dummy object to enable usage of SAPI prepare functions in the tests */
- objectHandle = DUMMY_TR_HANDLE_POLICY_SESSION;
- r = esys_CreateResourceObject(ectx, objectHandle, &objectHandleNode);
- if (r)
- return (int)r;
- objectHandleNode->rsrc.rsrcType = IESYSC_SESSION_RSRC;
- objectHandleNode->rsrc.handle = TPM2_POLICY_SESSION_FIRST;
- objectHandle = DUMMY_TR_HANDLE_HMAC_SESSION;
- r = esys_CreateResourceObject(ectx, objectHandle, &objectHandleNode);
- if (r)
- return (int)r;
- objectHandleNode->rsrc.rsrcType = IESYSC_SESSION_RSRC;
- objectHandleNode->rsrc.handle = TPM2_HMAC_SESSION_FIRST;
- objectHandle = DUMMY_TR_HANDLE_KEY;
- r = esys_CreateResourceObject(ectx, objectHandle, &objectHandleNode);
- if (r)
- return (int)r;
- objectHandleNode->rsrc.rsrcType = IESYSC_KEY_RSRC;
- objectHandleNode->rsrc.handle = TPM2_TRANSIENT_FIRST;
- objectHandle = DUMMY_TR_HANDLE_HIERARCHY_OWNER;
- r = esys_CreateResourceObject(ectx, objectHandle, &objectHandleNode);
- if (r)
- return (int)r;
- objectHandleNode->rsrc.rsrcType = IESYSC_WITHOUT_MISC_RSRC;
- objectHandleNode->rsrc.handle = TPM2_RH_OWNER;
- objectHandle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- r = esys_CreateResourceObject(ectx, objectHandle, &objectHandleNode);
- if (r)
- return (int)r;
- objectHandleNode->rsrc.rsrcType = IESYSC_WITHOUT_MISC_RSRC;
- objectHandleNode->rsrc.handle = TPM2_RH_PLATFORM;
- objectHandle = DUMMY_TR_HANDLE_LOCKOUT;
- r = esys_CreateResourceObject(ectx, objectHandle, &objectHandleNode);
- if (r)
- return (int)r;
- objectHandleNode->rsrc.rsrcType = IESYSC_WITHOUT_MISC_RSRC;
- objectHandleNode->rsrc.handle = TPM2_RH_LOCKOUT;
- objectHandle = DUMMY_TR_HANDLE_NV_INDEX;
- r = esys_CreateResourceObject(ectx, objectHandle, &objectHandleNode);
- if (r)
- return (int)r;
- objectHandleNode->rsrc.rsrcType = IESYSC_WITHOUT_MISC_RSRC;
- objectHandleNode->rsrc.handle = TPM2_NV_INDEX_FIRST;
- objectHandle = DUMMY_TR_HANDLE_PRIVACY_ADMIN;
- r = esys_CreateResourceObject(ectx, objectHandle, &objectHandleNode);
- if (r)
- return (int)r;
- objectHandleNode->rsrc.rsrcType = IESYSC_WITHOUT_MISC_RSRC;
- objectHandleNode->rsrc.handle = TPM2_RH_ENDORSEMENT;
- *state = (void *)ectx;
- return 0;
- }
- static int
- teardown(void **state)
- {
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *ectx = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(ectx, &tcti);
- Esys_Finalize(&ectx);
- free(tcti);
- return 0;
- }
- static void
- test_Startup(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- TPM2_SU startupType = TPM2_SU_CLEAR;
- r = Esys_Startup(esys_context, startupType);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_Shutdown(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- TPM2_SU shutdownType = TPM2_SU_CLEAR;
- r = Esys_Shutdown(esys_context,
- ESYS_TR_NONE, ESYS_TR_NONE, ESYS_TR_NONE, shutdownType);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_SelfTest(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- r = Esys_SelfTest(esys_context,
- ESYS_TR_NONE, ESYS_TR_NONE, ESYS_TR_NONE, 0);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_IncrementalSelfTest(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- TPML_ALG toTest = {0};
- TPML_ALG *toDoList = {0} ;
- r = Esys_IncrementalSelfTest(esys_context,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- ESYS_TR_NONE, &toTest, &toDoList);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_GetTestResult(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- TPM2B_MAX_BUFFER *outData;
- TPM2_RC testResult;
- r = Esys_GetTestResult(esys_context,
- ESYS_TR_NONE,
- ESYS_TR_NONE, ESYS_TR_NONE, &outData, &testResult);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_StartAuthSession(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR tpmKey_handle = ESYS_TR_NONE;
- ESYS_TR bind_handle = ESYS_TR_NONE;
- TPM2B_NONCE nonceCaller = DUMMY_2B_DATA(.buffer);
- TPM2_SE sessionType = TPM2_SE_HMAC;
- TPMT_SYM_DEF symmetric = {.algorithm = TPM2_ALG_AES,
- .keyBits = {.aes = 128},
- .mode = {.aes = TPM2_ALG_CFB}
- };
- TPMI_ALG_HASH authHash = TPM2_ALG_SHA1;
- ESYS_TR sessionHandle_handle;
- r = Esys_StartAuthSession(esys_context,
- tpmKey_handle,
- bind_handle,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- &nonceCaller,
- sessionType,
- &symmetric,
- authHash, &sessionHandle_handle);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_PolicyRestart(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- r = Esys_PolicyRestart(esys_context,
- DUMMY_TR_HANDLE_POLICY_SESSION,
- ESYS_TR_NONE, ESYS_TR_NONE, ESYS_TR_NONE);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_Create(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- TPM2B_SENSITIVE_CREATE inSensitive = { 0 };
- TPM2B_PUBLIC inPublic = DUMMY_IN_PUBLIC_DATA;
- TPM2B_DATA outsideInfo = DUMMY_2B_DATA0;
- TPML_PCR_SELECTION creationPCR = {
- .count = 0,
- };
- TPM2B_PRIVATE *outPrivate;
- TPM2B_PUBLIC *outPublic;
- TPM2B_CREATION_DATA *creationData;
- TPM2B_DIGEST *creationHash;
- TPMT_TK_CREATION *creationTicket;
- r = Esys_Create(esys_context,
- DUMMY_TR_HANDLE_KEY,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- &inSensitive,
- &inPublic,
- &outsideInfo,
- &creationPCR,
- &outPrivate,
- &outPublic, &creationData, &creationHash, &creationTicket);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_Load(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- TPM2B_PRIVATE inPrivate = DUMMY_2B_DATA(.buffer);
- TPM2B_PUBLIC inPublic = DUMMY_IN_PUBLIC_DATA;
- ESYS_TR objectHandle_handle;
- r = Esys_Load(esys_context,
- DUMMY_TR_HANDLE_KEY,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- ESYS_TR_NONE, &inPrivate, &inPublic, &objectHandle_handle);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_LoadExternal(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- TPM2B_PUBLIC inPublic = DUMMY_IN_PUBLIC_DATA;
- ESYS_TR objectHandle_handle;
- r = Esys_LoadExternal(esys_context,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- NULL, &inPublic, ESYS_TR_RH_OWNER, &objectHandle_handle);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_ReadPublic(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR objectHandle_handle = DUMMY_TR_HANDLE_KEY;
- TPM2B_PUBLIC *outPublic;
- TPM2B_NAME *name;
- TPM2B_NAME *qualifiedName;
- r = Esys_ReadPublic(esys_context,
- objectHandle_handle,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- ESYS_TR_NONE, &outPublic, &name, &qualifiedName);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_ActivateCredential(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR activateHandle_handle = DUMMY_TR_HANDLE_KEY;
- ESYS_TR keyHandle_handle = DUMMY_TR_HANDLE_KEY;
- TPM2B_ID_OBJECT credentialBlob = DUMMY_2B_DATA(.credential);
- TPM2B_ENCRYPTED_SECRET secret = DUMMY_2B_DATA(.secret);;
- TPM2B_DIGEST *certInfo;
- r = Esys_ActivateCredential(esys_context,
- activateHandle_handle,
- keyHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- &credentialBlob, &secret, &certInfo);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_MakeCredential(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR handle_handle = ESYS_TR_NONE;
- TPM2B_DIGEST credential = DUMMY_2B_DATA(.buffer);
- TPM2B_NAME objectName = DUMMY_2B_DATA(.name);;
- TPM2B_ID_OBJECT *credentialBlob;
- TPM2B_ENCRYPTED_SECRET *secret;
- r = Esys_MakeCredential(esys_context,
- handle_handle,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- &credential, &objectName, &credentialBlob, &secret);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_Unseal(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR itemHandle_handle = DUMMY_TR_HANDLE_KEY;
- TPM2B_SENSITIVE_DATA *outData;
- r = Esys_Unseal(esys_context,
- itemHandle_handle,
- ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE, &outData);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_ObjectChangeAuth(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR objectHandle_handle = DUMMY_TR_HANDLE_KEY;
- ESYS_TR parentHandle_handle = DUMMY_TR_HANDLE_KEY;
- TPM2B_AUTH newAuth = DUMMY_2B_DATA(.buffer);
- TPM2B_PRIVATE *outPrivate;
- r = Esys_ObjectChangeAuth(esys_context,
- objectHandle_handle,
- parentHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- ESYS_TR_NONE, &newAuth, &outPrivate);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_Duplicate(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR objectHandle_handle = DUMMY_TR_HANDLE_KEY;
- ESYS_TR newParentHandle_handle = DUMMY_TR_HANDLE_KEY;
- TPM2B_DATA encryptionKeyIn = DUMMY_2B_DATA(.buffer);
- TPMT_SYM_DEF_OBJECT symmetricAlg = DUMMY_SYMMETRIC;
- TPM2B_DATA *encryptionKeyOut;
- TPM2B_PRIVATE *duplicate;
- TPM2B_ENCRYPTED_SECRET *outSymSeed;
- r = Esys_Duplicate(esys_context,
- objectHandle_handle,
- newParentHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- &encryptionKeyIn,
- &symmetricAlg,
- &encryptionKeyOut, &duplicate, &outSymSeed);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_Rewrap(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR oldParent_handle = DUMMY_TR_HANDLE_KEY;
- ESYS_TR newParent_handle = DUMMY_TR_HANDLE_KEY;
- TPM2B_PRIVATE inDuplicate = DUMMY_2B_DATA(.buffer);
- TPM2B_NAME name = DUMMY_2B_DATA(.name);
- TPM2B_ENCRYPTED_SECRET inSymSeed = DUMMY_2B_DATA(.secret);
- TPM2B_PRIVATE *outDuplicate;
- TPM2B_ENCRYPTED_SECRET *outSymSeed;
- r = Esys_Rewrap(esys_context,
- oldParent_handle,
- newParent_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- &inDuplicate,
- &name, &inSymSeed, &outDuplicate, &outSymSeed);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_Import(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR parentHandle_handle = DUMMY_TR_HANDLE_KEY;
- TPM2B_DATA encryptionKey = DUMMY_2B_DATA(.buffer);
- TPM2B_PUBLIC objectPublic = DUMMY_IN_PUBLIC_DATA;
- TPM2B_PRIVATE duplicate = DUMMY_2B_DATA(.buffer);
- TPM2B_ENCRYPTED_SECRET inSymSeed = DUMMY_2B_DATA(.secret);
- TPMT_SYM_DEF_OBJECT symmetricAlg = DUMMY_SYMMETRIC;
- TPM2B_PRIVATE *outPrivate;
- r = Esys_Import(esys_context,
- parentHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- &encryptionKey,
- &objectPublic,
- &duplicate, &inSymSeed, &symmetricAlg, &outPrivate);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_RSA_Encrypt(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR keyHandle_handle = DUMMY_TR_HANDLE_KEY;
- TPM2B_PUBLIC_KEY_RSA message = DUMMY_2B_DATA(.buffer);
- TPMT_RSA_DECRYPT inScheme = DUMMY_RSA_DECRYPT;
- TPM2B_DATA label = DUMMY_2B_DATA(.buffer);
- TPM2B_PUBLIC_KEY_RSA *outData;
- r = Esys_RSA_Encrypt(esys_context,
- keyHandle_handle,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- ESYS_TR_NONE, &message, &inScheme, &label, &outData);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_RSA_Decrypt(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR keyHandle_handle = DUMMY_TR_HANDLE_KEY;
- TPM2B_PUBLIC_KEY_RSA cipherText = DUMMY_2B_DATA(.buffer);
- TPMT_RSA_DECRYPT inScheme = DUMMY_RSA_DECRYPT;
- TPM2B_DATA label = DUMMY_2B_DATA(.buffer);
- TPM2B_PUBLIC_KEY_RSA *message;
- r = Esys_RSA_Decrypt(esys_context,
- keyHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- &cipherText, &inScheme, &label, &message);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_ECDH_KeyGen(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR keyHandle_handle = DUMMY_TR_HANDLE_KEY;
- TPM2B_ECC_POINT *zPoint;
- TPM2B_ECC_POINT *pubPoint;
- r = Esys_ECDH_KeyGen(esys_context,
- keyHandle_handle,
- ESYS_TR_NONE,
- ESYS_TR_NONE, ESYS_TR_NONE, &zPoint, &pubPoint);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_ECDH_ZGen(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR keyHandle_handle = DUMMY_TR_HANDLE_KEY;
- TPM2B_ECC_POINT inPoint = { 0 };
- TPM2B_ECC_POINT *outPoint;
- r = Esys_ECDH_ZGen(esys_context,
- keyHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE, ESYS_TR_NONE, &inPoint, &outPoint);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_ECC_Parameters(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- TPMI_ECC_CURVE curveID = TPM2_ECC_BN_P256;
- TPMS_ALGORITHM_DETAIL_ECC *parameters;
- r = Esys_ECC_Parameters(esys_context,
- ESYS_TR_NONE,
- ESYS_TR_NONE, ESYS_TR_NONE, curveID, ¶meters);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_ZGen_2Phase(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR keyA_handle = DUMMY_TR_HANDLE_KEY;
- TPM2B_ECC_POINT inQsB = { 0 };
- TPM2B_ECC_POINT inQeB = { 0 };
- TPMI_ECC_KEY_EXCHANGE inScheme = TPM2_ALG_NULL;
- UINT16 counter = 0;
- TPM2B_ECC_POINT *outZ1;
- TPM2B_ECC_POINT *outZ2;
- r = Esys_ZGen_2Phase(esys_context,
- keyA_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- &inQsB, &inQeB, inScheme, counter, &outZ1, &outZ2);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_EncryptDecrypt(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR keyHandle_handle = DUMMY_TR_HANDLE_KEY;
- TPMI_YES_NO decrypt = 0;
- TPMI_ALG_CIPHER_MODE mode = TPM2_ALG_NULL;
- TPM2B_IV ivIn = DUMMY_2B_DATA16(.buffer);
- TPM2B_MAX_BUFFER inData = DUMMY_2B_DATA(.buffer);
- TPM2B_MAX_BUFFER *outData;
- TPM2B_IV *ivOut;
- r = Esys_EncryptDecrypt(esys_context,
- keyHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- decrypt, mode, &ivIn, &inData, &outData, &ivOut);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_EncryptDecrypt2(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR keyHandle_handle = DUMMY_TR_HANDLE_KEY;
- TPM2B_MAX_BUFFER inData = DUMMY_2B_DATA(.buffer);
- TPMI_YES_NO decrypt = 0;
- TPMI_ALG_CIPHER_MODE mode = TPM2_ALG_NULL;
- TPM2B_IV ivIn = DUMMY_2B_DATA16(.buffer);
- TPM2B_MAX_BUFFER *outData;
- TPM2B_IV *ivOut;
- r = Esys_EncryptDecrypt2(esys_context,
- keyHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- &inData, decrypt, mode, &ivIn, &outData, &ivOut);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_Hash(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- TPM2B_MAX_BUFFER data = DUMMY_2B_DATA(.buffer);
- TPMI_ALG_HASH hashAlg = TPM2_ALG_SHA1;
- ESYS_TR hierarchy = ESYS_TR_RH_OWNER;
- TPM2B_DIGEST *outHash;
- TPMT_TK_HASHCHECK *validation;
- r = Esys_Hash(esys_context,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- &data, hashAlg, hierarchy, &outHash, &validation);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_HMAC(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR handle_handle = DUMMY_TR_HANDLE_KEY;
- TPM2B_MAX_BUFFER buffer = DUMMY_2B_DATA(.buffer);
- TPMI_ALG_HASH hashAlg = TPM2_ALG_SHA1;
- TPM2B_DIGEST *outHMAC;
- r = Esys_HMAC(esys_context,
- handle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE, ESYS_TR_NONE, &buffer, hashAlg, &outHMAC);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_GetRandom(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- UINT16 bytesRequested = 0;
- TPM2B_DIGEST *randomBytes;
- r = Esys_GetRandom(esys_context,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- ESYS_TR_NONE, bytesRequested, &randomBytes);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_StirRandom(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- TPM2B_SENSITIVE_DATA inData = DUMMY_2B_DATA(.buffer);
- r = Esys_StirRandom(esys_context,
- ESYS_TR_NONE, ESYS_TR_NONE, ESYS_TR_NONE, &inData);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_HMAC_Start(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR handle_handle = DUMMY_TR_HANDLE_KEY;
- TPM2B_AUTH auth = DUMMY_2B_DATA(.buffer);
- TPMI_ALG_HASH hashAlg = TPM2_ALG_SHA1;
- ESYS_TR sequenceHandle_handle;
- r = Esys_HMAC_Start(esys_context,
- handle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- ESYS_TR_NONE, &auth, hashAlg, &sequenceHandle_handle);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_HashSequenceStart(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- TPM2B_AUTH auth = DUMMY_2B_DATA(.buffer);
- TPMI_ALG_HASH hashAlg = TPM2_ALG_SHA1;
- ESYS_TR sequenceHandle_handle;
- r = Esys_HashSequenceStart(esys_context,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- &auth, hashAlg, &sequenceHandle_handle);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_SequenceUpdate(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR sequenceHandle_handle = DUMMY_TR_HANDLE_KEY;
- TPM2B_MAX_BUFFER buffer = DUMMY_2B_DATA(.buffer);
- r = Esys_SequenceUpdate(esys_context,
- sequenceHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE, ESYS_TR_NONE, &buffer);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_SequenceComplete(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR sequenceHandle_handle = DUMMY_TR_HANDLE_KEY;
- TPM2B_MAX_BUFFER buffer = DUMMY_2B_DATA(.buffer);
- ESYS_TR hierarchy = ESYS_TR_RH_OWNER;
- TPM2B_DIGEST *result;
- TPMT_TK_HASHCHECK *validation;
- r = Esys_SequenceComplete(esys_context,
- sequenceHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- &buffer, hierarchy, &result, &validation);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_EventSequenceComplete(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR pcrHandle_handle = 16;
- ESYS_TR sequenceHandle_handle = DUMMY_TR_HANDLE_KEY;
- TPM2B_MAX_BUFFER buffer = DUMMY_2B_DATA(.buffer);
- TPML_DIGEST_VALUES *results;
- r = Esys_EventSequenceComplete(esys_context,
- pcrHandle_handle,
- sequenceHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE, &buffer, &results);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_Certify(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR objectHandle_handle = DUMMY_TR_HANDLE_KEY;
- ESYS_TR signHandle_handle = DUMMY_TR_HANDLE_KEY;
- TPM2B_DATA qualifyingData = DUMMY_2B_DATA(.buffer);
- TPMT_SIG_SCHEME inScheme = {.scheme = TPM2_ALG_NULL,.details = {} };
- TPM2B_ATTEST *certifyInfo;
- TPMT_SIGNATURE *signature;
- r = Esys_Certify(esys_context,
- objectHandle_handle,
- signHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- &qualifyingData, &inScheme, &certifyInfo, &signature);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_CertifyCreation(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR signHandle_handle = DUMMY_TR_HANDLE_KEY;
- ESYS_TR objectHandle_handle = DUMMY_TR_HANDLE_KEY;
- TPM2B_DATA qualifyingData = DUMMY_2B_DATA(.buffer);
- TPM2B_DIGEST creationHash = DUMMY_2B_DATA(.buffer);
- TPMT_SIG_SCHEME inScheme = {.scheme = TPM2_ALG_NULL,.details = {} };
- TPMT_TK_CREATION creationTicket = DUMMY_TPMT_TK_CREATION;
- TPM2B_ATTEST *certifyInfo;
- TPMT_SIGNATURE *signature;
- r = Esys_CertifyCreation(esys_context,
- signHandle_handle,
- objectHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- &qualifyingData,
- &creationHash,
- &inScheme,
- &creationTicket, &certifyInfo, &signature);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_Quote(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR signHandle_handle = DUMMY_TR_HANDLE_KEY;
- TPM2B_DATA qualifyingData = DUMMY_2B_DATA(.buffer);
- TPMT_SIG_SCHEME inScheme = {.scheme = TPM2_ALG_NULL,.details = {} };
- TPML_PCR_SELECTION PCRselect = { 0 };
- TPM2B_ATTEST *quoted;
- TPMT_SIGNATURE *signature;
- r = Esys_Quote(esys_context,
- signHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- &qualifyingData, &inScheme, &PCRselect, "ed, &signature);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_GetSessionAuditDigest(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR privacyAdminHandle_handle = DUMMY_TR_HANDLE_PRIVACY_ADMIN;
- ESYS_TR signHandle_handle = DUMMY_TR_HANDLE_KEY;
- ESYS_TR sessionHandle_handle = DUMMY_TR_HANDLE_HMAC_SESSION;
- TPM2B_DATA qualifyingData = DUMMY_2B_DATA(.buffer);
- TPMT_SIG_SCHEME inScheme = {.scheme = TPM2_ALG_NULL,.details = {} };
- TPM2B_ATTEST *auditInfo;
- TPMT_SIGNATURE *signature;
- r = Esys_GetSessionAuditDigest(esys_context,
- privacyAdminHandle_handle,
- signHandle_handle,
- sessionHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- &qualifyingData,
- &inScheme, &auditInfo, &signature);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_GetCommandAuditDigest(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR privacyHandle_handle = DUMMY_TR_HANDLE_PRIVACY_ADMIN;
- ESYS_TR signHandle_handle = DUMMY_TR_HANDLE_KEY;
- TPM2B_DATA qualifyingData = DUMMY_2B_DATA(.buffer);
- TPMT_SIG_SCHEME inScheme = {.scheme = TPM2_ALG_NULL,.details = {} };
- TPM2B_ATTEST *auditInfo;
- TPMT_SIGNATURE *signature;
- r = Esys_GetCommandAuditDigest(esys_context,
- privacyHandle_handle,
- signHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- &qualifyingData,
- &inScheme, &auditInfo, &signature);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_GetTime(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR privacyAdminHandle_handle = DUMMY_TR_HANDLE_PRIVACY_ADMIN;
- ESYS_TR signHandle_handle = DUMMY_TR_HANDLE_KEY;
- TPM2B_DATA qualifyingData = DUMMY_2B_DATA(.buffer);
- TPMT_SIG_SCHEME inScheme = {.scheme = TPM2_ALG_NULL,.details = {} };
- TPM2B_ATTEST *timeInfo;
- TPMT_SIGNATURE *signature;
- r = Esys_GetTime(esys_context,
- privacyAdminHandle_handle,
- signHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- &qualifyingData, &inScheme, &timeInfo, &signature);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_Commit(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR signHandle_handle = DUMMY_TR_HANDLE_KEY;
- TPM2B_ECC_POINT P1 = { 0 };
- TPM2B_SENSITIVE_DATA s2 = DUMMY_2B_DATA(.buffer);
- TPM2B_ECC_PARAMETER y2 = { 0 };
- TPM2B_ECC_POINT *K;
- TPM2B_ECC_POINT *L;
- TPM2B_ECC_POINT *E;
- UINT16 counter;
- r = Esys_Commit(esys_context,
- signHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- ESYS_TR_NONE, &P1, &s2, &y2, &K, &L, &E, &counter);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_EC_Ephemeral(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- TPMI_ECC_CURVE curveID = TPM2_ECC_BN_P256;
- TPM2B_ECC_POINT *Q;
- UINT16 counter;
- r = Esys_EC_Ephemeral(esys_context,
- ESYS_TR_NONE,
- ESYS_TR_NONE, ESYS_TR_NONE, curveID, &Q, &counter);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_VerifySignature(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR keyHandle_handle = DUMMY_TR_HANDLE_KEY;
- TPM2B_DIGEST digest = DUMMY_2B_DATA(.buffer);
- TPMT_SIGNATURE signature = DUMMY_TPMT_SIGNATURE;
- TPMT_TK_VERIFIED *validation;
- r = Esys_VerifySignature(esys_context,
- keyHandle_handle,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- ESYS_TR_NONE, &digest, &signature, &validation);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_Sign(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR keyHandle_handle = DUMMY_TR_HANDLE_KEY;
- TPM2B_DIGEST digest = DUMMY_2B_DATA(.buffer);
- TPMT_SIG_SCHEME inScheme = {.scheme = TPM2_ALG_NULL,.details = {} };
- TPMT_TK_HASHCHECK validation = DUMMY_TPMT_TK_HASHCHECK;
- TPMT_SIGNATURE *signature;
- r = Esys_Sign(esys_context,
- keyHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- ESYS_TR_NONE, &digest, &inScheme, &validation, &signature);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_SetCommandCodeAuditStatus(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR auth_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- TPMI_ALG_HASH auditAlg = TPM2_ALG_SHA1;
- TPML_CC setList = { 0 };
- TPML_CC clearList = { 0 };
- r = Esys_SetCommandCodeAuditStatus(esys_context,
- auth_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- auditAlg, &setList, &clearList);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_PCR_Extend(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR pcrHandle_handle = 16;
- TPML_DIGEST_VALUES digests = { 0 };
- r = Esys_PCR_Extend(esys_context,
- pcrHandle_handle,
- ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE, &digests);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_PCR_Event(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR pcrHandle_handle = 16;
- TPM2B_EVENT eventData = DUMMY_2B_DATA(.buffer);
- TPML_DIGEST_VALUES *digests;
- r = Esys_PCR_Event(esys_context,
- pcrHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE, ESYS_TR_NONE, &eventData, &digests);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_PCR_Read(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- TPML_PCR_SELECTION pcrSelectionIn = { 0 };
- TPML_PCR_SELECTION *pcrSelectionOut;
- TPML_DIGEST *pcrValues;
- UINT32 pcrUpdateCounter;
- r = Esys_PCR_Read(esys_context,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- &pcrSelectionIn,
- &pcrUpdateCounter, &pcrSelectionOut, &pcrValues);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_PCR_Allocate(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- TPML_PCR_SELECTION pcrAllocation = { 0 };
- TPMI_YES_NO allocationSuccess;
- UINT32 maxPCR;
- UINT32 sizeNeeded;
- UINT32 sizeAvailable;
- r = Esys_PCR_Allocate(esys_context,
- authHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- &pcrAllocation,
- &allocationSuccess,
- &maxPCR, &sizeNeeded, &sizeAvailable);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_PCR_SetAuthPolicy(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- TPM2B_DIGEST authPolicy = DUMMY_2B_DATA(.buffer);
- TPMI_ALG_HASH hashAlg = TPM2_ALG_SHA1;
- TPMI_DH_PCR pcrNum = 0;
- r = Esys_PCR_SetAuthPolicy(esys_context,
- authHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- ESYS_TR_NONE, &authPolicy, hashAlg, pcrNum);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_PCR_SetAuthValue(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR pcrHandle_handle = 16;
- TPM2B_DIGEST auth = DUMMY_2B_DATA(.buffer);
- r = Esys_PCR_SetAuthValue(esys_context,
- pcrHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE, ESYS_TR_NONE, &auth);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_PCR_Reset(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR pcrHandle_handle = 16;
- r = Esys_PCR_Reset(esys_context,
- pcrHandle_handle,
- ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_PolicySigned(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR authObject_handle = DUMMY_TR_HANDLE_KEY;
- ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
- TPM2B_NONCE nonceTPM = DUMMY_2B_DATA(.buffer);
- TPM2B_DIGEST cpHashA = DUMMY_2B_DATA(.buffer);
- TPM2B_NONCE policyRef = DUMMY_2B_DATA(.buffer);
- INT32 expiration = 0;
- TPMT_SIGNATURE auth = DUMMY_TPMT_SIGNATURE;
- TPM2B_TIMEOUT *timeout;
- TPMT_TK_AUTH *policyTicket;
- r = Esys_PolicySigned(esys_context,
- authObject_handle,
- policySession_handle,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- &nonceTPM,
- &cpHashA,
- &policyRef,
- expiration, &auth, &timeout, &policyTicket);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_PolicySecret(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
- TPM2B_NONCE nonceTPM = DUMMY_2B_DATA(.buffer);
- TPM2B_DIGEST cpHashA = DUMMY_2B_DATA(.buffer);
- TPM2B_NONCE policyRef = DUMMY_2B_DATA(.buffer);
- INT32 expiration = 0;
- TPM2B_TIMEOUT *timeout;
- TPMT_TK_AUTH *policyTicket;
- r = Esys_PolicySecret(esys_context,
- authHandle_handle,
- policySession_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- &nonceTPM,
- &cpHashA,
- &policyRef, expiration, &timeout, &policyTicket);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_PolicyTicket(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
- TPM2B_TIMEOUT timeout = DUMMY_2B_DATA(.buffer);
- TPM2B_DIGEST cpHashA = DUMMY_2B_DATA(.buffer);
- TPM2B_NONCE policyRef = DUMMY_2B_DATA(.buffer);
- TPM2B_NAME authName = DUMMY_2B_DATA(.name);
- TPMT_TK_AUTH ticket = DUMMY_TPMT_TK_AUTH;
- r = Esys_PolicyTicket(esys_context,
- policySession_handle,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- &timeout, &cpHashA, &policyRef, &authName, &ticket);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_PolicyOR(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
- TPML_DIGEST pHashList = { 0 };
- r = Esys_PolicyOR(esys_context,
- policySession_handle,
- ESYS_TR_NONE, ESYS_TR_NONE, ESYS_TR_NONE, &pHashList);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_PolicyPCR(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
- TPM2B_DIGEST pcrDigest = DUMMY_2B_DATA(.buffer);
- TPML_PCR_SELECTION pcrs = { 0 };
- r = Esys_PolicyPCR(esys_context,
- policySession_handle,
- ESYS_TR_NONE,
- ESYS_TR_NONE, ESYS_TR_NONE, &pcrDigest, &pcrs);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_PolicyLocality(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
- TPMA_LOCALITY locality = TPMA_LOCALITY_TPM2_LOC_ZERO;
- r = Esys_PolicyLocality(esys_context,
- policySession_handle,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- locality);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_PolicyNV(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- ESYS_TR nvIndex_handle = DUMMY_TR_HANDLE_NV_INDEX;
- ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
- TPM2B_OPERAND operandB = DUMMY_2B_DATA(.buffer);
- UINT16 offset = 0;
- TPM2_EO operation = 0;
- r = Esys_PolicyNV(esys_context,
- authHandle_handle,
- nvIndex_handle,
- policySession_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE, ESYS_TR_NONE, &operandB, offset, operation);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_PolicyCounterTimer(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
- TPM2B_OPERAND operandB = DUMMY_2B_DATA(.buffer);
- UINT16 offset = 0;
- TPM2_EO operation = 0;
- r = Esys_PolicyCounterTimer(esys_context,
- policySession_handle,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- ESYS_TR_NONE, &operandB, offset, operation);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_PolicyCommandCode(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
- TPM2_CC code = TPM2_CC_FIRST;
- r = Esys_PolicyCommandCode(esys_context,
- policySession_handle,
- ESYS_TR_NONE, ESYS_TR_NONE, ESYS_TR_NONE, code);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_PolicyPhysicalPresence(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
- r = Esys_PolicyPhysicalPresence(esys_context,
- policySession_handle,
- ESYS_TR_NONE, ESYS_TR_NONE, ESYS_TR_NONE);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_PolicyCpHash(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR policySession = DUMMY_TR_HANDLE_POLICY_SESSION;
- TPM2B_DIGEST cpHashA = DUMMY_2B_DATA(.buffer);
- r = Esys_PolicyCpHash(esys_context,
- policySession,
- ESYS_TR_NONE,
- ESYS_TR_NONE, ESYS_TR_NONE, &cpHashA);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_PolicyNameHash(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR policySession = DUMMY_TR_HANDLE_POLICY_SESSION;
- TPM2B_DIGEST nameHash = DUMMY_2B_DATA(.buffer);
- r = Esys_PolicyNameHash(esys_context,
- policySession,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- ESYS_TR_NONE, &nameHash);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_PolicyDuplicationSelect(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR policySession = DUMMY_TR_HANDLE_POLICY_SESSION;
- TPM2B_NAME objectName = DUMMY_2B_DATA(.name);
- TPM2B_NAME newParentName = DUMMY_2B_DATA(.name);
- TPMI_YES_NO includeObject = 0;
- r = Esys_PolicyDuplicationSelect(esys_context,
- policySession,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- &objectName,
- &newParentName, includeObject);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_PolicyAuthorize(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
- TPM2B_DIGEST approvedPolicy = DUMMY_2B_DATA(.buffer);
- TPM2B_NONCE policyRef = DUMMY_2B_DATA(.buffer);
- TPM2B_NAME keySign = DUMMY_2B_DATA(.name);
- TPMT_TK_VERIFIED checkTicket = DUMMY_TPMT_TK_VERIFIED;
- r = Esys_PolicyAuthorize(esys_context,
- policySession_handle,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- &approvedPolicy,
- &policyRef, &keySign, &checkTicket);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_PolicyAuthValue(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
- r = Esys_PolicyAuthValue(esys_context,
- policySession_handle,
- ESYS_TR_NONE, ESYS_TR_NONE, ESYS_TR_NONE);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_PolicyPassword(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
- r = Esys_PolicyPassword(esys_context,
- policySession_handle,
- ESYS_TR_NONE, ESYS_TR_NONE, ESYS_TR_NONE);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_PolicyGetDigest(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
- TPM2B_DIGEST *policyDigest;
- r = Esys_PolicyGetDigest(esys_context,
- policySession_handle,
- ESYS_TR_NONE,
- ESYS_TR_NONE, ESYS_TR_NONE, &policyDigest);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_PolicyNvWritten(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
- TPMI_YES_NO writtenSet = 0;
- r = Esys_PolicyNvWritten(esys_context,
- policySession_handle,
- ESYS_TR_NONE,
- ESYS_TR_NONE, ESYS_TR_NONE, writtenSet);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_PolicyTemplate(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR policySession = DUMMY_TR_HANDLE_POLICY_SESSION;
- TPM2B_DIGEST templateHash = DUMMY_2B_DATA(.buffer);
- r = Esys_PolicyTemplate(esys_context,
- policySession,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- ESYS_TR_NONE, &templateHash);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_PolicyAuthorizeNV(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- ESYS_TR nvIndex_handle = DUMMY_TR_HANDLE_NV_INDEX;
- ESYS_TR policySession_handle = DUMMY_TR_HANDLE_POLICY_SESSION;
- r = Esys_PolicyAuthorizeNV(esys_context,
- authHandle_handle,
- nvIndex_handle,
- policySession_handle,
- ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_CreatePrimary(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR primaryHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- TPM2B_SENSITIVE_CREATE inSensitive = { 0 };
- TPM2B_PUBLIC inPublic = DUMMY_IN_PUBLIC_DATA;
- TPM2B_DATA outsideInfo = DUMMY_2B_DATA(.buffer);
- TPML_PCR_SELECTION creationPCR = { 0 };
- ESYS_TR objectHandle_handle;
- TPM2B_PUBLIC *outPublic;
- TPM2B_CREATION_DATA *creationData;
- TPM2B_DIGEST *creationHash;
- TPMT_TK_CREATION *creationTicket;
- r = Esys_CreatePrimary(esys_context,
- primaryHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- &inSensitive,
- &inPublic,
- &outsideInfo,
- &creationPCR,
- &objectHandle_handle,
- &outPublic,
- &creationData, &creationHash, &creationTicket);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_HierarchyControl(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- ESYS_TR enable = ESYS_TR_RH_OWNER;
- TPMI_YES_NO state2 = 0;
- r = Esys_HierarchyControl(esys_context,
- authHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE, ESYS_TR_NONE, enable, state2);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_SetPrimaryPolicy(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- TPM2B_DIGEST authPolicy = DUMMY_2B_DATA(.buffer);
- TPMI_ALG_HASH hashAlg = TPM2_ALG_SHA1;
- r = Esys_SetPrimaryPolicy(esys_context,
- authHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE, ESYS_TR_NONE, &authPolicy, hashAlg);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_ChangePPS(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- r = Esys_ChangePPS(esys_context,
- authHandle_handle,
- ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_ChangeEPS(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- r = Esys_ChangeEPS(esys_context,
- authHandle_handle,
- ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_Clear(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- r = Esys_Clear(esys_context,
- authHandle_handle,
- ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_ClearControl(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR auth_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- TPMI_YES_NO disable = 0;
- r = Esys_ClearControl(esys_context,
- auth_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE, ESYS_TR_NONE, disable);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_HierarchyChangeAuth(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- TPM2B_AUTH newAuth = DUMMY_2B_DATA(.buffer);
- r = Esys_HierarchyChangeAuth(esys_context,
- authHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE, ESYS_TR_NONE, &newAuth);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_DictionaryAttackLockReset(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR lockHandle_handle = DUMMY_TR_HANDLE_LOCKOUT;;
- r = Esys_DictionaryAttackLockReset(esys_context,
- lockHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE, ESYS_TR_NONE);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_DictionaryAttackParameters(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR lockHandle_handle = DUMMY_TR_HANDLE_LOCKOUT;
- UINT32 newMaxTries = 0;
- UINT32 newRecoveryTime = 0;
- UINT32 lockoutRecovery = 0;
- r = Esys_DictionaryAttackParameters(esys_context,
- lockHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- newMaxTries,
- newRecoveryTime, lockoutRecovery);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_PP_Commands(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR auth_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- TPML_CC setList = { 0 };
- TPML_CC clearList = { 0 };
- r = Esys_PP_Commands(esys_context,
- auth_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE, ESYS_TR_NONE, &setList, &clearList);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_SetAlgorithmSet(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- UINT32 algorithmSet = 0;
- r = Esys_SetAlgorithmSet(esys_context,
- authHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE, ESYS_TR_NONE, algorithmSet);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_FieldUpgradeStart(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR authorization_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;;
- ESYS_TR keyHandle_handle = DUMMY_TR_HANDLE_KEY;
- TPM2B_DIGEST fuDigest = DUMMY_2B_DATA(.buffer);
- TPMT_SIGNATURE manifestSignature = DUMMY_TPMT_SIGNATURE;
- r = Esys_FieldUpgradeStart(esys_context,
- authorization_handle,
- keyHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- ESYS_TR_NONE, &fuDigest, &manifestSignature);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_FieldUpgradeData(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- TPM2B_MAX_BUFFER fuData = DUMMY_2B_DATA(.buffer);
- TPMT_HA *nextDigest;
- TPMT_HA *firstDigest;
- r = Esys_FieldUpgradeData(esys_context,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- ESYS_TR_NONE, &fuData, &nextDigest, &firstDigest);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_FirmwareRead(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- UINT32 sequenceNumber = 0;
- TPM2B_MAX_BUFFER *fuData;
- r = Esys_FirmwareRead(esys_context,
- ESYS_TR_NONE,
- ESYS_TR_NONE, ESYS_TR_NONE, sequenceNumber, &fuData);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_ContextSave(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR saveHandle_handle = DUMMY_TR_HANDLE_KEY;
- TPMS_CONTEXT *context;
- r = Esys_ContextSave(esys_context, saveHandle_handle, &context);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_ContextLoad(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- TPMS_CONTEXT context = { 0 };
- ESYS_TR loadedHandle_handle;
- context.contextBlob.size = 0x100;
- context.savedHandle = TPM2_TRANSIENT_FIRST;
- context.hierarchy = TPM2_RH_OWNER;
- r = Esys_ContextLoad(esys_context, &context, &loadedHandle_handle);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_FlushContext(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR flushHandle_handle = DUMMY_TR_HANDLE_KEY;
- r = Esys_FlushContext(esys_context, flushHandle_handle);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_EvictControl(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR auth_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- ESYS_TR objectHandle_handle = DUMMY_TR_HANDLE_KEY;
- TPMI_DH_PERSISTENT persistentHandle = TPM2_PERSISTENT_FIRST;
- ESYS_TR newObjectHandle_handle;
- r = Esys_EvictControl(esys_context,
- auth_handle,
- objectHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- persistentHandle, &newObjectHandle_handle);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_ReadClock(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- TPMS_TIME_INFO *currentTime;
- r = Esys_ReadClock(esys_context,
- ESYS_TR_NONE, ESYS_TR_NONE, ESYS_TR_NONE, ¤tTime);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_ClockSet(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR auth_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- UINT64 newTime = 0;
- r = Esys_ClockSet(esys_context,
- auth_handle,
- ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE, newTime);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_ClockRateAdjust(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR auth_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- TPM2_CLOCK_ADJUST rateAdjust = 0;
- r = Esys_ClockRateAdjust(esys_context,
- auth_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE, ESYS_TR_NONE, rateAdjust);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_GetCapability(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- TPM2_CAP capability = 0;
- UINT32 property = 0;
- UINT32 propertyCount = 0;
- TPMS_CAPABILITY_DATA *capabilityData;
- TPMI_YES_NO moreData;
- r = Esys_GetCapability(esys_context,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- capability,
- property, propertyCount, &moreData, &capabilityData);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_TestParms(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- TPMT_PUBLIC_PARMS parameters = DUMMY_TPMT_PUBLIC_PARAMS;
- r = Esys_TestParms(esys_context,
- ESYS_TR_NONE, ESYS_TR_NONE, ESYS_TR_NONE, ¶meters);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_NV_DefineSpace(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- TPM2B_AUTH auth = DUMMY_2B_DATA(.buffer);
- TPM2B_NV_PUBLIC publicInfo = {
- .size = 0,
- .nvPublic = {
- .nvIndex = TPM2_NV_INDEX_FIRST,
- .nameAlg = TPM2_ALG_SHA1,
- .attributes = (TPMA_NV_PPWRITE |
- TPMA_NV_AUTHWRITE |
- 1 << TPMA_NV_TPM2_NT_SHIFT |
- TPMA_NV_WRITE_STCLEAR |
- TPMA_NV_PPREAD |
- TPMA_NV_AUTHREAD | TPMA_NV_PLATFORMCREATE),
- .authPolicy = {
- .size = 0,
- .buffer = {},
- },
- .dataSize = 32,
- }
- };
- ESYS_TR nvHandle_handle;
- r = Esys_NV_DefineSpace(esys_context,
- authHandle_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- ESYS_TR_NONE, &auth, &publicInfo, &nvHandle_handle);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_NV_UndefineSpace(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- ESYS_TR nvIndex_handle = DUMMY_TR_HANDLE_NV_INDEX;
- r = Esys_NV_UndefineSpace(esys_context,
- authHandle_handle,
- nvIndex_handle,
- ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_NV_UndefineSpaceSpecial(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR nvIndex_handle = DUMMY_TR_HANDLE_NV_INDEX;
- ESYS_TR platform_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- r = Esys_NV_UndefineSpaceSpecial(esys_context,
- nvIndex_handle,
- platform_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_PASSWORD, ESYS_TR_NONE);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_NV_ReadPublic(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR nvIndex_handle = DUMMY_TR_HANDLE_NV_INDEX;
- TPM2B_NV_PUBLIC *nvPublic;
- TPM2B_NAME *nvName;
- r = Esys_NV_ReadPublic(esys_context,
- nvIndex_handle,
- ESYS_TR_NONE,
- ESYS_TR_NONE, ESYS_TR_NONE, &nvPublic, &nvName);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_NV_Write(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- ESYS_TR nvIndex_handle = DUMMY_TR_HANDLE_NV_INDEX;
- TPM2B_MAX_NV_BUFFER data = DUMMY_2B_DATA(.buffer);
- UINT16 offset = 0;
- r = Esys_NV_Write(esys_context,
- authHandle_handle,
- nvIndex_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE, ESYS_TR_NONE, &data, offset);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_NV_Increment(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- ESYS_TR nvIndex_handle = DUMMY_TR_HANDLE_NV_INDEX;
- r = Esys_NV_Increment(esys_context,
- authHandle_handle,
- nvIndex_handle,
- ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_NV_Extend(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- ESYS_TR nvIndex_handle = DUMMY_TR_HANDLE_NV_INDEX;
- TPM2B_MAX_NV_BUFFER data = DUMMY_2B_DATA(.buffer);
- r = Esys_NV_Extend(esys_context,
- authHandle_handle,
- nvIndex_handle,
- ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE, &data);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_NV_SetBits(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- ESYS_TR nvIndex_handle = DUMMY_TR_HANDLE_NV_INDEX;
- UINT64 bits = 0;
- r = Esys_NV_SetBits(esys_context,
- authHandle_handle,
- nvIndex_handle,
- ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE, bits);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_NV_WriteLock(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- ESYS_TR nvIndex_handle = DUMMY_TR_HANDLE_NV_INDEX;
- r = Esys_NV_WriteLock(esys_context,
- authHandle_handle,
- nvIndex_handle,
- ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_NV_GlobalWriteLock(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- r = Esys_NV_GlobalWriteLock(esys_context,
- authHandle_handle,
- ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_NV_Read(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- ESYS_TR nvIndex_handle = DUMMY_TR_HANDLE_NV_INDEX;
- UINT16 size = 0;
- UINT16 offset = 0;
- TPM2B_MAX_NV_BUFFER *data;
- r = Esys_NV_Read(esys_context,
- authHandle_handle,
- nvIndex_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE, ESYS_TR_NONE, size, offset, &data);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_NV_ReadLock(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- ESYS_TR nvIndex_handle = DUMMY_TR_HANDLE_NV_INDEX;
- r = Esys_NV_ReadLock(esys_context,
- authHandle_handle,
- nvIndex_handle,
- ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_NV_ChangeAuth(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR nvIndex_handle = DUMMY_TR_HANDLE_NV_INDEX;
- TPM2B_AUTH newAuth = DUMMY_2B_DATA(.buffer);
- r = Esys_NV_ChangeAuth(esys_context,
- nvIndex_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE, ESYS_TR_NONE, &newAuth);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_NV_Certify(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- ESYS_TR signHandle_handle = DUMMY_TR_HANDLE_KEY;
- ESYS_TR authHandle_handle = DUMMY_TR_HANDLE_HIERARCHY_PLATFORM;
- ESYS_TR nvIndex_handle = DUMMY_TR_HANDLE_NV_INDEX;
- TPM2B_DATA qualifyingData = DUMMY_2B_DATA(.buffer);
- TPMT_SIG_SCHEME inScheme = {.scheme = TPM2_ALG_NULL,.details = {} };
- UINT16 size = 0;
- UINT16 offset = 0;
- TPM2B_ATTEST *certifyInfo;
- TPMT_SIGNATURE *signature;
- r = Esys_NV_Certify(esys_context,
- signHandle_handle,
- authHandle_handle,
- nvIndex_handle,
- ESYS_TR_PASSWORD,
- ESYS_TR_PASSWORD,
- ESYS_TR_NONE,
- &qualifyingData,
- &inScheme, size, offset, &certifyInfo, &signature);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- static void
- test_Vendor_TCG_Test(void **state)
- {
- TSS2_RC r;
- TSS2_TCTI_CONTEXT *tcti;
- ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
- Esys_GetTcti(esys_context, &tcti);
- TSS2_TCTI_CONTEXT_YIELDER *tcti_yielder = tcti_yielder_cast(tcti);
- TPM2B_DATA inputData = DUMMY_2B_DATA(.buffer);
- TPM2B_DATA *outputData;
- r = Esys_Vendor_TCG_Test(esys_context,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- ESYS_TR_NONE, &inputData, &outputData);
- assert_int_equal(r, TPM2_RC_YIELDED);
- assert_int_equal(tcti_yielder->count, 5 /* _ESYS_MAX_SUBMISSIONS */ );
- }
- int
- main(int argc, char *argv[])
- {
- const struct CMUnitTest tests[] = {
- cmocka_unit_test_setup_teardown(test_Startup, setup, teardown),
- cmocka_unit_test_setup_teardown(test_Shutdown, setup, teardown),
- cmocka_unit_test_setup_teardown(test_SelfTest, setup, teardown),
- cmocka_unit_test_setup_teardown(test_IncrementalSelfTest, setup,
- teardown),
- cmocka_unit_test_setup_teardown(test_GetTestResult, setup, teardown),
- cmocka_unit_test_setup_teardown(test_StartAuthSession, setup, teardown),
- cmocka_unit_test_setup_teardown(test_PolicyRestart, setup, teardown),
- cmocka_unit_test_setup_teardown(test_Create, setup, teardown),
- cmocka_unit_test_setup_teardown(test_Load, setup, teardown),
- cmocka_unit_test_setup_teardown(test_LoadExternal, setup, teardown),
- cmocka_unit_test_setup_teardown(test_ReadPublic, setup, teardown),
- cmocka_unit_test_setup_teardown(test_ActivateCredential, setup,
- teardown),
- cmocka_unit_test_setup_teardown(test_MakeCredential, setup, teardown),
- cmocka_unit_test_setup_teardown(test_Unseal, setup, teardown),
- cmocka_unit_test_setup_teardown(test_ObjectChangeAuth, setup, teardown),
- cmocka_unit_test_setup_teardown(test_Duplicate, setup, teardown),
- cmocka_unit_test_setup_teardown(test_Rewrap, setup, teardown),
- cmocka_unit_test_setup_teardown(test_Import, setup, teardown),
- cmocka_unit_test_setup_teardown(test_RSA_Encrypt, setup, teardown),
- cmocka_unit_test_setup_teardown(test_RSA_Decrypt, setup, teardown),
- cmocka_unit_test_setup_teardown(test_ECDH_KeyGen, setup, teardown),
- cmocka_unit_test_setup_teardown(test_ECDH_ZGen, setup, teardown),
- cmocka_unit_test_setup_teardown(test_ECC_Parameters, setup, teardown),
- cmocka_unit_test_setup_teardown(test_ZGen_2Phase, setup, teardown),
- cmocka_unit_test_setup_teardown(test_EncryptDecrypt, setup, teardown),
- cmocka_unit_test_setup_teardown(test_EncryptDecrypt2, setup, teardown),
- cmocka_unit_test_setup_teardown(test_Hash, setup, teardown),
- cmocka_unit_test_setup_teardown(test_HMAC, setup, teardown),
- cmocka_unit_test_setup_teardown(test_GetRandom, setup, teardown),
- cmocka_unit_test_setup_teardown(test_StirRandom, setup, teardown),
- cmocka_unit_test_setup_teardown(test_HMAC_Start, setup, teardown),
- cmocka_unit_test_setup_teardown(test_HashSequenceStart, setup,
- teardown),
- cmocka_unit_test_setup_teardown(test_SequenceUpdate, setup, teardown),
- cmocka_unit_test_setup_teardown(test_SequenceComplete, setup, teardown),
- cmocka_unit_test_setup_teardown(test_EventSequenceComplete, setup,
- teardown),
- cmocka_unit_test_setup_teardown(test_Certify, setup, teardown),
- cmocka_unit_test_setup_teardown(test_CertifyCreation, setup, teardown),
- cmocka_unit_test_setup_teardown(test_Quote, setup, teardown),
- cmocka_unit_test_setup_teardown(test_GetSessionAuditDigest, setup,
- teardown),
- cmocka_unit_test_setup_teardown(test_GetCommandAuditDigest, setup,
- teardown),
- cmocka_unit_test_setup_teardown(test_GetTime, setup, teardown),
- cmocka_unit_test_setup_teardown(test_Commit, setup, teardown),
- cmocka_unit_test_setup_teardown(test_EC_Ephemeral, setup, teardown),
- cmocka_unit_test_setup_teardown(test_VerifySignature, setup, teardown),
- cmocka_unit_test_setup_teardown(test_Sign, setup, teardown),
- cmocka_unit_test_setup_teardown(test_SetCommandCodeAuditStatus, setup,
- teardown),
- cmocka_unit_test_setup_teardown(test_PCR_Extend, setup, teardown),
- cmocka_unit_test_setup_teardown(test_PCR_Event, setup, teardown),
- cmocka_unit_test_setup_teardown(test_PCR_Read, setup, teardown),
- cmocka_unit_test_setup_teardown(test_PCR_Allocate, setup, teardown),
- cmocka_unit_test_setup_teardown(test_PCR_SetAuthPolicy, setup,
- teardown),
- cmocka_unit_test_setup_teardown(test_PCR_SetAuthValue, setup, teardown),
- cmocka_unit_test_setup_teardown(test_PCR_Reset, setup, teardown),
- cmocka_unit_test_setup_teardown(test_PolicySigned, setup, teardown),
- cmocka_unit_test_setup_teardown(test_PolicySecret, setup, teardown),
- cmocka_unit_test_setup_teardown(test_PolicyTicket, setup, teardown),
- cmocka_unit_test_setup_teardown(test_PolicyOR, setup, teardown),
- cmocka_unit_test_setup_teardown(test_PolicyPCR, setup, teardown),
- cmocka_unit_test_setup_teardown(test_PolicyLocality, setup, teardown),
- cmocka_unit_test_setup_teardown(test_PolicyNV, setup, teardown),
- cmocka_unit_test_setup_teardown(test_PolicyCounterTimer, setup,
- teardown),
- cmocka_unit_test_setup_teardown(test_PolicyCommandCode, setup,
- teardown),
- cmocka_unit_test_setup_teardown(test_PolicyPhysicalPresence, setup,
- teardown),
- cmocka_unit_test_setup_teardown(test_PolicyCpHash, setup, teardown),
- cmocka_unit_test_setup_teardown(test_PolicyNameHash, setup, teardown),
- cmocka_unit_test_setup_teardown(test_PolicyDuplicationSelect, setup,
- teardown),
- cmocka_unit_test_setup_teardown(test_PolicyAuthorize, setup, teardown),
- cmocka_unit_test_setup_teardown(test_PolicyAuthValue, setup, teardown),
- cmocka_unit_test_setup_teardown(test_PolicyPassword, setup, teardown),
- cmocka_unit_test_setup_teardown(test_PolicyGetDigest, setup, teardown),
- cmocka_unit_test_setup_teardown(test_PolicyNvWritten, setup, teardown),
- cmocka_unit_test_setup_teardown(test_PolicyTemplate, setup, teardown),
- cmocka_unit_test_setup_teardown(test_PolicyAuthorizeNV, setup,
- teardown),
- cmocka_unit_test_setup_teardown(test_CreatePrimary, setup, teardown),
- cmocka_unit_test_setup_teardown(test_HierarchyControl, setup, teardown),
- cmocka_unit_test_setup_teardown(test_SetPrimaryPolicy, setup, teardown),
- cmocka_unit_test_setup_teardown(test_ChangePPS, setup, teardown),
- cmocka_unit_test_setup_teardown(test_ChangeEPS, setup, teardown),
- cmocka_unit_test_setup_teardown(test_Clear, setup, teardown),
- cmocka_unit_test_setup_teardown(test_ClearControl, setup, teardown),
- cmocka_unit_test_setup_teardown(test_HierarchyChangeAuth, setup,
- teardown),
- cmocka_unit_test_setup_teardown(test_DictionaryAttackLockReset, setup,
- teardown),
- cmocka_unit_test_setup_teardown(test_DictionaryAttackParameters, setup,
- teardown),
- cmocka_unit_test_setup_teardown(test_PP_Commands, setup, teardown),
- cmocka_unit_test_setup_teardown(test_SetAlgorithmSet, setup, teardown),
- cmocka_unit_test_setup_teardown(test_FieldUpgradeStart, setup,
- teardown),
- cmocka_unit_test_setup_teardown(test_FieldUpgradeData, setup, teardown),
- cmocka_unit_test_setup_teardown(test_FirmwareRead, setup, teardown),
- cmocka_unit_test_setup_teardown(test_ContextSave, setup, teardown),
- cmocka_unit_test_setup_teardown(test_ContextLoad, setup, teardown),
- cmocka_unit_test_setup_teardown(test_FlushContext, setup, teardown),
- cmocka_unit_test_setup_teardown(test_EvictControl, setup, teardown),
- cmocka_unit_test_setup_teardown(test_ReadClock, setup, teardown),
- cmocka_unit_test_setup_teardown(test_ClockSet, setup, teardown),
- cmocka_unit_test_setup_teardown(test_ClockRateAdjust, setup, teardown),
- cmocka_unit_test_setup_teardown(test_GetCapability, setup, teardown),
- cmocka_unit_test_setup_teardown(test_TestParms, setup, teardown),
- cmocka_unit_test_setup_teardown(test_NV_DefineSpace, setup, teardown),
- cmocka_unit_test_setup_teardown(test_NV_UndefineSpace, setup, teardown),
- cmocka_unit_test_setup_teardown(test_NV_UndefineSpaceSpecial, setup,
- teardown),
- cmocka_unit_test_setup_teardown(test_NV_ReadPublic, setup, teardown),
- cmocka_unit_test_setup_teardown(test_NV_Write, setup, teardown),
- cmocka_unit_test_setup_teardown(test_NV_Increment, setup, teardown),
- cmocka_unit_test_setup_teardown(test_NV_Extend, setup, teardown),
- cmocka_unit_test_setup_teardown(test_NV_SetBits, setup, teardown),
- cmocka_unit_test_setup_teardown(test_NV_WriteLock, setup, teardown),
- cmocka_unit_test_setup_teardown(test_NV_GlobalWriteLock, setup,
- teardown),
- cmocka_unit_test_setup_teardown(test_NV_Read, setup, teardown),
- cmocka_unit_test_setup_teardown(test_NV_ReadLock, setup, teardown),
- cmocka_unit_test_setup_teardown(test_NV_ChangeAuth, setup, teardown),
- cmocka_unit_test_setup_teardown(test_NV_Certify, setup, teardown),
- cmocka_unit_test_setup_teardown(test_Vendor_TCG_Test, setup, teardown),
- };
- return cmocka_run_group_tests(tests, NULL, NULL);
- }
|