tss2-dlopen-esys.c 66 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208
  1. /* SPDX-License-Identifier: BSD-2-Clause */
  2. /*******************************************************************************
  3. * Copyright 2021, Fraunhofer SIT
  4. * All rights reserved.
  5. *******************************************************************************/
  6. /**
  7. * The purpose of this file is to copy it into your project and
  8. * include it during compilation if you don't want to link against
  9. * libtss2-esys at compile time.
  10. * It will attempt to load libtss2-esys.so during runtime.
  11. * It will either work similarly to directly linking to libtss2-esys.so
  12. * at compile-time or return a NOT_IMPLEMENTED error.
  13. *
  14. * For new versions of this file, please check:
  15. * http://github.com/tpm2-software/tpm2-tss/tss2-dlopen
  16. */
  17. #include <dlfcn.h>
  18. #include <stdio.h>
  19. #include <tss2/tss2_esys.h>
  20. #define str(s) xstr(s)
  21. #define xstr(s) #s
  22. #ifdef ENABLE_WARN
  23. #define WARN(str, ...) do { fprintf(stderr, "WARNING: " str "\n", ## __VA_ARGS__); } while (0)
  24. #else /* ENABLE_WARN */
  25. #define WARN(...) do { } while (0)
  26. #endif /* ENABLE_WARN */
  27. #define LIB "libtss2-esys.so.0"
  28. static void *dlhandle = NULL;
  29. static TSS2_RC
  30. init_dlhandle(void)
  31. {
  32. if (dlhandle)
  33. return TSS2_RC_SUCCESS;
  34. dlhandle = dlopen(LIB, RTLD_NOW | RTLD_LOCAL);
  35. if (!dlhandle) {
  36. WARN("Library " LIB " not found: %s.", dlerror());
  37. return TSS2_ESYS_RC_NOT_IMPLEMENTED;
  38. }
  39. return TSS2_RC_SUCCESS;
  40. }
  41. TSS2_RC
  42. Esys_Initialize(
  43. ESYS_CONTEXT **esys_context,
  44. TSS2_TCTI_CONTEXT *tcti,
  45. TSS2_ABI_VERSION *abiVersion)
  46. {
  47. if (init_dlhandle() != TSS2_RC_SUCCESS)
  48. return TSS2_ESYS_RC_NOT_IMPLEMENTED;
  49. static TSS2_RC (*sym) (ESYS_CONTEXT **esys_context, TSS2_TCTI_CONTEXT *tcti, TSS2_ABI_VERSION *abiVersion) = NULL;
  50. if (!sym)
  51. sym = dlsym(dlhandle, "Esys_Initialize");
  52. if (!sym) {
  53. WARN("Function Esys_Initialize not found.");
  54. return TSS2_ESYS_RC_NOT_IMPLEMENTED;
  55. }
  56. return sym(esys_context, tcti, abiVersion);
  57. }
  58. void
  59. Esys_Finalize(ESYS_CONTEXT **ctx)
  60. {
  61. if (!ctx || !*ctx)
  62. return;
  63. static TSS2_RC (*sym) (ESYS_CONTEXT **ctx) = NULL;
  64. if (!sym)
  65. sym = dlsym(dlhandle, "Esys_Finalize");
  66. if (!sym) {
  67. WARN("Function Esys_Finalize not found.");
  68. return;
  69. }
  70. sym(ctx);
  71. }
  72. void
  73. Esys_Free(void *__ptr)
  74. {
  75. if (!__ptr)
  76. return;
  77. static TSS2_RC (*sym) (void *__ptr) = NULL;
  78. if (!sym)
  79. sym = dlsym(dlhandle, "Esys_Free");
  80. if (!sym) {
  81. WARN("Function Esys_Free not found.");
  82. return;
  83. }
  84. sym(__ptr);
  85. }
  86. #define MAKE_ESYS_0(fun) \
  87. TSS2_RC fun (ESYS_CONTEXT *ctx) { \
  88. static TSS2_RC (*sym) (ESYS_CONTEXT *ctx) = NULL; \
  89. if (!sym) \
  90. sym = dlsym(dlhandle, str(fun)); \
  91. if (!sym) { \
  92. WARN("Function " str(fun) " not found."); \
  93. return TSS2_ESYS_RC_NOT_IMPLEMENTED; \
  94. } \
  95. return sym(ctx); \
  96. }
  97. #define MAKE_ESYS_1(fun, type1,parm1) \
  98. TSS2_RC fun (ESYS_CONTEXT *ctx, type1 parm1) { \
  99. static TSS2_RC (*sym) (ESYS_CONTEXT *ctx, type1) = NULL; \
  100. if (!sym) \
  101. sym = dlsym(dlhandle, str(fun)); \
  102. if (!sym) { \
  103. WARN("Function " str(fun) " not found."); \
  104. return TSS2_ESYS_RC_NOT_IMPLEMENTED; \
  105. } \
  106. return sym(ctx, parm1); \
  107. }
  108. #define MAKE_ESYS_2(fun, type1,parm1, type2,parm2) \
  109. TSS2_RC fun (ESYS_CONTEXT *ctx, type1 parm1, type2 parm2) { \
  110. static TSS2_RC (*sym) (ESYS_CONTEXT *ctx, type1, type2) = NULL; \
  111. if (!sym) \
  112. sym = dlsym(dlhandle, str(fun)); \
  113. if (!sym) { \
  114. WARN("Function " str(fun) " not found."); \
  115. return TSS2_ESYS_RC_NOT_IMPLEMENTED; \
  116. } \
  117. return sym(ctx, parm1, parm2); \
  118. }
  119. #define MAKE_ESYS_3(fun, type1,parm1, type2,parm2, type3,parm3) \
  120. TSS2_RC fun (ESYS_CONTEXT *ctx, type1 parm1, type2 parm2, type3 parm3) { \
  121. static TSS2_RC (*sym) (ESYS_CONTEXT *ctx, type1, type2, type3) = NULL; \
  122. if (!sym) \
  123. sym = dlsym(dlhandle, str(fun)); \
  124. if (!sym) { \
  125. WARN("Function " str(fun) " not found."); \
  126. return TSS2_ESYS_RC_NOT_IMPLEMENTED; \
  127. } \
  128. return sym(ctx, parm1, parm2, parm3); \
  129. }
  130. #define MAKE_ESYS_4(fun, type1,parm1, type2,parm2, type3,parm3, type4,parm4) \
  131. TSS2_RC fun (ESYS_CONTEXT *ctx, type1 parm1, type2 parm2, type3 parm3, type4 parm4) { \
  132. static TSS2_RC (*sym) (ESYS_CONTEXT *ctx, type1, type2, type3, type4) = NULL; \
  133. if (!sym) \
  134. sym = dlsym(dlhandle, str(fun)); \
  135. if (!sym) { \
  136. WARN("Function " str(fun) " not found."); \
  137. return TSS2_ESYS_RC_NOT_IMPLEMENTED; \
  138. } \
  139. return sym(ctx, parm1, parm2, parm3, parm4); \
  140. }
  141. #define MAKE_ESYS_5(fun, type1,parm1, type2,parm2, type3,parm3, type4,parm4, \
  142. type5,parm5) \
  143. TSS2_RC fun (ESYS_CONTEXT *ctx, type1 parm1, type2 parm2, type3 parm3, type4 parm4, \
  144. type5 parm5) { \
  145. static TSS2_RC (*sym) (ESYS_CONTEXT *ctx, type1, type2, type3, type4, type5) = NULL; \
  146. if (!sym) \
  147. sym = dlsym(dlhandle, str(fun)); \
  148. if (!sym) { \
  149. WARN("Function " str(fun) " not found."); \
  150. return TSS2_ESYS_RC_NOT_IMPLEMENTED; \
  151. } \
  152. return sym(ctx, parm1, parm2, parm3, parm4, parm5); \
  153. }
  154. #define MAKE_ESYS_6(fun, type1,parm1, type2,parm2, type3,parm3, type4,parm4, \
  155. type5,parm5, type6,parm6) \
  156. TSS2_RC fun (ESYS_CONTEXT *ctx, type1 parm1, type2 parm2, type3 parm3, type4 parm4, \
  157. type5 parm5, type6 parm6) { \
  158. static TSS2_RC (*sym) (ESYS_CONTEXT *ctx, type1, type2, type3, type4, type5, type6) = NULL; \
  159. if (!sym) \
  160. sym = dlsym(dlhandle, str(fun)); \
  161. if (!sym) { \
  162. WARN("Function " str(fun) " not found."); \
  163. return TSS2_ESYS_RC_NOT_IMPLEMENTED; \
  164. } \
  165. return sym(ctx, parm1, parm2, parm3, parm4, parm5, parm6); \
  166. }
  167. #define MAKE_ESYS_7(fun, type1,parm1, type2,parm2, type3,parm3, type4,parm4, \
  168. type5,parm5, type6,parm6, type7,parm7) \
  169. TSS2_RC fun (ESYS_CONTEXT *ctx, type1 parm1, type2 parm2, type3 parm3, type4 parm4, \
  170. type5 parm5, type6 parm6, type7 parm7) { \
  171. static TSS2_RC (*sym) (ESYS_CONTEXT *ctx, type1, type2, type3, type4, type5, type6, type7) = NULL; \
  172. if (!sym) \
  173. sym = dlsym(dlhandle, str(fun)); \
  174. if (!sym) { \
  175. WARN("Function " str(fun) " not found."); \
  176. return TSS2_ESYS_RC_NOT_IMPLEMENTED; \
  177. } \
  178. return sym(ctx, parm1, parm2, parm3, parm4, parm5, parm6, parm7); \
  179. }
  180. #define MAKE_ESYS_8(fun, type1,parm1, type2,parm2, type3,parm3, type4,parm4, \
  181. type5,parm5, type6,parm6, type7,parm7, type8,parm8) \
  182. TSS2_RC fun (ESYS_CONTEXT *ctx, type1 parm1, type2 parm2, type3 parm3, type4 parm4, \
  183. type5 parm5, type6 parm6, type7 parm7, type8 parm8) { \
  184. static TSS2_RC (*sym) (ESYS_CONTEXT *ctx, type1, type2, type3, type4, type5, type6, type7, type8) = NULL; \
  185. if (!sym) \
  186. sym = dlsym(dlhandle, str(fun)); \
  187. if (!sym) { \
  188. WARN("Function " str(fun) " not found."); \
  189. return TSS2_ESYS_RC_NOT_IMPLEMENTED; \
  190. } \
  191. return sym(ctx, parm1, parm2, parm3, parm4, parm5, parm6, parm7, parm8); \
  192. }
  193. #define MAKE_ESYS_9(fun, type1,parm1, type2,parm2, type3,parm3, type4,parm4, \
  194. type5,parm5, type6,parm6, type7,parm7, type8,parm8, \
  195. type9,parm9) \
  196. TSS2_RC fun (ESYS_CONTEXT *ctx, type1 parm1, type2 parm2, type3 parm3, type4 parm4, \
  197. type5 parm5, type6 parm6, type7 parm7, type8 parm8, \
  198. type9 parm9) { \
  199. TSS2_RC (*sym)(ESYS_CONTEXT *ctx, type1, type2, type3, type4, type5, type6, type7, type8, \
  200. type9) = NULL; \
  201. if (!sym) \
  202. sym = dlsym(dlhandle, str(fun)); \
  203. if (!sym) { \
  204. WARN("Function " str(fun) " not found."); \
  205. return TSS2_ESYS_RC_NOT_IMPLEMENTED; \
  206. } \
  207. return sym(ctx, parm1, parm2, parm3, parm4, parm5, parm6, parm7, parm8, \
  208. parm9); \
  209. }
  210. #define MAKE_ESYS_10(fun, type1,parm1, type2,parm2, type3,parm3, type4,parm4, \
  211. type5,parm5, type6,parm6, type7,parm7, type8,parm8, \
  212. type9,parm9, type10,parm10) \
  213. TSS2_RC fun (ESYS_CONTEXT *ctx, type1 parm1, type2 parm2, type3 parm3, type4 parm4, \
  214. type5 parm5, type6 parm6, type7 parm7, type8 parm8, \
  215. type9 parm9, type10 parm10) { \
  216. TSS2_RC (*sym)(ESYS_CONTEXT *ctx, type1, type2, type3, type4, type5, type6, type7, type8, \
  217. type9, type10) = NULL; \
  218. if (!sym) \
  219. sym = dlsym(dlhandle, str(fun)); \
  220. if (!sym) { \
  221. WARN("Function " str(fun) " not found."); \
  222. return TSS2_ESYS_RC_NOT_IMPLEMENTED; \
  223. } \
  224. return sym(ctx, parm1, parm2, parm3, parm4, parm5, parm6, parm7, parm8, \
  225. parm9, parm10); \
  226. }
  227. #define MAKE_ESYS_11(fun, type1,parm1, type2,parm2, type3,parm3, type4,parm4, \
  228. type5,parm5, type6,parm6, type7,parm7, type8,parm8, \
  229. type9,parm9, type10,parm10, type11,parm11) \
  230. TSS2_RC fun (ESYS_CONTEXT *ctx, type1 parm1, type2 parm2, type3 parm3, type4 parm4, \
  231. type5 parm5, type6 parm6, type7 parm7, type8 parm8, \
  232. type9 parm9, type10 parm10, type11 parm11) { \
  233. TSS2_RC (*sym)(ESYS_CONTEXT *ctx, type1, type2, type3, type4, type5, type6, type7, type8, \
  234. type9, type10, type11) = NULL; \
  235. if (!sym) \
  236. sym = dlsym(dlhandle, str(fun)); \
  237. if (!sym) { \
  238. WARN("Function " str(fun) " not found."); \
  239. return TSS2_ESYS_RC_NOT_IMPLEMENTED; \
  240. } \
  241. return sym(ctx, parm1, parm2, parm3, parm4, parm5, parm6, parm7, parm8, \
  242. parm9, parm10, parm11); \
  243. }
  244. #define MAKE_ESYS_12(fun, type1,parm1, type2,parm2, type3,parm3, type4,parm4, \
  245. type5,parm5, type6,parm6, type7,parm7, type8,parm8, \
  246. type9,parm9, type10,parm10, type11,parm11, type12,parm12) \
  247. TSS2_RC fun (ESYS_CONTEXT *ctx, type1 parm1, type2 parm2, type3 parm3, type4 parm4, \
  248. type5 parm5, type6 parm6, type7 parm7, type8 parm8, \
  249. type9 parm9, type10 parm10, type11 parm11, type12 parm12) { \
  250. TSS2_RC (*sym)(ESYS_CONTEXT *ctx, type1, type2, type3, type4, type5, type6, type7, type8, \
  251. type9, type10, type11, type12) = NULL; \
  252. if (!sym) \
  253. sym = dlsym(dlhandle, str(fun)); \
  254. if (!sym) { \
  255. WARN("Function " str(fun) " not found."); \
  256. return TSS2_ESYS_RC_NOT_IMPLEMENTED; \
  257. } \
  258. return sym(ctx, parm1, parm2, parm3, parm4, parm5, parm6, parm7, parm8, \
  259. parm9, parm10, parm11, parm12); \
  260. }
  261. #define MAKE_ESYS_13(fun, type1,parm1, type2,parm2, type3,parm3, type4,parm4, \
  262. type5,parm5, type6,parm6, type7,parm7, type8,parm8, \
  263. type9,parm9, type10,parm10, type11,parm11, type12,parm12, \
  264. type13,parm13) \
  265. TSS2_RC fun (ESYS_CONTEXT *ctx, type1 parm1, type2 parm2, type3 parm3, type4 parm4, \
  266. type5 parm5, type6 parm6, type7 parm7, type8 parm8, \
  267. type9 parm9, type10 parm10, type11 parm11, type12 parm12, \
  268. type13 parm13) { \
  269. TSS2_RC (*sym)(ESYS_CONTEXT *ctx, type1, type2, type3, type4, type5, type6, type7, type8, \
  270. type9, type10, type11, type12, type13) = NULL; \
  271. if (!sym) \
  272. sym = dlsym(dlhandle, str(fun)); \
  273. if (!sym) { \
  274. WARN("Function " str(fun) " not found."); \
  275. return TSS2_ESYS_RC_NOT_IMPLEMENTED; \
  276. } \
  277. return sym(ctx, parm1, parm2, parm3, parm4, parm5, parm6, parm7, parm8, \
  278. parm9, parm10, parm11, parm12, parm13); \
  279. }
  280. MAKE_ESYS_1(Esys_GetTcti,
  281. TSS2_TCTI_CONTEXT **, tcti);
  282. MAKE_ESYS_2(Esys_GetPollHandles,
  283. TSS2_TCTI_POLL_HANDLE **, handles,
  284. size_t *, count);
  285. MAKE_ESYS_1(Esys_SetTimeout,
  286. int32_t, timeout);
  287. MAKE_ESYS_3(Esys_TR_Serialize,
  288. ESYS_TR, object,
  289. uint8_t **, buffer,
  290. size_t *, buffer_size);
  291. MAKE_ESYS_3(Esys_TR_Deserialize,
  292. uint8_t const *, buffer,
  293. size_t, buffer_size,
  294. ESYS_TR *, esys_handle);
  295. MAKE_ESYS_4(Esys_TR_FromTPMPublic_Async,
  296. TPM2_HANDLE, tpm_handle,
  297. ESYS_TR, optionalSession1,
  298. ESYS_TR, optionalSession2,
  299. ESYS_TR, optionalSession3);
  300. MAKE_ESYS_1(Esys_TR_FromTPMPublic_Finish,
  301. ESYS_TR *, object);
  302. MAKE_ESYS_5(Esys_TR_FromTPMPublic,
  303. TPM2_HANDLE, tpm_handle,
  304. ESYS_TR, optionalSession1,
  305. ESYS_TR, optionalSession2,
  306. ESYS_TR, optionalSession3,
  307. ESYS_TR *, object);
  308. MAKE_ESYS_1(Esys_TR_Close,
  309. ESYS_TR *, rsrc_handle);
  310. MAKE_ESYS_2(Esys_TR_SetAuth,
  311. ESYS_TR, handle,
  312. TPM2B_AUTH const *, authValue);
  313. MAKE_ESYS_2(Esys_TR_GetName,
  314. ESYS_TR, handle,
  315. TPM2B_NAME **, name);
  316. MAKE_ESYS_2(Esys_TRSess_GetAttributes,
  317. ESYS_TR, session,
  318. TPMA_SESSION *, flags);
  319. MAKE_ESYS_3(Esys_TRSess_SetAttributes,
  320. ESYS_TR, session,
  321. TPMA_SESSION, flags,
  322. TPMA_SESSION, mask);
  323. MAKE_ESYS_2(Esys_TRSess_GetNonceTPM,
  324. ESYS_TR, session,
  325. TPM2B_NONCE **, nonceTPM);
  326. MAKE_ESYS_2(Esys_TR_GetTpmHandle,
  327. ESYS_TR, esys_handle,
  328. TPM2_HANDLE *, tpm_handle);
  329. MAKE_ESYS_2(Esys_TRSess_GetAuthRequired,
  330. ESYS_TR, esys_handle,
  331. TPMI_YES_NO *, auth_needed);
  332. MAKE_ESYS_1(Esys_Startup,
  333. TPM2_SU, startupType);
  334. MAKE_ESYS_1(Esys_Startup_Async,
  335. TPM2_SU, startupType);
  336. MAKE_ESYS_0(Esys_Startup_Finish);
  337. MAKE_ESYS_4(Esys_Shutdown,
  338. ESYS_TR, shandle1,
  339. ESYS_TR, shandle2,
  340. ESYS_TR, shandle3,
  341. TPM2_SU, shutdownType);
  342. MAKE_ESYS_4(Esys_Shutdown_Async,
  343. ESYS_TR, shandle1,
  344. ESYS_TR, shandle2,
  345. ESYS_TR, shandle3,
  346. TPM2_SU, shutdownType);
  347. MAKE_ESYS_0(Esys_Shutdown_Finish);
  348. MAKE_ESYS_4(Esys_SelfTest,
  349. ESYS_TR, shandle1,
  350. ESYS_TR, shandle2,
  351. ESYS_TR, shandle3,
  352. TPMI_YES_NO, fullTest);
  353. MAKE_ESYS_4(Esys_SelfTest_Async,
  354. ESYS_TR, shandle1,
  355. ESYS_TR, shandle2,
  356. ESYS_TR, shandle3,
  357. TPMI_YES_NO, fullTest);
  358. MAKE_ESYS_0(Esys_SelfTest_Finish);
  359. MAKE_ESYS_5(Esys_IncrementalSelfTest,
  360. ESYS_TR, shandle1,
  361. ESYS_TR, shandle2,
  362. ESYS_TR, shandle3,
  363. const TPML_ALG *, toTest,
  364. TPML_ALG **, toDoList);
  365. MAKE_ESYS_4(Esys_IncrementalSelfTest_Async,
  366. ESYS_TR, shandle1,
  367. ESYS_TR, shandle2,
  368. ESYS_TR, shandle3,
  369. const TPML_ALG *, toTest);
  370. MAKE_ESYS_1(Esys_IncrementalSelfTest_Finish,
  371. TPML_ALG **, toDoList);
  372. MAKE_ESYS_5(Esys_GetTestResult,
  373. ESYS_TR, shandle1,
  374. ESYS_TR, shandle2,
  375. ESYS_TR, shandle3,
  376. TPM2B_MAX_BUFFER **, outData,
  377. TPM2_RC *, testResult);
  378. MAKE_ESYS_3(Esys_GetTestResult_Async,
  379. ESYS_TR, shandle1,
  380. ESYS_TR, shandle2,
  381. ESYS_TR, shandle3);
  382. MAKE_ESYS_2(Esys_GetTestResult_Finish,
  383. TPM2B_MAX_BUFFER **, outData,
  384. TPM2_RC *, testResult);
  385. MAKE_ESYS_10(Esys_StartAuthSession,
  386. ESYS_TR, tpmKey,
  387. ESYS_TR, bind,
  388. ESYS_TR, shandle1,
  389. ESYS_TR, shandle2,
  390. ESYS_TR, shandle3,
  391. const TPM2B_NONCE *, nonceCaller,
  392. TPM2_SE, sessionType,
  393. const TPMT_SYM_DEF *, symmetric,
  394. TPMI_ALG_HASH, authHash,
  395. ESYS_TR *, sessionHandle);
  396. MAKE_ESYS_9(Esys_StartAuthSession_Async,
  397. ESYS_TR, tpmKey,
  398. ESYS_TR, bind,
  399. ESYS_TR, shandle1,
  400. ESYS_TR, shandle2,
  401. ESYS_TR, shandle3,
  402. const TPM2B_NONCE *, nonceCaller,
  403. TPM2_SE, sessionType,
  404. const TPMT_SYM_DEF *, symmetric,
  405. TPMI_ALG_HASH, authHash);
  406. MAKE_ESYS_1(Esys_StartAuthSession_Finish,
  407. ESYS_TR *, sessionHandle);
  408. MAKE_ESYS_4(Esys_PolicyRestart,
  409. ESYS_TR, sessionHandle,
  410. ESYS_TR, shandle1,
  411. ESYS_TR, shandle2,
  412. ESYS_TR, shandle3);
  413. MAKE_ESYS_4(Esys_PolicyRestart_Async,
  414. ESYS_TR, sessionHandle,
  415. ESYS_TR, shandle1,
  416. ESYS_TR, shandle2,
  417. ESYS_TR, shandle3);
  418. MAKE_ESYS_0(Esys_PolicyRestart_Finish);
  419. MAKE_ESYS_13(Esys_Create,
  420. ESYS_TR, parentHandle,
  421. ESYS_TR, shandle1,
  422. ESYS_TR, shandle2,
  423. ESYS_TR, shandle3,
  424. const TPM2B_SENSITIVE_CREATE *, inSensitive,
  425. const TPM2B_PUBLIC *, inPublic,
  426. const TPM2B_DATA *, outsideInfo,
  427. const TPML_PCR_SELECTION *, creationPCR,
  428. TPM2B_PRIVATE **, outPrivate,
  429. TPM2B_PUBLIC **, outPublic,
  430. TPM2B_CREATION_DATA **, creationData,
  431. TPM2B_DIGEST **, creationHash,
  432. TPMT_TK_CREATION **, creationTicket);
  433. MAKE_ESYS_8(Esys_Create_Async,
  434. ESYS_TR, parentHandle,
  435. ESYS_TR, shandle1,
  436. ESYS_TR, shandle2,
  437. ESYS_TR, shandle3,
  438. const TPM2B_SENSITIVE_CREATE *, inSensitive,
  439. const TPM2B_PUBLIC *, inPublic,
  440. const TPM2B_DATA *, outsideInfo,
  441. const TPML_PCR_SELECTION *, creationPCR);
  442. MAKE_ESYS_5(Esys_Create_Finish,
  443. TPM2B_PRIVATE **, outPrivate,
  444. TPM2B_PUBLIC **, outPublic,
  445. TPM2B_CREATION_DATA **, creationData,
  446. TPM2B_DIGEST **, creationHash,
  447. TPMT_TK_CREATION **, creationTicket);
  448. MAKE_ESYS_7(Esys_Load,
  449. ESYS_TR, parentHandle,
  450. ESYS_TR, shandle1,
  451. ESYS_TR, shandle2,
  452. ESYS_TR, shandle3,
  453. const TPM2B_PRIVATE *, inPrivate,
  454. const TPM2B_PUBLIC *, inPublic,
  455. ESYS_TR *, objectHandle);
  456. MAKE_ESYS_6(Esys_Load_Async,
  457. ESYS_TR, parentHandle,
  458. ESYS_TR, shandle1,
  459. ESYS_TR, shandle2,
  460. ESYS_TR, shandle3,
  461. const TPM2B_PRIVATE *, inPrivate,
  462. const TPM2B_PUBLIC *, inPublic);
  463. MAKE_ESYS_1(Esys_Load_Finish,
  464. ESYS_TR *, objectHandle);
  465. MAKE_ESYS_7(Esys_LoadExternal,
  466. ESYS_TR, shandle1,
  467. ESYS_TR, shandle2,
  468. ESYS_TR, shandle3,
  469. const TPM2B_SENSITIVE *, inPrivate,
  470. const TPM2B_PUBLIC *, inPublic,
  471. ESYS_TR, hierarchy,
  472. ESYS_TR *, objectHandle);
  473. MAKE_ESYS_6(Esys_LoadExternal_Async,
  474. ESYS_TR, shandle1,
  475. ESYS_TR, shandle2,
  476. ESYS_TR, shandle3,
  477. const TPM2B_SENSITIVE *, inPrivate,
  478. const TPM2B_PUBLIC *, inPublic,
  479. ESYS_TR, hierarchy);
  480. MAKE_ESYS_1(Esys_LoadExternal_Finish,
  481. ESYS_TR *, objectHandle);
  482. MAKE_ESYS_7(Esys_ReadPublic,
  483. ESYS_TR, objectHandle,
  484. ESYS_TR, shandle1,
  485. ESYS_TR, shandle2,
  486. ESYS_TR, shandle3,
  487. TPM2B_PUBLIC **, outPublic,
  488. TPM2B_NAME **, name,
  489. TPM2B_NAME **, qualifiedName);
  490. MAKE_ESYS_4(Esys_ReadPublic_Async,
  491. ESYS_TR, objectHandle,
  492. ESYS_TR, shandle1,
  493. ESYS_TR, shandle2,
  494. ESYS_TR, shandle3);
  495. MAKE_ESYS_3(Esys_ReadPublic_Finish,
  496. TPM2B_PUBLIC **, outPublic,
  497. TPM2B_NAME **, name,
  498. TPM2B_NAME **, qualifiedName);
  499. MAKE_ESYS_8(Esys_ActivateCredential,
  500. ESYS_TR, activateHandle,
  501. ESYS_TR, keyHandle,
  502. ESYS_TR, shandle1,
  503. ESYS_TR, shandle2,
  504. ESYS_TR, shandle3,
  505. const TPM2B_ID_OBJECT *, credentialBlob,
  506. const TPM2B_ENCRYPTED_SECRET *, secret,
  507. TPM2B_DIGEST **, certInfo);
  508. MAKE_ESYS_7(Esys_ActivateCredential_Async,
  509. ESYS_TR, activateHandle,
  510. ESYS_TR, keyHandle,
  511. ESYS_TR, shandle1,
  512. ESYS_TR, shandle2,
  513. ESYS_TR, shandle3,
  514. const TPM2B_ID_OBJECT *, credentialBlob,
  515. const TPM2B_ENCRYPTED_SECRET *, secret);
  516. MAKE_ESYS_1(Esys_ActivateCredential_Finish,
  517. TPM2B_DIGEST **, certInfo);
  518. MAKE_ESYS_5(Esys_ACT_SetTimeout,
  519. ESYS_TR, actHandle,
  520. ESYS_TR, shandle1,
  521. ESYS_TR, shandle2,
  522. ESYS_TR, shandle3,
  523. UINT32, startTimeout);
  524. MAKE_ESYS_5(Esys_ACT_SetTimeout_Async,
  525. ESYS_TR, actHandle,
  526. ESYS_TR, shandle1,
  527. ESYS_TR, shandle2,
  528. ESYS_TR, shandle3,
  529. UINT32, startTimeout);
  530. MAKE_ESYS_0(Esys_ACT_SetTimeout_Finish);
  531. MAKE_ESYS_8(Esys_MakeCredential,
  532. ESYS_TR, handle,
  533. ESYS_TR, shandle1,
  534. ESYS_TR, shandle2,
  535. ESYS_TR, shandle3,
  536. const TPM2B_DIGEST *, credential,
  537. const TPM2B_NAME *, objectName,
  538. TPM2B_ID_OBJECT **, credentialBlob,
  539. TPM2B_ENCRYPTED_SECRET **, secret);
  540. MAKE_ESYS_6(Esys_MakeCredential_Async,
  541. ESYS_TR, handle,
  542. ESYS_TR, shandle1,
  543. ESYS_TR, shandle2,
  544. ESYS_TR, shandle3,
  545. const TPM2B_DIGEST *, credential,
  546. const TPM2B_NAME *, objectName);
  547. MAKE_ESYS_2(Esys_MakeCredential_Finish,
  548. TPM2B_ID_OBJECT **, credentialBlob,
  549. TPM2B_ENCRYPTED_SECRET **, secret);
  550. MAKE_ESYS_5(Esys_Unseal,
  551. ESYS_TR, itemHandle,
  552. ESYS_TR, shandle1,
  553. ESYS_TR, shandle2,
  554. ESYS_TR, shandle3,
  555. TPM2B_SENSITIVE_DATA **, outData);
  556. MAKE_ESYS_4(Esys_Unseal_Async,
  557. ESYS_TR, itemHandle,
  558. ESYS_TR, shandle1,
  559. ESYS_TR, shandle2,
  560. ESYS_TR, shandle3);
  561. MAKE_ESYS_1(Esys_Unseal_Finish,
  562. TPM2B_SENSITIVE_DATA **, outData);
  563. MAKE_ESYS_7(Esys_ObjectChangeAuth,
  564. ESYS_TR, objectHandle,
  565. ESYS_TR, parentHandle,
  566. ESYS_TR, shandle1,
  567. ESYS_TR, shandle2,
  568. ESYS_TR, shandle3,
  569. const TPM2B_AUTH *, newAuth,
  570. TPM2B_PRIVATE **, outPrivate);
  571. MAKE_ESYS_6(Esys_ObjectChangeAuth_Async,
  572. ESYS_TR, objectHandle,
  573. ESYS_TR, parentHandle,
  574. ESYS_TR, shandle1,
  575. ESYS_TR, shandle2,
  576. ESYS_TR, shandle3,
  577. const TPM2B_AUTH *, newAuth);
  578. MAKE_ESYS_1(Esys_ObjectChangeAuth_Finish,
  579. TPM2B_PRIVATE **, outPrivate);
  580. MAKE_ESYS_9(Esys_CreateLoaded,
  581. ESYS_TR, parentHandle,
  582. ESYS_TR, shandle1,
  583. ESYS_TR, shandle2,
  584. ESYS_TR, shandle3,
  585. const TPM2B_SENSITIVE_CREATE *, inSensitive,
  586. const TPM2B_TEMPLATE *, inPublic,
  587. ESYS_TR *, objectHandle,
  588. TPM2B_PRIVATE **, outPrivate,
  589. TPM2B_PUBLIC **, outPublic);
  590. MAKE_ESYS_6(Esys_CreateLoaded_Async,
  591. ESYS_TR, parentHandle,
  592. ESYS_TR, shandle1,
  593. ESYS_TR, shandle2,
  594. ESYS_TR, shandle3,
  595. const TPM2B_SENSITIVE_CREATE *, inSensitive,
  596. const TPM2B_TEMPLATE *, inPublic);
  597. MAKE_ESYS_3(Esys_CreateLoaded_Finish,
  598. ESYS_TR *, objectHandle,
  599. TPM2B_PRIVATE **, outPrivate,
  600. TPM2B_PUBLIC **, outPublic);
  601. MAKE_ESYS_10(Esys_Duplicate,
  602. ESYS_TR, objectHandle,
  603. ESYS_TR, newParentHandle,
  604. ESYS_TR, shandle1,
  605. ESYS_TR, shandle2,
  606. ESYS_TR, shandle3,
  607. const TPM2B_DATA *, encryptionKeyIn,
  608. const TPMT_SYM_DEF_OBJECT *, symmetricAlg,
  609. TPM2B_DATA **, encryptionKeyOut,
  610. TPM2B_PRIVATE **, duplicate,
  611. TPM2B_ENCRYPTED_SECRET **, outSymSeed);
  612. MAKE_ESYS_7(Esys_Duplicate_Async,
  613. ESYS_TR, objectHandle,
  614. ESYS_TR, newParentHandle,
  615. ESYS_TR, shandle1,
  616. ESYS_TR, shandle2,
  617. ESYS_TR, shandle3,
  618. const TPM2B_DATA *, encryptionKeyIn,
  619. const TPMT_SYM_DEF_OBJECT *, symmetricAlg);
  620. MAKE_ESYS_3(Esys_Duplicate_Finish,
  621. TPM2B_DATA **, encryptionKeyOut,
  622. TPM2B_PRIVATE **, duplicate,
  623. TPM2B_ENCRYPTED_SECRET **, outSymSeed);
  624. MAKE_ESYS_10(Esys_Rewrap,
  625. ESYS_TR, oldParent,
  626. ESYS_TR, newParent,
  627. ESYS_TR, shandle1,
  628. ESYS_TR, shandle2,
  629. ESYS_TR, shandle3,
  630. const TPM2B_PRIVATE *, inDuplicate,
  631. const TPM2B_NAME *, name,
  632. const TPM2B_ENCRYPTED_SECRET *, inSymSeed,
  633. TPM2B_PRIVATE **, outDuplicate,
  634. TPM2B_ENCRYPTED_SECRET **, outSymSeed);
  635. MAKE_ESYS_8(Esys_Rewrap_Async,
  636. ESYS_TR, oldParent,
  637. ESYS_TR, newParent,
  638. ESYS_TR, shandle1,
  639. ESYS_TR, shandle2,
  640. ESYS_TR, shandle3,
  641. const TPM2B_PRIVATE *, inDuplicate,
  642. const TPM2B_NAME *, name,
  643. const TPM2B_ENCRYPTED_SECRET *, inSymSeed);
  644. MAKE_ESYS_2(Esys_Rewrap_Finish,
  645. TPM2B_PRIVATE **, outDuplicate,
  646. TPM2B_ENCRYPTED_SECRET **, outSymSeed);
  647. MAKE_ESYS_10(Esys_Import,
  648. ESYS_TR, parentHandle,
  649. ESYS_TR, shandle1,
  650. ESYS_TR, shandle2,
  651. ESYS_TR, shandle3,
  652. const TPM2B_DATA *, encryptionKey,
  653. const TPM2B_PUBLIC *, objectPublic,
  654. const TPM2B_PRIVATE *, duplicate,
  655. const TPM2B_ENCRYPTED_SECRET *, inSymSeed,
  656. const TPMT_SYM_DEF_OBJECT *, symmetricAlg,
  657. TPM2B_PRIVATE **, outPrivate);
  658. MAKE_ESYS_9(Esys_Import_Async,
  659. ESYS_TR, parentHandle,
  660. ESYS_TR, shandle1,
  661. ESYS_TR, shandle2,
  662. ESYS_TR, shandle3,
  663. const TPM2B_DATA *, encryptionKey,
  664. const TPM2B_PUBLIC *, objectPublic,
  665. const TPM2B_PRIVATE *, duplicate,
  666. const TPM2B_ENCRYPTED_SECRET *, inSymSeed,
  667. const TPMT_SYM_DEF_OBJECT *, symmetricAlg);
  668. MAKE_ESYS_1(Esys_Import_Finish,
  669. TPM2B_PRIVATE **, outPrivate);
  670. MAKE_ESYS_8(Esys_RSA_Encrypt,
  671. ESYS_TR, keyHandle,
  672. ESYS_TR, shandle1,
  673. ESYS_TR, shandle2,
  674. ESYS_TR, shandle3,
  675. const TPM2B_PUBLIC_KEY_RSA *, message,
  676. const TPMT_RSA_DECRYPT *, inScheme,
  677. const TPM2B_DATA *, label,
  678. TPM2B_PUBLIC_KEY_RSA **, outData);
  679. MAKE_ESYS_7(Esys_RSA_Encrypt_Async,
  680. ESYS_TR, keyHandle,
  681. ESYS_TR, shandle1,
  682. ESYS_TR, shandle2,
  683. ESYS_TR, shandle3,
  684. const TPM2B_PUBLIC_KEY_RSA *, message,
  685. const TPMT_RSA_DECRYPT *, inScheme,
  686. const TPM2B_DATA *, label);
  687. MAKE_ESYS_1(Esys_RSA_Encrypt_Finish,
  688. TPM2B_PUBLIC_KEY_RSA **, outData);
  689. MAKE_ESYS_8(Esys_RSA_Decrypt,
  690. ESYS_TR, keyHandle,
  691. ESYS_TR, shandle1,
  692. ESYS_TR, shandle2,
  693. ESYS_TR, shandle3,
  694. const TPM2B_PUBLIC_KEY_RSA *, cipherText,
  695. const TPMT_RSA_DECRYPT *, inScheme,
  696. const TPM2B_DATA *, label,
  697. TPM2B_PUBLIC_KEY_RSA **, message);
  698. MAKE_ESYS_7(Esys_RSA_Decrypt_Async,
  699. ESYS_TR, keyHandle,
  700. ESYS_TR, shandle1,
  701. ESYS_TR, shandle2,
  702. ESYS_TR, shandle3,
  703. const TPM2B_PUBLIC_KEY_RSA *, cipherText,
  704. const TPMT_RSA_DECRYPT *, inScheme,
  705. const TPM2B_DATA *, label);
  706. MAKE_ESYS_1(Esys_RSA_Decrypt_Finish,
  707. TPM2B_PUBLIC_KEY_RSA **, message);
  708. MAKE_ESYS_6(Esys_ECDH_KeyGen,
  709. ESYS_TR, keyHandle,
  710. ESYS_TR, shandle1,
  711. ESYS_TR, shandle2,
  712. ESYS_TR, shandle3,
  713. TPM2B_ECC_POINT **, zPoint,
  714. TPM2B_ECC_POINT **, pubPoint);
  715. MAKE_ESYS_4(Esys_ECDH_KeyGen_Async,
  716. ESYS_TR, keyHandle,
  717. ESYS_TR, shandle1,
  718. ESYS_TR, shandle2,
  719. ESYS_TR, shandle3);
  720. MAKE_ESYS_2(Esys_ECDH_KeyGen_Finish,
  721. TPM2B_ECC_POINT **, zPoint,
  722. TPM2B_ECC_POINT **, pubPoint);
  723. MAKE_ESYS_6(Esys_ECDH_ZGen,
  724. ESYS_TR, keyHandle,
  725. ESYS_TR, shandle1,
  726. ESYS_TR, shandle2,
  727. ESYS_TR, shandle3,
  728. const TPM2B_ECC_POINT *, inPoint,
  729. TPM2B_ECC_POINT **, outPoint);
  730. MAKE_ESYS_5(Esys_ECDH_ZGen_Async,
  731. ESYS_TR, keyHandle,
  732. ESYS_TR, shandle1,
  733. ESYS_TR, shandle2,
  734. ESYS_TR, shandle3,
  735. const TPM2B_ECC_POINT *, inPoint);
  736. MAKE_ESYS_1(Esys_ECDH_ZGen_Finish,
  737. TPM2B_ECC_POINT **, outPoint);
  738. MAKE_ESYS_5(Esys_ECC_Parameters,
  739. ESYS_TR, shandle1,
  740. ESYS_TR, shandle2,
  741. ESYS_TR, shandle3,
  742. TPMI_ECC_CURVE, curveID,
  743. TPMS_ALGORITHM_DETAIL_ECC **, parameters);
  744. MAKE_ESYS_4(Esys_ECC_Parameters_Async,
  745. ESYS_TR, shandle1,
  746. ESYS_TR, shandle2,
  747. ESYS_TR, shandle3,
  748. TPMI_ECC_CURVE, curveID);
  749. MAKE_ESYS_1(Esys_ECC_Parameters_Finish,
  750. TPMS_ALGORITHM_DETAIL_ECC **, parameters);
  751. MAKE_ESYS_10(Esys_ZGen_2Phase,
  752. ESYS_TR, keyA,
  753. ESYS_TR, shandle1,
  754. ESYS_TR, shandle2,
  755. ESYS_TR, shandle3,
  756. const TPM2B_ECC_POINT *, inQsB,
  757. const TPM2B_ECC_POINT *, inQeB,
  758. TPMI_ECC_KEY_EXCHANGE, inScheme,
  759. UINT16, counter,
  760. TPM2B_ECC_POINT **, outZ1,
  761. TPM2B_ECC_POINT **, outZ2);
  762. MAKE_ESYS_8(Esys_ZGen_2Phase_Async,
  763. ESYS_TR, keyA,
  764. ESYS_TR, shandle1,
  765. ESYS_TR, shandle2,
  766. ESYS_TR, shandle3,
  767. const TPM2B_ECC_POINT *, inQsB,
  768. const TPM2B_ECC_POINT *, inQeB,
  769. TPMI_ECC_KEY_EXCHANGE, inScheme,
  770. UINT16, counter);
  771. MAKE_ESYS_2(Esys_ZGen_2Phase_Finish,
  772. TPM2B_ECC_POINT **, outZ1,
  773. TPM2B_ECC_POINT **, outZ2);
  774. MAKE_ESYS_10(Esys_EncryptDecrypt,
  775. ESYS_TR, keyHandle,
  776. ESYS_TR, shandle1,
  777. ESYS_TR, shandle2,
  778. ESYS_TR, shandle3,
  779. TPMI_YES_NO, decrypt,
  780. TPMI_ALG_CIPHER_MODE, mode,
  781. const TPM2B_IV *, ivIn,
  782. const TPM2B_MAX_BUFFER *, inData,
  783. TPM2B_MAX_BUFFER **, outData,
  784. TPM2B_IV **, ivOut);
  785. MAKE_ESYS_8(Esys_EncryptDecrypt_Async,
  786. ESYS_TR, keyHandle,
  787. ESYS_TR, shandle1,
  788. ESYS_TR, shandle2,
  789. ESYS_TR, shandle3,
  790. TPMI_YES_NO, decrypt,
  791. TPMI_ALG_CIPHER_MODE, mode,
  792. const TPM2B_IV *, ivIn,
  793. const TPM2B_MAX_BUFFER *, inData);
  794. MAKE_ESYS_2(Esys_EncryptDecrypt_Finish,
  795. TPM2B_MAX_BUFFER **, outData,
  796. TPM2B_IV **, ivOut);
  797. MAKE_ESYS_10(Esys_EncryptDecrypt2,
  798. ESYS_TR, keyHandle,
  799. ESYS_TR, shandle1,
  800. ESYS_TR, shandle2,
  801. ESYS_TR, shandle3,
  802. const TPM2B_MAX_BUFFER *, inData,
  803. TPMI_YES_NO, decrypt,
  804. TPMI_ALG_CIPHER_MODE, mode,
  805. const TPM2B_IV *, ivIn,
  806. TPM2B_MAX_BUFFER **, outData,
  807. TPM2B_IV **, ivOut);
  808. MAKE_ESYS_8(Esys_EncryptDecrypt2_Async,
  809. ESYS_TR, keyHandle,
  810. ESYS_TR, shandle1,
  811. ESYS_TR, shandle2,
  812. ESYS_TR, shandle3,
  813. const TPM2B_MAX_BUFFER *, inData,
  814. TPMI_YES_NO, decrypt,
  815. TPMI_ALG_CIPHER_MODE, mode,
  816. const TPM2B_IV *, ivIn);
  817. MAKE_ESYS_2(Esys_EncryptDecrypt2_Finish,
  818. TPM2B_MAX_BUFFER **, outData,
  819. TPM2B_IV **, ivOut);
  820. MAKE_ESYS_8(Esys_Hash,
  821. ESYS_TR, shandle1,
  822. ESYS_TR, shandle2,
  823. ESYS_TR, shandle3,
  824. const TPM2B_MAX_BUFFER *, data,
  825. TPMI_ALG_HASH, hashAlg,
  826. ESYS_TR, hierarchy,
  827. TPM2B_DIGEST **, outHash,
  828. TPMT_TK_HASHCHECK **, validation);
  829. MAKE_ESYS_6(Esys_Hash_Async,
  830. ESYS_TR, shandle1,
  831. ESYS_TR, shandle2,
  832. ESYS_TR, shandle3,
  833. const TPM2B_MAX_BUFFER *, data,
  834. TPMI_ALG_HASH, hashAlg,
  835. ESYS_TR, hierarchy);
  836. MAKE_ESYS_2(Esys_Hash_Finish,
  837. TPM2B_DIGEST **, outHash,
  838. TPMT_TK_HASHCHECK **, validation);
  839. MAKE_ESYS_7(Esys_HMAC,
  840. ESYS_TR, handle,
  841. ESYS_TR, shandle1,
  842. ESYS_TR, shandle2,
  843. ESYS_TR, shandle3,
  844. const TPM2B_MAX_BUFFER *, buffer,
  845. TPMI_ALG_HASH, hashAlg,
  846. TPM2B_DIGEST **, outHMAC);
  847. MAKE_ESYS_6(Esys_HMAC_Async,
  848. ESYS_TR, handle,
  849. ESYS_TR, shandle1,
  850. ESYS_TR, shandle2,
  851. ESYS_TR, shandle3,
  852. const TPM2B_MAX_BUFFER *, buffer,
  853. TPMI_ALG_HASH, hashAlg);
  854. MAKE_ESYS_1(Esys_HMAC_Finish,
  855. TPM2B_DIGEST **, outHMAC);
  856. MAKE_ESYS_5(Esys_GetRandom,
  857. ESYS_TR, shandle1,
  858. ESYS_TR, shandle2,
  859. ESYS_TR, shandle3,
  860. UINT16, bytesRequested,
  861. TPM2B_DIGEST **, randomBytes);
  862. MAKE_ESYS_4(Esys_GetRandom_Async,
  863. ESYS_TR, shandle1,
  864. ESYS_TR, shandle2,
  865. ESYS_TR, shandle3,
  866. UINT16, bytesRequested);
  867. MAKE_ESYS_1(Esys_GetRandom_Finish,
  868. TPM2B_DIGEST **, randomBytes);
  869. MAKE_ESYS_4(Esys_StirRandom,
  870. ESYS_TR, shandle1,
  871. ESYS_TR, shandle2,
  872. ESYS_TR, shandle3,
  873. const TPM2B_SENSITIVE_DATA *, inData);
  874. MAKE_ESYS_4(Esys_StirRandom_Async,
  875. ESYS_TR, shandle1,
  876. ESYS_TR, shandle2,
  877. ESYS_TR, shandle3,
  878. const TPM2B_SENSITIVE_DATA *, inData);
  879. MAKE_ESYS_0(Esys_StirRandom_Finish);
  880. MAKE_ESYS_7(Esys_HMAC_Start,
  881. ESYS_TR, handle,
  882. ESYS_TR, shandle1,
  883. ESYS_TR, shandle2,
  884. ESYS_TR, shandle3,
  885. const TPM2B_AUTH *, auth,
  886. TPMI_ALG_HASH, hashAlg,
  887. ESYS_TR *, sequenceHandle);
  888. MAKE_ESYS_6(Esys_HMAC_Start_Async,
  889. ESYS_TR, handle,
  890. ESYS_TR, shandle1,
  891. ESYS_TR, shandle2,
  892. ESYS_TR, shandle3,
  893. const TPM2B_AUTH *, auth,
  894. TPMI_ALG_HASH, hashAlg);
  895. MAKE_ESYS_1(Esys_HMAC_Start_Finish,
  896. ESYS_TR *, sequenceHandle);
  897. MAKE_ESYS_6(Esys_HashSequenceStart,
  898. ESYS_TR, shandle1,
  899. ESYS_TR, shandle2,
  900. ESYS_TR, shandle3,
  901. const TPM2B_AUTH *, auth,
  902. TPMI_ALG_HASH, hashAlg,
  903. ESYS_TR *, sequenceHandle);
  904. MAKE_ESYS_5(Esys_HashSequenceStart_Async,
  905. ESYS_TR, shandle1,
  906. ESYS_TR, shandle2,
  907. ESYS_TR, shandle3,
  908. const TPM2B_AUTH *, auth,
  909. TPMI_ALG_HASH, hashAlg);
  910. MAKE_ESYS_1(Esys_HashSequenceStart_Finish,
  911. ESYS_TR *, sequenceHandle);
  912. MAKE_ESYS_5(Esys_SequenceUpdate,
  913. ESYS_TR, sequenceHandle,
  914. ESYS_TR, shandle1,
  915. ESYS_TR, shandle2,
  916. ESYS_TR, shandle3,
  917. const TPM2B_MAX_BUFFER *, buffer);
  918. MAKE_ESYS_5(Esys_SequenceUpdate_Async,
  919. ESYS_TR, sequenceHandle,
  920. ESYS_TR, shandle1,
  921. ESYS_TR, shandle2,
  922. ESYS_TR, shandle3,
  923. const TPM2B_MAX_BUFFER *, buffer);
  924. MAKE_ESYS_0(Esys_SequenceUpdate_Finish);
  925. MAKE_ESYS_8(Esys_SequenceComplete,
  926. ESYS_TR, sequenceHandle,
  927. ESYS_TR, shandle1,
  928. ESYS_TR, shandle2,
  929. ESYS_TR, shandle3,
  930. const TPM2B_MAX_BUFFER *, buffer,
  931. ESYS_TR, hierarchy,
  932. TPM2B_DIGEST **, result,
  933. TPMT_TK_HASHCHECK **, validation);
  934. MAKE_ESYS_6(Esys_SequenceComplete_Async,
  935. ESYS_TR, sequenceHandle,
  936. ESYS_TR, shandle1,
  937. ESYS_TR, shandle2,
  938. ESYS_TR, shandle3,
  939. const TPM2B_MAX_BUFFER *, buffer,
  940. ESYS_TR, hierarchy);
  941. MAKE_ESYS_2(Esys_SequenceComplete_Finish,
  942. TPM2B_DIGEST **, result,
  943. TPMT_TK_HASHCHECK **, validation);
  944. MAKE_ESYS_7(Esys_EventSequenceComplete,
  945. ESYS_TR, pcrHandle,
  946. ESYS_TR, sequenceHandle,
  947. ESYS_TR, shandle1,
  948. ESYS_TR, shandle2,
  949. ESYS_TR, shandle3,
  950. const TPM2B_MAX_BUFFER *, buffer,
  951. TPML_DIGEST_VALUES **, results);
  952. MAKE_ESYS_6(Esys_EventSequenceComplete_Async,
  953. ESYS_TR, pcrHandle,
  954. ESYS_TR, sequenceHandle,
  955. ESYS_TR, shandle1,
  956. ESYS_TR, shandle2,
  957. ESYS_TR, shandle3,
  958. const TPM2B_MAX_BUFFER *, buffer);
  959. MAKE_ESYS_1(Esys_EventSequenceComplete_Finish,
  960. TPML_DIGEST_VALUES **, results);
  961. MAKE_ESYS_9(Esys_Certify,
  962. ESYS_TR, objectHandle,
  963. ESYS_TR, signHandle,
  964. ESYS_TR, shandle1,
  965. ESYS_TR, shandle2,
  966. ESYS_TR, shandle3,
  967. const TPM2B_DATA *, qualifyingData,
  968. const TPMT_SIG_SCHEME *, inScheme,
  969. TPM2B_ATTEST **, certifyInfo,
  970. TPMT_SIGNATURE **, signature);
  971. MAKE_ESYS_7(Esys_Certify_Async,
  972. ESYS_TR, objectHandle,
  973. ESYS_TR, signHandle,
  974. ESYS_TR, shandle1,
  975. ESYS_TR, shandle2,
  976. ESYS_TR, shandle3,
  977. const TPM2B_DATA *, qualifyingData,
  978. const TPMT_SIG_SCHEME *, inScheme);
  979. MAKE_ESYS_2(Esys_Certify_Finish,
  980. TPM2B_ATTEST **, certifyInfo,
  981. TPMT_SIGNATURE **, signature);
  982. MAKE_ESYS_11(Esys_CertifyCreation,
  983. ESYS_TR, signHandle,
  984. ESYS_TR, objectHandle,
  985. ESYS_TR, shandle1,
  986. ESYS_TR, shandle2,
  987. ESYS_TR, shandle3,
  988. const TPM2B_DATA *, qualifyingData,
  989. const TPM2B_DIGEST *, creationHash,
  990. const TPMT_SIG_SCHEME *, inScheme,
  991. const TPMT_TK_CREATION *, creationTicket,
  992. TPM2B_ATTEST **, certifyInfo,
  993. TPMT_SIGNATURE **, signature);
  994. MAKE_ESYS_9(Esys_CertifyCreation_Async,
  995. ESYS_TR, signHandle,
  996. ESYS_TR, objectHandle,
  997. ESYS_TR, shandle1,
  998. ESYS_TR, shandle2,
  999. ESYS_TR, shandle3,
  1000. const TPM2B_DATA *, qualifyingData,
  1001. const TPM2B_DIGEST *, creationHash,
  1002. const TPMT_SIG_SCHEME *, inScheme,
  1003. const TPMT_TK_CREATION *, creationTicket);
  1004. MAKE_ESYS_2(Esys_CertifyCreation_Finish,
  1005. TPM2B_ATTEST **, certifyInfo,
  1006. TPMT_SIGNATURE **, signature);
  1007. MAKE_ESYS_11(Esys_CertifyX509,
  1008. ESYS_TR, objectHandle,
  1009. ESYS_TR, signHandle,
  1010. ESYS_TR, shandle1,
  1011. ESYS_TR, shandle2,
  1012. ESYS_TR, shandle3,
  1013. const TPM2B_DATA *, reserved,
  1014. const TPMT_SIG_SCHEME *, inScheme,
  1015. const TPM2B_MAX_BUFFER *, partialCertificate,
  1016. TPM2B_MAX_BUFFER **, addedToCertificate,
  1017. TPM2B_DIGEST **, tbsDigest,
  1018. TPMT_SIGNATURE **, signature);
  1019. MAKE_ESYS_8(Esys_CertifyX509_Async,
  1020. ESYS_TR, objectHandle,
  1021. ESYS_TR, signHandle,
  1022. ESYS_TR, shandle1,
  1023. ESYS_TR, shandle2,
  1024. ESYS_TR, shandle3,
  1025. const TPM2B_DATA *, reserved,
  1026. const TPMT_SIG_SCHEME *, inScheme,
  1027. const TPM2B_MAX_BUFFER *, partialCertificate);
  1028. MAKE_ESYS_3(Esys_CertifyX509_Finish,
  1029. TPM2B_MAX_BUFFER **, addedToCertificate,
  1030. TPM2B_DIGEST **, tbsDigest,
  1031. TPMT_SIGNATURE **, signature);
  1032. MAKE_ESYS_9(Esys_Quote,
  1033. ESYS_TR, signHandle,
  1034. ESYS_TR, shandle1,
  1035. ESYS_TR, shandle2,
  1036. ESYS_TR, shandle3,
  1037. const TPM2B_DATA *, qualifyingData,
  1038. const TPMT_SIG_SCHEME *, inScheme,
  1039. const TPML_PCR_SELECTION *, PCRselect,
  1040. TPM2B_ATTEST **, quoted,
  1041. TPMT_SIGNATURE **, signature);
  1042. MAKE_ESYS_7(Esys_Quote_Async,
  1043. ESYS_TR, signHandle,
  1044. ESYS_TR, shandle1,
  1045. ESYS_TR, shandle2,
  1046. ESYS_TR, shandle3,
  1047. const TPM2B_DATA *, qualifyingData,
  1048. const TPMT_SIG_SCHEME *, inScheme,
  1049. const TPML_PCR_SELECTION *, PCRselect);
  1050. MAKE_ESYS_2(Esys_Quote_Finish,
  1051. TPM2B_ATTEST **, quoted,
  1052. TPMT_SIGNATURE **, signature);
  1053. MAKE_ESYS_10(Esys_GetSessionAuditDigest,
  1054. ESYS_TR, privacyAdminHandle,
  1055. ESYS_TR, signHandle,
  1056. ESYS_TR, sessionHandle,
  1057. ESYS_TR, shandle1,
  1058. ESYS_TR, shandle2,
  1059. ESYS_TR, shandle3,
  1060. const TPM2B_DATA *, qualifyingData,
  1061. const TPMT_SIG_SCHEME *, inScheme,
  1062. TPM2B_ATTEST **, auditInfo,
  1063. TPMT_SIGNATURE **, signature);
  1064. MAKE_ESYS_8(Esys_GetSessionAuditDigest_Async,
  1065. ESYS_TR, privacyAdminHandle,
  1066. ESYS_TR, signHandle,
  1067. ESYS_TR, sessionHandle,
  1068. ESYS_TR, shandle1,
  1069. ESYS_TR, shandle2,
  1070. ESYS_TR, shandle3,
  1071. const TPM2B_DATA *, qualifyingData,
  1072. const TPMT_SIG_SCHEME *, inScheme);
  1073. MAKE_ESYS_2(Esys_GetSessionAuditDigest_Finish,
  1074. TPM2B_ATTEST **, auditInfo,
  1075. TPMT_SIGNATURE **, signature);
  1076. MAKE_ESYS_9(Esys_GetCommandAuditDigest,
  1077. ESYS_TR, privacyHandle,
  1078. ESYS_TR, signHandle,
  1079. ESYS_TR, shandle1,
  1080. ESYS_TR, shandle2,
  1081. ESYS_TR, shandle3,
  1082. const TPM2B_DATA *, qualifyingData,
  1083. const TPMT_SIG_SCHEME *, inScheme,
  1084. TPM2B_ATTEST **, auditInfo,
  1085. TPMT_SIGNATURE **, signature);
  1086. MAKE_ESYS_7(Esys_GetCommandAuditDigest_Async,
  1087. ESYS_TR, privacyHandle,
  1088. ESYS_TR, signHandle,
  1089. ESYS_TR, shandle1,
  1090. ESYS_TR, shandle2,
  1091. ESYS_TR, shandle3,
  1092. const TPM2B_DATA *, qualifyingData,
  1093. const TPMT_SIG_SCHEME *, inScheme);
  1094. MAKE_ESYS_2(Esys_GetCommandAuditDigest_Finish,
  1095. TPM2B_ATTEST **, auditInfo,
  1096. TPMT_SIGNATURE **, signature);
  1097. MAKE_ESYS_9(Esys_GetTime,
  1098. ESYS_TR, privacyAdminHandle,
  1099. ESYS_TR, signHandle,
  1100. ESYS_TR, shandle1,
  1101. ESYS_TR, shandle2,
  1102. ESYS_TR, shandle3,
  1103. const TPM2B_DATA *, qualifyingData,
  1104. const TPMT_SIG_SCHEME *, inScheme,
  1105. TPM2B_ATTEST **, timeInfo,
  1106. TPMT_SIGNATURE **, signature);
  1107. MAKE_ESYS_7(Esys_GetTime_Async,
  1108. ESYS_TR, privacyAdminHandle,
  1109. ESYS_TR, signHandle,
  1110. ESYS_TR, shandle1,
  1111. ESYS_TR, shandle2,
  1112. ESYS_TR, shandle3,
  1113. const TPM2B_DATA *, qualifyingData,
  1114. const TPMT_SIG_SCHEME *, inScheme);
  1115. MAKE_ESYS_2(Esys_GetTime_Finish,
  1116. TPM2B_ATTEST **, timeInfo,
  1117. TPMT_SIGNATURE **, signature);
  1118. MAKE_ESYS_11(Esys_Commit,
  1119. ESYS_TR, signHandle,
  1120. ESYS_TR, shandle1,
  1121. ESYS_TR, shandle2,
  1122. ESYS_TR, shandle3,
  1123. const TPM2B_ECC_POINT *, P1,
  1124. const TPM2B_SENSITIVE_DATA *, s2,
  1125. const TPM2B_ECC_PARAMETER *, y2,
  1126. TPM2B_ECC_POINT **, K,
  1127. TPM2B_ECC_POINT **, L,
  1128. TPM2B_ECC_POINT **, E,
  1129. UINT16 *, counter);
  1130. MAKE_ESYS_7(Esys_Commit_Async,
  1131. ESYS_TR, signHandle,
  1132. ESYS_TR, shandle1,
  1133. ESYS_TR, shandle2,
  1134. ESYS_TR, shandle3,
  1135. const TPM2B_ECC_POINT *, P1,
  1136. const TPM2B_SENSITIVE_DATA *, s2,
  1137. const TPM2B_ECC_PARAMETER *, y2);
  1138. MAKE_ESYS_4(Esys_Commit_Finish,
  1139. TPM2B_ECC_POINT **, K,
  1140. TPM2B_ECC_POINT **, L,
  1141. TPM2B_ECC_POINT **, E,
  1142. UINT16 *, counter);
  1143. MAKE_ESYS_6(Esys_EC_Ephemeral,
  1144. ESYS_TR, shandle1,
  1145. ESYS_TR, shandle2,
  1146. ESYS_TR, shandle3,
  1147. TPMI_ECC_CURVE, curveID,
  1148. TPM2B_ECC_POINT **, Q,
  1149. UINT16 *, counter);
  1150. MAKE_ESYS_4(Esys_EC_Ephemeral_Async,
  1151. ESYS_TR, shandle1,
  1152. ESYS_TR, shandle2,
  1153. ESYS_TR, shandle3,
  1154. TPMI_ECC_CURVE, curveID);
  1155. MAKE_ESYS_2(Esys_EC_Ephemeral_Finish,
  1156. TPM2B_ECC_POINT **, Q,
  1157. UINT16 *, counter);
  1158. MAKE_ESYS_7(Esys_VerifySignature,
  1159. ESYS_TR, keyHandle,
  1160. ESYS_TR, shandle1,
  1161. ESYS_TR, shandle2,
  1162. ESYS_TR, shandle3,
  1163. const TPM2B_DIGEST *, digest,
  1164. const TPMT_SIGNATURE *, signature,
  1165. TPMT_TK_VERIFIED **, validation);
  1166. MAKE_ESYS_6(Esys_VerifySignature_Async,
  1167. ESYS_TR, keyHandle,
  1168. ESYS_TR, shandle1,
  1169. ESYS_TR, shandle2,
  1170. ESYS_TR, shandle3,
  1171. const TPM2B_DIGEST *, digest,
  1172. const TPMT_SIGNATURE *, signature);
  1173. MAKE_ESYS_1(Esys_VerifySignature_Finish,
  1174. TPMT_TK_VERIFIED **, validation);
  1175. MAKE_ESYS_8(Esys_Sign,
  1176. ESYS_TR, keyHandle,
  1177. ESYS_TR, shandle1,
  1178. ESYS_TR, shandle2,
  1179. ESYS_TR, shandle3,
  1180. const TPM2B_DIGEST *, digest,
  1181. const TPMT_SIG_SCHEME *, inScheme,
  1182. const TPMT_TK_HASHCHECK *, validation,
  1183. TPMT_SIGNATURE **, signature);
  1184. MAKE_ESYS_7(Esys_Sign_Async,
  1185. ESYS_TR, keyHandle,
  1186. ESYS_TR, shandle1,
  1187. ESYS_TR, shandle2,
  1188. ESYS_TR, shandle3,
  1189. const TPM2B_DIGEST *, digest,
  1190. const TPMT_SIG_SCHEME *, inScheme,
  1191. const TPMT_TK_HASHCHECK *, validation);
  1192. MAKE_ESYS_1(Esys_Sign_Finish,
  1193. TPMT_SIGNATURE **, signature);
  1194. MAKE_ESYS_7(Esys_SetCommandCodeAuditStatus,
  1195. ESYS_TR, auth,
  1196. ESYS_TR, shandle1,
  1197. ESYS_TR, shandle2,
  1198. ESYS_TR, shandle3,
  1199. TPMI_ALG_HASH, auditAlg,
  1200. const TPML_CC *, setList,
  1201. const TPML_CC *, clearList);
  1202. MAKE_ESYS_7(Esys_SetCommandCodeAuditStatus_Async,
  1203. ESYS_TR, auth,
  1204. ESYS_TR, shandle1,
  1205. ESYS_TR, shandle2,
  1206. ESYS_TR, shandle3,
  1207. TPMI_ALG_HASH, auditAlg,
  1208. const TPML_CC *, setList,
  1209. const TPML_CC *, clearList);
  1210. MAKE_ESYS_0(Esys_SetCommandCodeAuditStatus_Finish);
  1211. MAKE_ESYS_5(Esys_PCR_Extend,
  1212. ESYS_TR, pcrHandle,
  1213. ESYS_TR, shandle1,
  1214. ESYS_TR, shandle2,
  1215. ESYS_TR, shandle3,
  1216. const TPML_DIGEST_VALUES *, digests);
  1217. MAKE_ESYS_5(Esys_PCR_Extend_Async,
  1218. ESYS_TR, pcrHandle,
  1219. ESYS_TR, shandle1,
  1220. ESYS_TR, shandle2,
  1221. ESYS_TR, shandle3,
  1222. const TPML_DIGEST_VALUES *, digests);
  1223. MAKE_ESYS_0(Esys_PCR_Extend_Finish);
  1224. MAKE_ESYS_6(Esys_PCR_Event,
  1225. ESYS_TR, pcrHandle,
  1226. ESYS_TR, shandle1,
  1227. ESYS_TR, shandle2,
  1228. ESYS_TR, shandle3,
  1229. const TPM2B_EVENT *, eventData,
  1230. TPML_DIGEST_VALUES **, digests);
  1231. MAKE_ESYS_5(Esys_PCR_Event_Async,
  1232. ESYS_TR, pcrHandle,
  1233. ESYS_TR, shandle1,
  1234. ESYS_TR, shandle2,
  1235. ESYS_TR, shandle3,
  1236. const TPM2B_EVENT *, eventData);
  1237. MAKE_ESYS_1(Esys_PCR_Event_Finish,
  1238. TPML_DIGEST_VALUES **, digests);
  1239. MAKE_ESYS_7(Esys_PCR_Read,
  1240. ESYS_TR, shandle1,
  1241. ESYS_TR, shandle2,
  1242. ESYS_TR, shandle3,
  1243. const TPML_PCR_SELECTION *, pcrSelectionIn,
  1244. UINT32 *, pcrUpdateCounter,
  1245. TPML_PCR_SELECTION **, pcrSelectionOut,
  1246. TPML_DIGEST **, pcrValues);
  1247. MAKE_ESYS_4(Esys_PCR_Read_Async,
  1248. ESYS_TR, shandle1,
  1249. ESYS_TR, shandle2,
  1250. ESYS_TR, shandle3,
  1251. const TPML_PCR_SELECTION *, pcrSelectionIn);
  1252. MAKE_ESYS_3(Esys_PCR_Read_Finish,
  1253. UINT32 *, pcrUpdateCounter,
  1254. TPML_PCR_SELECTION **, pcrSelectionOut,
  1255. TPML_DIGEST **, pcrValues);
  1256. MAKE_ESYS_9(Esys_PCR_Allocate,
  1257. ESYS_TR, authHandle,
  1258. ESYS_TR, shandle1,
  1259. ESYS_TR, shandle2,
  1260. ESYS_TR, shandle3,
  1261. const TPML_PCR_SELECTION *, pcrAllocation,
  1262. TPMI_YES_NO *, allocationSuccess,
  1263. UINT32 *, maxPCR,
  1264. UINT32 *, sizeNeeded,
  1265. UINT32 *, sizeAvailable);
  1266. MAKE_ESYS_5(Esys_PCR_Allocate_Async,
  1267. ESYS_TR, authHandle,
  1268. ESYS_TR, shandle1,
  1269. ESYS_TR, shandle2,
  1270. ESYS_TR, shandle3,
  1271. const TPML_PCR_SELECTION *, pcrAllocation);
  1272. MAKE_ESYS_4(Esys_PCR_Allocate_Finish,
  1273. TPMI_YES_NO *, allocationSuccess,
  1274. UINT32 *, maxPCR,
  1275. UINT32 *, sizeNeeded,
  1276. UINT32 *, sizeAvailable);
  1277. MAKE_ESYS_7(Esys_PCR_SetAuthPolicy,
  1278. ESYS_TR, authHandle,
  1279. ESYS_TR, shandle1,
  1280. ESYS_TR, shandle2,
  1281. ESYS_TR, shandle3,
  1282. const TPM2B_DIGEST *, authPolicy,
  1283. TPMI_ALG_HASH, hashAlg,
  1284. TPMI_DH_PCR, pcrNum);
  1285. MAKE_ESYS_7(Esys_PCR_SetAuthPolicy_Async,
  1286. ESYS_TR, authHandle,
  1287. ESYS_TR, shandle1,
  1288. ESYS_TR, shandle2,
  1289. ESYS_TR, shandle3,
  1290. const TPM2B_DIGEST *, authPolicy,
  1291. TPMI_ALG_HASH, hashAlg,
  1292. TPMI_DH_PCR, pcrNum);
  1293. MAKE_ESYS_0(Esys_PCR_SetAuthPolicy_Finish);
  1294. MAKE_ESYS_5(Esys_PCR_SetAuthValue,
  1295. ESYS_TR, pcrHandle,
  1296. ESYS_TR, shandle1,
  1297. ESYS_TR, shandle2,
  1298. ESYS_TR, shandle3,
  1299. const TPM2B_DIGEST *, auth);
  1300. MAKE_ESYS_5(Esys_PCR_SetAuthValue_Async,
  1301. ESYS_TR, pcrHandle,
  1302. ESYS_TR, shandle1,
  1303. ESYS_TR, shandle2,
  1304. ESYS_TR, shandle3,
  1305. const TPM2B_DIGEST *, auth);
  1306. MAKE_ESYS_0(Esys_PCR_SetAuthValue_Finish);
  1307. MAKE_ESYS_4(Esys_PCR_Reset,
  1308. ESYS_TR, pcrHandle,
  1309. ESYS_TR, shandle1,
  1310. ESYS_TR, shandle2,
  1311. ESYS_TR, shandle3);
  1312. MAKE_ESYS_4(Esys_PCR_Reset_Async,
  1313. ESYS_TR, pcrHandle,
  1314. ESYS_TR, shandle1,
  1315. ESYS_TR, shandle2,
  1316. ESYS_TR, shandle3);
  1317. MAKE_ESYS_0(Esys_PCR_Reset_Finish);
  1318. MAKE_ESYS_12(Esys_PolicySigned,
  1319. ESYS_TR, authObject,
  1320. ESYS_TR, policySession,
  1321. ESYS_TR, shandle1,
  1322. ESYS_TR, shandle2,
  1323. ESYS_TR, shandle3,
  1324. const TPM2B_NONCE *, nonceTPM,
  1325. const TPM2B_DIGEST *, cpHashA,
  1326. const TPM2B_NONCE *, policyRef,
  1327. INT32, expiration,
  1328. const TPMT_SIGNATURE *, auth,
  1329. TPM2B_TIMEOUT **, timeout,
  1330. TPMT_TK_AUTH **, policyTicket);
  1331. MAKE_ESYS_10(Esys_PolicySigned_Async,
  1332. ESYS_TR, authObject,
  1333. ESYS_TR, policySession,
  1334. ESYS_TR, shandle1,
  1335. ESYS_TR, shandle2,
  1336. ESYS_TR, shandle3,
  1337. const TPM2B_NONCE *, nonceTPM,
  1338. const TPM2B_DIGEST *, cpHashA,
  1339. const TPM2B_NONCE *, policyRef,
  1340. INT32, expiration,
  1341. const TPMT_SIGNATURE *, auth);
  1342. MAKE_ESYS_2(Esys_PolicySigned_Finish,
  1343. TPM2B_TIMEOUT **, timeout,
  1344. TPMT_TK_AUTH **, policyTicket);
  1345. MAKE_ESYS_11(Esys_PolicySecret,
  1346. ESYS_TR, authHandle,
  1347. ESYS_TR, policySession,
  1348. ESYS_TR, shandle1,
  1349. ESYS_TR, shandle2,
  1350. ESYS_TR, shandle3,
  1351. const TPM2B_NONCE *, nonceTPM,
  1352. const TPM2B_DIGEST *, cpHashA,
  1353. const TPM2B_NONCE *, policyRef,
  1354. INT32, expiration,
  1355. TPM2B_TIMEOUT **, timeout,
  1356. TPMT_TK_AUTH **, policyTicket);
  1357. MAKE_ESYS_9(Esys_PolicySecret_Async,
  1358. ESYS_TR, authHandle,
  1359. ESYS_TR, policySession,
  1360. ESYS_TR, shandle1,
  1361. ESYS_TR, shandle2,
  1362. ESYS_TR, shandle3,
  1363. const TPM2B_NONCE *, nonceTPM,
  1364. const TPM2B_DIGEST *, cpHashA,
  1365. const TPM2B_NONCE *, policyRef,
  1366. INT32, expiration);
  1367. MAKE_ESYS_2(Esys_PolicySecret_Finish,
  1368. TPM2B_TIMEOUT **, timeout,
  1369. TPMT_TK_AUTH **, policyTicket);
  1370. MAKE_ESYS_9(Esys_PolicyTicket,
  1371. ESYS_TR, policySession,
  1372. ESYS_TR, shandle1,
  1373. ESYS_TR, shandle2,
  1374. ESYS_TR, shandle3,
  1375. const TPM2B_TIMEOUT *, timeout,
  1376. const TPM2B_DIGEST *, cpHashA,
  1377. const TPM2B_NONCE *, policyRef,
  1378. const TPM2B_NAME *, authName,
  1379. const TPMT_TK_AUTH *, ticket);
  1380. MAKE_ESYS_9(Esys_PolicyTicket_Async,
  1381. ESYS_TR, policySession,
  1382. ESYS_TR, shandle1,
  1383. ESYS_TR, shandle2,
  1384. ESYS_TR, shandle3,
  1385. const TPM2B_TIMEOUT *, timeout,
  1386. const TPM2B_DIGEST *, cpHashA,
  1387. const TPM2B_NONCE *, policyRef,
  1388. const TPM2B_NAME *, authName,
  1389. const TPMT_TK_AUTH *, ticket);
  1390. MAKE_ESYS_0(Esys_PolicyTicket_Finish);
  1391. MAKE_ESYS_5(Esys_PolicyOR,
  1392. ESYS_TR, policySession,
  1393. ESYS_TR, shandle1,
  1394. ESYS_TR, shandle2,
  1395. ESYS_TR, shandle3,
  1396. const TPML_DIGEST *, pHashList);
  1397. MAKE_ESYS_5(Esys_PolicyOR_Async,
  1398. ESYS_TR, policySession,
  1399. ESYS_TR, shandle1,
  1400. ESYS_TR, shandle2,
  1401. ESYS_TR, shandle3,
  1402. const TPML_DIGEST *, pHashList);
  1403. MAKE_ESYS_0(Esys_PolicyOR_Finish);
  1404. MAKE_ESYS_6(Esys_PolicyPCR,
  1405. ESYS_TR, policySession,
  1406. ESYS_TR, shandle1,
  1407. ESYS_TR, shandle2,
  1408. ESYS_TR, shandle3,
  1409. const TPM2B_DIGEST *, pcrDigest,
  1410. const TPML_PCR_SELECTION *, pcrs);
  1411. MAKE_ESYS_6(Esys_PolicyPCR_Async,
  1412. ESYS_TR, policySession,
  1413. ESYS_TR, shandle1,
  1414. ESYS_TR, shandle2,
  1415. ESYS_TR, shandle3,
  1416. const TPM2B_DIGEST *, pcrDigest,
  1417. const TPML_PCR_SELECTION *, pcrs);
  1418. MAKE_ESYS_0(Esys_PolicyPCR_Finish);
  1419. MAKE_ESYS_5(Esys_PolicyLocality,
  1420. ESYS_TR, policySession,
  1421. ESYS_TR, shandle1,
  1422. ESYS_TR, shandle2,
  1423. ESYS_TR, shandle3,
  1424. TPMA_LOCALITY, locality);
  1425. MAKE_ESYS_5(Esys_PolicyLocality_Async,
  1426. ESYS_TR, policySession,
  1427. ESYS_TR, shandle1,
  1428. ESYS_TR, shandle2,
  1429. ESYS_TR, shandle3,
  1430. TPMA_LOCALITY, locality);
  1431. MAKE_ESYS_0(Esys_PolicyLocality_Finish);
  1432. MAKE_ESYS_9(Esys_PolicyNV,
  1433. ESYS_TR, authHandle,
  1434. ESYS_TR, nvIndex,
  1435. ESYS_TR, policySession,
  1436. ESYS_TR, shandle1,
  1437. ESYS_TR, shandle2,
  1438. ESYS_TR, shandle3,
  1439. const TPM2B_OPERAND *, operandB,
  1440. UINT16, offset,
  1441. TPM2_EO, operation);
  1442. MAKE_ESYS_9(Esys_PolicyNV_Async,
  1443. ESYS_TR, authHandle,
  1444. ESYS_TR, nvIndex,
  1445. ESYS_TR, policySession,
  1446. ESYS_TR, shandle1,
  1447. ESYS_TR, shandle2,
  1448. ESYS_TR, shandle3,
  1449. const TPM2B_OPERAND *, operandB,
  1450. UINT16, offset,
  1451. TPM2_EO, operation);
  1452. MAKE_ESYS_0(Esys_PolicyNV_Finish);
  1453. MAKE_ESYS_7(Esys_PolicyCounterTimer,
  1454. ESYS_TR, policySession,
  1455. ESYS_TR, shandle1,
  1456. ESYS_TR, shandle2,
  1457. ESYS_TR, shandle3,
  1458. const TPM2B_OPERAND *, operandB,
  1459. UINT16, offset,
  1460. TPM2_EO, operation);
  1461. MAKE_ESYS_7(Esys_PolicyCounterTimer_Async,
  1462. ESYS_TR, policySession,
  1463. ESYS_TR, shandle1,
  1464. ESYS_TR, shandle2,
  1465. ESYS_TR, shandle3,
  1466. const TPM2B_OPERAND *, operandB,
  1467. UINT16, offset,
  1468. TPM2_EO, operation);
  1469. MAKE_ESYS_0(Esys_PolicyCounterTimer_Finish);
  1470. MAKE_ESYS_5(Esys_PolicyCommandCode,
  1471. ESYS_TR, policySession,
  1472. ESYS_TR, shandle1,
  1473. ESYS_TR, shandle2,
  1474. ESYS_TR, shandle3,
  1475. TPM2_CC, code);
  1476. MAKE_ESYS_5(Esys_PolicyCommandCode_Async,
  1477. ESYS_TR, policySession,
  1478. ESYS_TR, shandle1,
  1479. ESYS_TR, shandle2,
  1480. ESYS_TR, shandle3,
  1481. TPM2_CC, code);
  1482. MAKE_ESYS_0(Esys_PolicyCommandCode_Finish);
  1483. MAKE_ESYS_4(Esys_PolicyPhysicalPresence,
  1484. ESYS_TR, policySession,
  1485. ESYS_TR, shandle1,
  1486. ESYS_TR, shandle2,
  1487. ESYS_TR, shandle3);
  1488. MAKE_ESYS_4(Esys_PolicyPhysicalPresence_Async,
  1489. ESYS_TR, policySession,
  1490. ESYS_TR, shandle1,
  1491. ESYS_TR, shandle2,
  1492. ESYS_TR, shandle3);
  1493. MAKE_ESYS_0(Esys_PolicyPhysicalPresence_Finish);
  1494. MAKE_ESYS_5(Esys_PolicyCpHash,
  1495. ESYS_TR, policySession,
  1496. ESYS_TR, shandle1,
  1497. ESYS_TR, shandle2,
  1498. ESYS_TR, shandle3,
  1499. const TPM2B_DIGEST *, cpHashA);
  1500. MAKE_ESYS_5(Esys_PolicyCpHash_Async,
  1501. ESYS_TR, policySession,
  1502. ESYS_TR, shandle1,
  1503. ESYS_TR, shandle2,
  1504. ESYS_TR, shandle3,
  1505. const TPM2B_DIGEST *, cpHashA);
  1506. MAKE_ESYS_0(Esys_PolicyCpHash_Finish);
  1507. MAKE_ESYS_5(Esys_PolicyNameHash,
  1508. ESYS_TR, policySession,
  1509. ESYS_TR, shandle1,
  1510. ESYS_TR, shandle2,
  1511. ESYS_TR, shandle3,
  1512. const TPM2B_DIGEST *, nameHash);
  1513. MAKE_ESYS_5(Esys_PolicyNameHash_Async,
  1514. ESYS_TR, policySession,
  1515. ESYS_TR, shandle1,
  1516. ESYS_TR, shandle2,
  1517. ESYS_TR, shandle3,
  1518. const TPM2B_DIGEST *, nameHash);
  1519. MAKE_ESYS_0(Esys_PolicyNameHash_Finish);
  1520. MAKE_ESYS_7(Esys_PolicyDuplicationSelect,
  1521. ESYS_TR, policySession,
  1522. ESYS_TR, shandle1,
  1523. ESYS_TR, shandle2,
  1524. ESYS_TR, shandle3,
  1525. const TPM2B_NAME *, objectName,
  1526. const TPM2B_NAME *, newParentName,
  1527. TPMI_YES_NO, includeObject);
  1528. MAKE_ESYS_7(Esys_PolicyDuplicationSelect_Async,
  1529. ESYS_TR, policySession,
  1530. ESYS_TR, shandle1,
  1531. ESYS_TR, shandle2,
  1532. ESYS_TR, shandle3,
  1533. const TPM2B_NAME *, objectName,
  1534. const TPM2B_NAME *, newParentName,
  1535. TPMI_YES_NO, includeObject);
  1536. MAKE_ESYS_0(Esys_PolicyDuplicationSelect_Finish);
  1537. MAKE_ESYS_8(Esys_PolicyAuthorize,
  1538. ESYS_TR, policySession,
  1539. ESYS_TR, shandle1,
  1540. ESYS_TR, shandle2,
  1541. ESYS_TR, shandle3,
  1542. const TPM2B_DIGEST *, approvedPolicy,
  1543. const TPM2B_NONCE *, policyRef,
  1544. const TPM2B_NAME *, keySign,
  1545. const TPMT_TK_VERIFIED *, checkTicket);
  1546. MAKE_ESYS_8(Esys_PolicyAuthorize_Async,
  1547. ESYS_TR, policySession,
  1548. ESYS_TR, shandle1,
  1549. ESYS_TR, shandle2,
  1550. ESYS_TR, shandle3,
  1551. const TPM2B_DIGEST *, approvedPolicy,
  1552. const TPM2B_NONCE *, policyRef,
  1553. const TPM2B_NAME *, keySign,
  1554. const TPMT_TK_VERIFIED *, checkTicket);
  1555. MAKE_ESYS_0(Esys_PolicyAuthorize_Finish);
  1556. MAKE_ESYS_4(Esys_PolicyAuthValue,
  1557. ESYS_TR, policySession,
  1558. ESYS_TR, shandle1,
  1559. ESYS_TR, shandle2,
  1560. ESYS_TR, shandle3);
  1561. MAKE_ESYS_4(Esys_PolicyAuthValue_Async,
  1562. ESYS_TR, policySession,
  1563. ESYS_TR, shandle1,
  1564. ESYS_TR, shandle2,
  1565. ESYS_TR, shandle3);
  1566. MAKE_ESYS_0(Esys_PolicyAuthValue_Finish);
  1567. MAKE_ESYS_4(Esys_PolicyPassword,
  1568. ESYS_TR, policySession,
  1569. ESYS_TR, shandle1,
  1570. ESYS_TR, shandle2,
  1571. ESYS_TR, shandle3);
  1572. MAKE_ESYS_4(Esys_PolicyPassword_Async,
  1573. ESYS_TR, policySession,
  1574. ESYS_TR, shandle1,
  1575. ESYS_TR, shandle2,
  1576. ESYS_TR, shandle3);
  1577. MAKE_ESYS_0(Esys_PolicyPassword_Finish);
  1578. MAKE_ESYS_5(Esys_PolicyGetDigest,
  1579. ESYS_TR, policySession,
  1580. ESYS_TR, shandle1,
  1581. ESYS_TR, shandle2,
  1582. ESYS_TR, shandle3,
  1583. TPM2B_DIGEST **, policyDigest);
  1584. MAKE_ESYS_4(Esys_PolicyGetDigest_Async,
  1585. ESYS_TR, policySession,
  1586. ESYS_TR, shandle1,
  1587. ESYS_TR, shandle2,
  1588. ESYS_TR, shandle3);
  1589. MAKE_ESYS_1(Esys_PolicyGetDigest_Finish,
  1590. TPM2B_DIGEST **, policyDigest);
  1591. MAKE_ESYS_5(Esys_PolicyNvWritten,
  1592. ESYS_TR, policySession,
  1593. ESYS_TR, shandle1,
  1594. ESYS_TR, shandle2,
  1595. ESYS_TR, shandle3,
  1596. TPMI_YES_NO, writtenSet);
  1597. MAKE_ESYS_5(Esys_PolicyNvWritten_Async,
  1598. ESYS_TR, policySession,
  1599. ESYS_TR, shandle1,
  1600. ESYS_TR, shandle2,
  1601. ESYS_TR, shandle3,
  1602. TPMI_YES_NO, writtenSet);
  1603. MAKE_ESYS_0(Esys_PolicyNvWritten_Finish);
  1604. MAKE_ESYS_5(Esys_PolicyTemplate,
  1605. ESYS_TR, policySession,
  1606. ESYS_TR, shandle1,
  1607. ESYS_TR, shandle2,
  1608. ESYS_TR, shandle3,
  1609. const TPM2B_DIGEST *, templateHash);
  1610. MAKE_ESYS_5(Esys_PolicyTemplate_Async,
  1611. ESYS_TR, policySession,
  1612. ESYS_TR, shandle1,
  1613. ESYS_TR, shandle2,
  1614. ESYS_TR, shandle3,
  1615. const TPM2B_DIGEST *, templateHash);
  1616. MAKE_ESYS_0(Esys_PolicyTemplate_Finish);
  1617. MAKE_ESYS_6(Esys_PolicyAuthorizeNV,
  1618. ESYS_TR, authHandle,
  1619. ESYS_TR, nvIndex,
  1620. ESYS_TR, policySession,
  1621. ESYS_TR, shandle1,
  1622. ESYS_TR, shandle2,
  1623. ESYS_TR, shandle3);
  1624. MAKE_ESYS_6(Esys_PolicyAuthorizeNV_Async,
  1625. ESYS_TR, authHandle,
  1626. ESYS_TR, nvIndex,
  1627. ESYS_TR, policySession,
  1628. ESYS_TR, shandle1,
  1629. ESYS_TR, shandle2,
  1630. ESYS_TR, shandle3);
  1631. MAKE_ESYS_0(Esys_PolicyAuthorizeNV_Finish);
  1632. MAKE_ESYS_13(Esys_CreatePrimary,
  1633. ESYS_TR, primaryHandle,
  1634. ESYS_TR, shandle1,
  1635. ESYS_TR, shandle2,
  1636. ESYS_TR, shandle3,
  1637. const TPM2B_SENSITIVE_CREATE *, inSensitive,
  1638. const TPM2B_PUBLIC *, inPublic,
  1639. const TPM2B_DATA *, outsideInfo,
  1640. const TPML_PCR_SELECTION *, creationPCR,
  1641. ESYS_TR *, objectHandle,
  1642. TPM2B_PUBLIC **, outPublic,
  1643. TPM2B_CREATION_DATA **, creationData,
  1644. TPM2B_DIGEST **, creationHash,
  1645. TPMT_TK_CREATION **, creationTicket);
  1646. MAKE_ESYS_8(Esys_CreatePrimary_Async,
  1647. ESYS_TR, primaryHandle,
  1648. ESYS_TR, shandle1,
  1649. ESYS_TR, shandle2,
  1650. ESYS_TR, shandle3,
  1651. const TPM2B_SENSITIVE_CREATE *, inSensitive,
  1652. const TPM2B_PUBLIC *, inPublic,
  1653. const TPM2B_DATA *, outsideInfo,
  1654. const TPML_PCR_SELECTION *, creationPCR);
  1655. MAKE_ESYS_5(Esys_CreatePrimary_Finish,
  1656. ESYS_TR *, objectHandle,
  1657. TPM2B_PUBLIC **, outPublic,
  1658. TPM2B_CREATION_DATA **, creationData,
  1659. TPM2B_DIGEST **, creationHash,
  1660. TPMT_TK_CREATION **, creationTicket);
  1661. MAKE_ESYS_6(Esys_HierarchyControl,
  1662. ESYS_TR, authHandle,
  1663. ESYS_TR, shandle1,
  1664. ESYS_TR, shandle2,
  1665. ESYS_TR, shandle3,
  1666. ESYS_TR, enable,
  1667. TPMI_YES_NO, state);
  1668. MAKE_ESYS_6(Esys_HierarchyControl_Async,
  1669. ESYS_TR, authHandle,
  1670. ESYS_TR, shandle1,
  1671. ESYS_TR, shandle2,
  1672. ESYS_TR, shandle3,
  1673. ESYS_TR, enable,
  1674. TPMI_YES_NO, state);
  1675. MAKE_ESYS_0(Esys_HierarchyControl_Finish);
  1676. MAKE_ESYS_6(Esys_SetPrimaryPolicy,
  1677. ESYS_TR, authHandle,
  1678. ESYS_TR, shandle1,
  1679. ESYS_TR, shandle2,
  1680. ESYS_TR, shandle3,
  1681. const TPM2B_DIGEST *, authPolicy,
  1682. TPMI_ALG_HASH, hashAlg);
  1683. MAKE_ESYS_6(Esys_SetPrimaryPolicy_Async,
  1684. ESYS_TR, authHandle,
  1685. ESYS_TR, shandle1,
  1686. ESYS_TR, shandle2,
  1687. ESYS_TR, shandle3,
  1688. const TPM2B_DIGEST *, authPolicy,
  1689. TPMI_ALG_HASH, hashAlg);
  1690. MAKE_ESYS_0(Esys_SetPrimaryPolicy_Finish);
  1691. MAKE_ESYS_4(Esys_ChangePPS,
  1692. ESYS_TR, authHandle,
  1693. ESYS_TR, shandle1,
  1694. ESYS_TR, shandle2,
  1695. ESYS_TR, shandle3);
  1696. MAKE_ESYS_4(Esys_ChangePPS_Async,
  1697. ESYS_TR, authHandle,
  1698. ESYS_TR, shandle1,
  1699. ESYS_TR, shandle2,
  1700. ESYS_TR, shandle3);
  1701. MAKE_ESYS_0(Esys_ChangePPS_Finish);
  1702. MAKE_ESYS_4(Esys_ChangeEPS,
  1703. ESYS_TR, authHandle,
  1704. ESYS_TR, shandle1,
  1705. ESYS_TR, shandle2,
  1706. ESYS_TR, shandle3);
  1707. MAKE_ESYS_4(Esys_ChangeEPS_Async,
  1708. ESYS_TR, authHandle,
  1709. ESYS_TR, shandle1,
  1710. ESYS_TR, shandle2,
  1711. ESYS_TR, shandle3);
  1712. MAKE_ESYS_0(Esys_ChangeEPS_Finish);
  1713. MAKE_ESYS_4(Esys_Clear,
  1714. ESYS_TR, authHandle,
  1715. ESYS_TR, shandle1,
  1716. ESYS_TR, shandle2,
  1717. ESYS_TR, shandle3);
  1718. MAKE_ESYS_4(Esys_Clear_Async,
  1719. ESYS_TR, authHandle,
  1720. ESYS_TR, shandle1,
  1721. ESYS_TR, shandle2,
  1722. ESYS_TR, shandle3);
  1723. MAKE_ESYS_0(Esys_Clear_Finish);
  1724. MAKE_ESYS_5(Esys_ClearControl,
  1725. ESYS_TR, auth,
  1726. ESYS_TR, shandle1,
  1727. ESYS_TR, shandle2,
  1728. ESYS_TR, shandle3,
  1729. TPMI_YES_NO, disable);
  1730. MAKE_ESYS_5(Esys_ClearControl_Async,
  1731. ESYS_TR, auth,
  1732. ESYS_TR, shandle1,
  1733. ESYS_TR, shandle2,
  1734. ESYS_TR, shandle3,
  1735. TPMI_YES_NO, disable);
  1736. MAKE_ESYS_0(Esys_ClearControl_Finish);
  1737. MAKE_ESYS_5(Esys_HierarchyChangeAuth,
  1738. ESYS_TR, authHandle,
  1739. ESYS_TR, shandle1,
  1740. ESYS_TR, shandle2,
  1741. ESYS_TR, shandle3,
  1742. const TPM2B_AUTH *, newAuth);
  1743. MAKE_ESYS_5(Esys_HierarchyChangeAuth_Async,
  1744. ESYS_TR, authHandle,
  1745. ESYS_TR, shandle1,
  1746. ESYS_TR, shandle2,
  1747. ESYS_TR, shandle3,
  1748. const TPM2B_AUTH *, newAuth);
  1749. MAKE_ESYS_0(Esys_HierarchyChangeAuth_Finish);
  1750. MAKE_ESYS_4(Esys_DictionaryAttackLockReset,
  1751. ESYS_TR, lockHandle,
  1752. ESYS_TR, shandle1,
  1753. ESYS_TR, shandle2,
  1754. ESYS_TR, shandle3);
  1755. MAKE_ESYS_4(Esys_DictionaryAttackLockReset_Async,
  1756. ESYS_TR, lockHandle,
  1757. ESYS_TR, shandle1,
  1758. ESYS_TR, shandle2,
  1759. ESYS_TR, shandle3);
  1760. MAKE_ESYS_0(Esys_DictionaryAttackLockReset_Finish);
  1761. MAKE_ESYS_7(Esys_DictionaryAttackParameters,
  1762. ESYS_TR, lockHandle,
  1763. ESYS_TR, shandle1,
  1764. ESYS_TR, shandle2,
  1765. ESYS_TR, shandle3,
  1766. UINT32, newMaxTries,
  1767. UINT32, newRecoveryTime,
  1768. UINT32, lockoutRecovery);
  1769. MAKE_ESYS_7(Esys_DictionaryAttackParameters_Async,
  1770. ESYS_TR, lockHandle,
  1771. ESYS_TR, shandle1,
  1772. ESYS_TR, shandle2,
  1773. ESYS_TR, shandle3,
  1774. UINT32, newMaxTries,
  1775. UINT32, newRecoveryTime,
  1776. UINT32, lockoutRecovery);
  1777. MAKE_ESYS_0(Esys_DictionaryAttackParameters_Finish);
  1778. MAKE_ESYS_6(Esys_PP_Commands,
  1779. ESYS_TR, auth,
  1780. ESYS_TR, shandle1,
  1781. ESYS_TR, shandle2,
  1782. ESYS_TR, shandle3,
  1783. const TPML_CC *, setList,
  1784. const TPML_CC *, clearList);
  1785. MAKE_ESYS_6(Esys_PP_Commands_Async,
  1786. ESYS_TR, auth,
  1787. ESYS_TR, shandle1,
  1788. ESYS_TR, shandle2,
  1789. ESYS_TR, shandle3,
  1790. const TPML_CC *, setList,
  1791. const TPML_CC *, clearList);
  1792. MAKE_ESYS_0(Esys_PP_Commands_Finish);
  1793. MAKE_ESYS_5(Esys_SetAlgorithmSet,
  1794. ESYS_TR, authHandle,
  1795. ESYS_TR, shandle1,
  1796. ESYS_TR, shandle2,
  1797. ESYS_TR, shandle3,
  1798. UINT32, algorithmSet);
  1799. MAKE_ESYS_5(Esys_SetAlgorithmSet_Async,
  1800. ESYS_TR, authHandle,
  1801. ESYS_TR, shandle1,
  1802. ESYS_TR, shandle2,
  1803. ESYS_TR, shandle3,
  1804. UINT32, algorithmSet);
  1805. MAKE_ESYS_0(Esys_SetAlgorithmSet_Finish);
  1806. MAKE_ESYS_7(Esys_FieldUpgradeStart,
  1807. ESYS_TR, authorization,
  1808. ESYS_TR, keyHandle,
  1809. ESYS_TR, shandle1,
  1810. ESYS_TR, shandle2,
  1811. ESYS_TR, shandle3,
  1812. const TPM2B_DIGEST *, fuDigest,
  1813. const TPMT_SIGNATURE *, manifestSignature);
  1814. MAKE_ESYS_7(Esys_FieldUpgradeStart_Async,
  1815. ESYS_TR, authorization,
  1816. ESYS_TR, keyHandle,
  1817. ESYS_TR, shandle1,
  1818. ESYS_TR, shandle2,
  1819. ESYS_TR, shandle3,
  1820. const TPM2B_DIGEST *, fuDigest,
  1821. const TPMT_SIGNATURE *, manifestSignature);
  1822. MAKE_ESYS_0(Esys_FieldUpgradeStart_Finish);
  1823. MAKE_ESYS_6(Esys_FieldUpgradeData,
  1824. ESYS_TR, shandle1,
  1825. ESYS_TR, shandle2,
  1826. ESYS_TR, shandle3,
  1827. const TPM2B_MAX_BUFFER *, fuData,
  1828. TPMT_HA **, nextDigest,
  1829. TPMT_HA **, firstDigest);
  1830. MAKE_ESYS_4(Esys_FieldUpgradeData_Async,
  1831. ESYS_TR, shandle1,
  1832. ESYS_TR, shandle2,
  1833. ESYS_TR, shandle3,
  1834. const TPM2B_MAX_BUFFER *, fuData);
  1835. MAKE_ESYS_2(Esys_FieldUpgradeData_Finish,
  1836. TPMT_HA **, nextDigest,
  1837. TPMT_HA **, firstDigest);
  1838. MAKE_ESYS_5(Esys_FirmwareRead,
  1839. ESYS_TR, shandle1,
  1840. ESYS_TR, shandle2,
  1841. ESYS_TR, shandle3,
  1842. UINT32, sequenceNumber,
  1843. TPM2B_MAX_BUFFER **, fuData);
  1844. MAKE_ESYS_4(Esys_FirmwareRead_Async,
  1845. ESYS_TR, shandle1,
  1846. ESYS_TR, shandle2,
  1847. ESYS_TR, shandle3,
  1848. UINT32, sequenceNumber);
  1849. MAKE_ESYS_1(Esys_FirmwareRead_Finish,
  1850. TPM2B_MAX_BUFFER **, fuData);
  1851. MAKE_ESYS_2(Esys_ContextSave,
  1852. ESYS_TR, saveHandle,
  1853. TPMS_CONTEXT **, context);
  1854. MAKE_ESYS_1(Esys_ContextSave_Async,
  1855. ESYS_TR, saveHandle);
  1856. MAKE_ESYS_1(Esys_ContextSave_Finish,
  1857. TPMS_CONTEXT **, context);
  1858. MAKE_ESYS_2(Esys_ContextLoad,
  1859. const TPMS_CONTEXT *, context,
  1860. ESYS_TR *, loadedHandle);
  1861. MAKE_ESYS_1(Esys_ContextLoad_Async,
  1862. const TPMS_CONTEXT *, context);
  1863. MAKE_ESYS_1(Esys_ContextLoad_Finish,
  1864. ESYS_TR *, loadedHandle);
  1865. MAKE_ESYS_1(Esys_FlushContext,
  1866. ESYS_TR, flushHandle);
  1867. MAKE_ESYS_1(Esys_FlushContext_Async,
  1868. ESYS_TR, flushHandle);
  1869. MAKE_ESYS_0(Esys_FlushContext_Finish);
  1870. MAKE_ESYS_7(Esys_EvictControl,
  1871. ESYS_TR, auth,
  1872. ESYS_TR, objectHandle,
  1873. ESYS_TR, shandle1,
  1874. ESYS_TR, shandle2,
  1875. ESYS_TR, shandle3,
  1876. TPMI_DH_PERSISTENT, persistentHandle,
  1877. ESYS_TR *, newObjectHandle);
  1878. MAKE_ESYS_6(Esys_EvictControl_Async,
  1879. ESYS_TR, auth,
  1880. ESYS_TR, objectHandle,
  1881. ESYS_TR, shandle1,
  1882. ESYS_TR, shandle2,
  1883. ESYS_TR, shandle3,
  1884. TPMI_DH_PERSISTENT, persistentHandle);
  1885. MAKE_ESYS_1(Esys_EvictControl_Finish,
  1886. ESYS_TR *, newObjectHandle);
  1887. MAKE_ESYS_4(Esys_ReadClock,
  1888. ESYS_TR, shandle1,
  1889. ESYS_TR, shandle2,
  1890. ESYS_TR, shandle3,
  1891. TPMS_TIME_INFO **, currentTime);
  1892. MAKE_ESYS_3(Esys_ReadClock_Async,
  1893. ESYS_TR, shandle1,
  1894. ESYS_TR, shandle2,
  1895. ESYS_TR, shandle3);
  1896. MAKE_ESYS_1(Esys_ReadClock_Finish,
  1897. TPMS_TIME_INFO **, currentTime);
  1898. MAKE_ESYS_5(Esys_ClockSet,
  1899. ESYS_TR, auth,
  1900. ESYS_TR, shandle1,
  1901. ESYS_TR, shandle2,
  1902. ESYS_TR, shandle3,
  1903. UINT64, newTime);
  1904. MAKE_ESYS_5(Esys_ClockSet_Async,
  1905. ESYS_TR, auth,
  1906. ESYS_TR, shandle1,
  1907. ESYS_TR, shandle2,
  1908. ESYS_TR, shandle3,
  1909. UINT64, newTime);
  1910. MAKE_ESYS_0(Esys_ClockSet_Finish);
  1911. MAKE_ESYS_5(Esys_ClockRateAdjust,
  1912. ESYS_TR, auth,
  1913. ESYS_TR, shandle1,
  1914. ESYS_TR, shandle2,
  1915. ESYS_TR, shandle3,
  1916. TPM2_CLOCK_ADJUST, rateAdjust);
  1917. MAKE_ESYS_5(Esys_ClockRateAdjust_Async,
  1918. ESYS_TR, auth,
  1919. ESYS_TR, shandle1,
  1920. ESYS_TR, shandle2,
  1921. ESYS_TR, shandle3,
  1922. TPM2_CLOCK_ADJUST, rateAdjust);
  1923. MAKE_ESYS_0(Esys_ClockRateAdjust_Finish);
  1924. MAKE_ESYS_8(Esys_GetCapability,
  1925. ESYS_TR, shandle1,
  1926. ESYS_TR, shandle2,
  1927. ESYS_TR, shandle3,
  1928. TPM2_CAP, capability,
  1929. UINT32, property,
  1930. UINT32, propertyCount,
  1931. TPMI_YES_NO *, moreData,
  1932. TPMS_CAPABILITY_DATA **, capabilityData);
  1933. MAKE_ESYS_6(Esys_GetCapability_Async,
  1934. ESYS_TR, shandle1,
  1935. ESYS_TR, shandle2,
  1936. ESYS_TR, shandle3,
  1937. TPM2_CAP, capability,
  1938. UINT32, property,
  1939. UINT32, propertyCount);
  1940. MAKE_ESYS_2(Esys_GetCapability_Finish,
  1941. TPMI_YES_NO *, moreData,
  1942. TPMS_CAPABILITY_DATA **, capabilityData);
  1943. MAKE_ESYS_4(Esys_TestParms,
  1944. ESYS_TR, shandle1,
  1945. ESYS_TR, shandle2,
  1946. ESYS_TR, shandle3,
  1947. const TPMT_PUBLIC_PARMS *, parameters);
  1948. MAKE_ESYS_4(Esys_TestParms_Async,
  1949. ESYS_TR, shandle1,
  1950. ESYS_TR, shandle2,
  1951. ESYS_TR, shandle3,
  1952. const TPMT_PUBLIC_PARMS *, parameters);
  1953. MAKE_ESYS_0(Esys_TestParms_Finish);
  1954. MAKE_ESYS_7(Esys_NV_DefineSpace,
  1955. ESYS_TR, authHandle,
  1956. ESYS_TR, shandle1,
  1957. ESYS_TR, shandle2,
  1958. ESYS_TR, shandle3,
  1959. const TPM2B_AUTH *, auth,
  1960. const TPM2B_NV_PUBLIC *, publicInfo,
  1961. ESYS_TR *, nvHandle);
  1962. MAKE_ESYS_6(Esys_NV_DefineSpace_Async,
  1963. ESYS_TR, authHandle,
  1964. ESYS_TR, shandle1,
  1965. ESYS_TR, shandle2,
  1966. ESYS_TR, shandle3,
  1967. const TPM2B_AUTH *, auth,
  1968. const TPM2B_NV_PUBLIC *, publicInfo);
  1969. MAKE_ESYS_1(Esys_NV_DefineSpace_Finish,
  1970. ESYS_TR *, nvHandle);
  1971. MAKE_ESYS_5(Esys_NV_UndefineSpace,
  1972. ESYS_TR, authHandle,
  1973. ESYS_TR, nvIndex,
  1974. ESYS_TR, shandle1,
  1975. ESYS_TR, shandle2,
  1976. ESYS_TR, shandle3);
  1977. MAKE_ESYS_5(Esys_NV_UndefineSpace_Async,
  1978. ESYS_TR, authHandle,
  1979. ESYS_TR, nvIndex,
  1980. ESYS_TR, shandle1,
  1981. ESYS_TR, shandle2,
  1982. ESYS_TR, shandle3);
  1983. MAKE_ESYS_0(Esys_NV_UndefineSpace_Finish);
  1984. MAKE_ESYS_5(Esys_NV_UndefineSpaceSpecial,
  1985. ESYS_TR, nvIndex,
  1986. ESYS_TR, platform,
  1987. ESYS_TR, shandle1,
  1988. ESYS_TR, shandle2,
  1989. ESYS_TR, shandle3);
  1990. MAKE_ESYS_5(Esys_NV_UndefineSpaceSpecial_Async,
  1991. ESYS_TR, nvIndex,
  1992. ESYS_TR, platform,
  1993. ESYS_TR, shandle1,
  1994. ESYS_TR, shandle2,
  1995. ESYS_TR, shandle3);
  1996. MAKE_ESYS_0(Esys_NV_UndefineSpaceSpecial_Finish);
  1997. MAKE_ESYS_6(Esys_NV_ReadPublic,
  1998. ESYS_TR, nvIndex,
  1999. ESYS_TR, shandle1,
  2000. ESYS_TR, shandle2,
  2001. ESYS_TR, shandle3,
  2002. TPM2B_NV_PUBLIC **, nvPublic,
  2003. TPM2B_NAME **, nvName);
  2004. MAKE_ESYS_4(Esys_NV_ReadPublic_Async,
  2005. ESYS_TR, nvIndex,
  2006. ESYS_TR, shandle1,
  2007. ESYS_TR, shandle2,
  2008. ESYS_TR, shandle3);
  2009. MAKE_ESYS_2(Esys_NV_ReadPublic_Finish,
  2010. TPM2B_NV_PUBLIC **, nvPublic,
  2011. TPM2B_NAME **, nvName);
  2012. MAKE_ESYS_7(Esys_NV_Write,
  2013. ESYS_TR, authHandle,
  2014. ESYS_TR, nvIndex,
  2015. ESYS_TR, shandle1,
  2016. ESYS_TR, shandle2,
  2017. ESYS_TR, shandle3,
  2018. const TPM2B_MAX_NV_BUFFER *, data,
  2019. UINT16, offset);
  2020. MAKE_ESYS_7(Esys_NV_Write_Async,
  2021. ESYS_TR, authHandle,
  2022. ESYS_TR, nvIndex,
  2023. ESYS_TR, shandle1,
  2024. ESYS_TR, shandle2,
  2025. ESYS_TR, shandle3,
  2026. const TPM2B_MAX_NV_BUFFER *, data,
  2027. UINT16, offset);
  2028. MAKE_ESYS_0(Esys_NV_Write_Finish);
  2029. MAKE_ESYS_5(Esys_NV_Increment,
  2030. ESYS_TR, authHandle,
  2031. ESYS_TR, nvIndex,
  2032. ESYS_TR, shandle1,
  2033. ESYS_TR, shandle2,
  2034. ESYS_TR, shandle3);
  2035. MAKE_ESYS_5(Esys_NV_Increment_Async,
  2036. ESYS_TR, authHandle,
  2037. ESYS_TR, nvIndex,
  2038. ESYS_TR, shandle1,
  2039. ESYS_TR, shandle2,
  2040. ESYS_TR, shandle3);
  2041. MAKE_ESYS_0(Esys_NV_Increment_Finish);
  2042. MAKE_ESYS_6(Esys_NV_Extend,
  2043. ESYS_TR, authHandle,
  2044. ESYS_TR, nvIndex,
  2045. ESYS_TR, shandle1,
  2046. ESYS_TR, shandle2,
  2047. ESYS_TR, shandle3,
  2048. const TPM2B_MAX_NV_BUFFER *, data);
  2049. MAKE_ESYS_6(Esys_NV_Extend_Async,
  2050. ESYS_TR, authHandle,
  2051. ESYS_TR, nvIndex,
  2052. ESYS_TR, shandle1,
  2053. ESYS_TR, shandle2,
  2054. ESYS_TR, shandle3,
  2055. const TPM2B_MAX_NV_BUFFER *, data);
  2056. MAKE_ESYS_0(Esys_NV_Extend_Finish);
  2057. MAKE_ESYS_6(Esys_NV_SetBits,
  2058. ESYS_TR, authHandle,
  2059. ESYS_TR, nvIndex,
  2060. ESYS_TR, shandle1,
  2061. ESYS_TR, shandle2,
  2062. ESYS_TR, shandle3,
  2063. UINT64, bits);
  2064. MAKE_ESYS_6(Esys_NV_SetBits_Async,
  2065. ESYS_TR, authHandle,
  2066. ESYS_TR, nvIndex,
  2067. ESYS_TR, shandle1,
  2068. ESYS_TR, shandle2,
  2069. ESYS_TR, shandle3,
  2070. UINT64, bits);
  2071. MAKE_ESYS_0(Esys_NV_SetBits_Finish);
  2072. MAKE_ESYS_5(Esys_NV_WriteLock,
  2073. ESYS_TR, authHandle,
  2074. ESYS_TR, nvIndex,
  2075. ESYS_TR, shandle1,
  2076. ESYS_TR, shandle2,
  2077. ESYS_TR, shandle3);
  2078. MAKE_ESYS_5(Esys_NV_WriteLock_Async,
  2079. ESYS_TR, authHandle,
  2080. ESYS_TR, nvIndex,
  2081. ESYS_TR, shandle1,
  2082. ESYS_TR, shandle2,
  2083. ESYS_TR, shandle3);
  2084. MAKE_ESYS_0(Esys_NV_WriteLock_Finish);
  2085. MAKE_ESYS_4(Esys_NV_GlobalWriteLock,
  2086. ESYS_TR, authHandle,
  2087. ESYS_TR, shandle1,
  2088. ESYS_TR, shandle2,
  2089. ESYS_TR, shandle3);
  2090. MAKE_ESYS_4(Esys_NV_GlobalWriteLock_Async,
  2091. ESYS_TR, authHandle,
  2092. ESYS_TR, shandle1,
  2093. ESYS_TR, shandle2,
  2094. ESYS_TR, shandle3);
  2095. MAKE_ESYS_0(Esys_NV_GlobalWriteLock_Finish);
  2096. MAKE_ESYS_8(Esys_NV_Read,
  2097. ESYS_TR, authHandle,
  2098. ESYS_TR, nvIndex,
  2099. ESYS_TR, shandle1,
  2100. ESYS_TR, shandle2,
  2101. ESYS_TR, shandle3,
  2102. UINT16, size,
  2103. UINT16, offset,
  2104. TPM2B_MAX_NV_BUFFER **, data);
  2105. MAKE_ESYS_7(Esys_NV_Read_Async,
  2106. ESYS_TR, authHandle,
  2107. ESYS_TR, nvIndex,
  2108. ESYS_TR, shandle1,
  2109. ESYS_TR, shandle2,
  2110. ESYS_TR, shandle3,
  2111. UINT16, size,
  2112. UINT16, offset);
  2113. MAKE_ESYS_1(Esys_NV_Read_Finish,
  2114. TPM2B_MAX_NV_BUFFER **, data);
  2115. MAKE_ESYS_5(Esys_NV_ReadLock,
  2116. ESYS_TR, authHandle,
  2117. ESYS_TR, nvIndex,
  2118. ESYS_TR, shandle1,
  2119. ESYS_TR, shandle2,
  2120. ESYS_TR, shandle3);
  2121. MAKE_ESYS_5(Esys_NV_ReadLock_Async,
  2122. ESYS_TR, authHandle,
  2123. ESYS_TR, nvIndex,
  2124. ESYS_TR, shandle1,
  2125. ESYS_TR, shandle2,
  2126. ESYS_TR, shandle3);
  2127. MAKE_ESYS_0(Esys_NV_ReadLock_Finish);
  2128. MAKE_ESYS_5(Esys_NV_ChangeAuth,
  2129. ESYS_TR, nvIndex,
  2130. ESYS_TR, shandle1,
  2131. ESYS_TR, shandle2,
  2132. ESYS_TR, shandle3,
  2133. const TPM2B_AUTH *, newAuth);
  2134. MAKE_ESYS_5(Esys_NV_ChangeAuth_Async,
  2135. ESYS_TR, nvIndex,
  2136. ESYS_TR, shandle1,
  2137. ESYS_TR, shandle2,
  2138. ESYS_TR, shandle3,
  2139. const TPM2B_AUTH *, newAuth);
  2140. MAKE_ESYS_0(Esys_NV_ChangeAuth_Finish);
  2141. MAKE_ESYS_12(Esys_NV_Certify,
  2142. ESYS_TR, signHandle,
  2143. ESYS_TR, authHandle,
  2144. ESYS_TR, nvIndex,
  2145. ESYS_TR, shandle1,
  2146. ESYS_TR, shandle2,
  2147. ESYS_TR, shandle3,
  2148. const TPM2B_DATA *, qualifyingData,
  2149. const TPMT_SIG_SCHEME *, inScheme,
  2150. UINT16, size,
  2151. UINT16, offset,
  2152. TPM2B_ATTEST **, certifyInfo,
  2153. TPMT_SIGNATURE **, signature);
  2154. MAKE_ESYS_10(Esys_NV_Certify_Async,
  2155. ESYS_TR, signHandle,
  2156. ESYS_TR, authHandle,
  2157. ESYS_TR, nvIndex,
  2158. ESYS_TR, shandle1,
  2159. ESYS_TR, shandle2,
  2160. ESYS_TR, shandle3,
  2161. const TPM2B_DATA *, qualifyingData,
  2162. const TPMT_SIG_SCHEME *, inScheme,
  2163. UINT16, size,
  2164. UINT16, offset);
  2165. MAKE_ESYS_2(Esys_NV_Certify_Finish,
  2166. TPM2B_ATTEST **, certifyInfo,
  2167. TPMT_SIGNATURE **, signature);
  2168. MAKE_ESYS_5(Esys_Vendor_TCG_Test,
  2169. ESYS_TR, shandle1,
  2170. ESYS_TR, shandle2,
  2171. ESYS_TR, shandle3,
  2172. const TPM2B_DATA *, inputData,
  2173. TPM2B_DATA **, outputData);
  2174. MAKE_ESYS_4(Esys_Vendor_TCG_Test_Async,
  2175. ESYS_TR, shandle1,
  2176. ESYS_TR, shandle2,
  2177. ESYS_TR, shandle3,
  2178. const TPM2B_DATA *, inputData);
  2179. MAKE_ESYS_1(Esys_Vendor_TCG_Test_Finish,
  2180. TPM2B_DATA **, outputData);
  2181. MAKE_ESYS_1(Esys_GetSysContext,
  2182. TSS2_SYS_CONTEXT **, sys_context);