group__ifapi__keystore.html 55 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=9"/>
  6. <meta name="generator" content="Doxygen 1.8.13"/>
  7. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  8. <title>tpm2-tss: Key store module</title>
  9. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  10. <script type="text/javascript" src="jquery.js"></script>
  11. <script type="text/javascript" src="dynsections.js"></script>
  12. <link href="navtree.css" rel="stylesheet" type="text/css"/>
  13. <script type="text/javascript" src="resize.js"></script>
  14. <script type="text/javascript" src="navtreedata.js"></script>
  15. <script type="text/javascript" src="navtree.js"></script>
  16. <script type="text/javascript">
  17. $(document).ready(initResizable);
  18. </script>
  19. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  20. </head>
  21. <body>
  22. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  23. <div id="titlearea">
  24. <table cellspacing="0" cellpadding="0">
  25. <tbody>
  26. <tr style="height: 56px;">
  27. <td id="projectalign" style="padding-left: 0.5em;">
  28. <div id="projectname">tpm2-tss
  29. &#160;<span id="projectnumber">3.2.0</span>
  30. </div>
  31. <div id="projectbrief">TPM Software stack 2.0 TCG spec compliant implementation</div>
  32. </td>
  33. </tr>
  34. </tbody>
  35. </table>
  36. </div>
  37. <!-- end header part -->
  38. <!-- Generated by Doxygen 1.8.13 -->
  39. <script type="text/javascript" src="menudata.js"></script>
  40. <script type="text/javascript" src="menu.js"></script>
  41. <script type="text/javascript">
  42. $(function() {
  43. initMenu('',false,false,'search.php','Search');
  44. });
  45. </script>
  46. <div id="main-nav"></div>
  47. </div><!-- top -->
  48. <div id="side-nav" class="ui-resizable side-nav-resizable">
  49. <div id="nav-tree">
  50. <div id="nav-tree-contents">
  51. <div id="nav-sync" class="sync"></div>
  52. </div>
  53. </div>
  54. <div id="splitbar" style="-moz-user-select:none;"
  55. class="ui-resizable-handle">
  56. </div>
  57. </div>
  58. <script type="text/javascript">
  59. $(document).ready(function(){initNavTree('group__ifapi__keystore.html','');});
  60. </script>
  61. <div id="doc-content">
  62. <div class="header">
  63. <div class="summary">
  64. <a href="#func-members">Functions</a> </div>
  65. <div class="headertitle">
  66. <div class="title">Key store module<div class="ingroups"><a class="el" href="group__fapi.html">Feature API</a> &raquo; <a class="el" href="group__ifapi.html">Internals of Feature API</a></div></div> </div>
  67. </div><!--header-->
  68. <div class="contents">
  69. <table class="memberdecls">
  70. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
  71. Functions</h2></td></tr>
  72. <tr class="memitem:gafabb0a59d18b036c7d3cc083aee10dfb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ifapi__keystore.html#gafabb0a59d18b036c7d3cc083aee10dfb">ifapi_cleanup_ifapi_duplicate</a> (<a class="el" href="struct_i_f_a_p_i___d_u_p_l_i_c_a_t_e.html">IFAPI_DUPLICATE</a> *duplicate)</td></tr>
  73. <tr class="separator:gafabb0a59d18b036c7d3cc083aee10dfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
  74. <tr class="memitem:gaaa33b0570f924b7418fddc46bc8c0ed6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ifapi__keystore.html#gaaa33b0570f924b7418fddc46bc8c0ed6">ifapi_cleanup_ifapi_ext_pub_key</a> (<a class="el" href="struct_i_f_a_p_i___e_x_t___p_u_b___k_e_y.html">IFAPI_EXT_PUB_KEY</a> *key)</td></tr>
  75. <tr class="separator:gaaa33b0570f924b7418fddc46bc8c0ed6"><td class="memSeparator" colspan="2">&#160;</td></tr>
  76. <tr class="memitem:gaa87362683c0d4c3849bbbaa7f20ce1f7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ifapi__keystore.html#gaa87362683c0d4c3849bbbaa7f20ce1f7">ifapi_cleanup_ifapi_hierarchy</a> (<a class="el" href="struct_i_f_a_p_i___h_i_e_r_a_r_c_h_y.html">IFAPI_HIERARCHY</a> *hierarchy)</td></tr>
  77. <tr class="separator:gaa87362683c0d4c3849bbbaa7f20ce1f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
  78. <tr class="memitem:gafdde064639939831b2ffc5ce65b47fff"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ifapi__keystore.html#gafdde064639939831b2ffc5ce65b47fff">ifapi_cleanup_ifapi_key</a> (<a class="el" href="struct_i_f_a_p_i___k_e_y.html">IFAPI_KEY</a> *key)</td></tr>
  79. <tr class="separator:gafdde064639939831b2ffc5ce65b47fff"><td class="memSeparator" colspan="2">&#160;</td></tr>
  80. <tr class="memitem:gaead62f5bcafdb03059407489c811f11e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ifapi__keystore.html#gaead62f5bcafdb03059407489c811f11e">ifapi_cleanup_ifapi_keystore</a> (<a class="el" href="struct_i_f_a_p_i___k_e_y_s_t_o_r_e.html">IFAPI_KEYSTORE</a> *keystore)</td></tr>
  81. <tr class="separator:gaead62f5bcafdb03059407489c811f11e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  82. <tr class="memitem:gaff395a5d7935eb45f919b2dc69cd4349"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ifapi__keystore.html#gaff395a5d7935eb45f919b2dc69cd4349">ifapi_cleanup_ifapi_nv</a> (<a class="el" href="struct_i_f_a_p_i___n_v.html">IFAPI_NV</a> *nv)</td></tr>
  83. <tr class="separator:gaff395a5d7935eb45f919b2dc69cd4349"><td class="memSeparator" colspan="2">&#160;</td></tr>
  84. <tr class="memitem:gac6b0773d734df895630a880c98163bb0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ifapi__keystore.html#gac6b0773d734df895630a880c98163bb0">ifapi_cleanup_ifapi_object</a> (<a class="el" href="struct___i_f_a_p_i___o_b_j_e_c_t.html">IFAPI_OBJECT</a> *object)</td></tr>
  85. <tr class="separator:gac6b0773d734df895630a880c98163bb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  86. <tr class="memitem:ga55482c9b1bb6ee0b50426ecd7a7c8f61"><td class="memItemLeft" align="right" valign="top">TSS2_RC&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ifapi__keystore.html#ga55482c9b1bb6ee0b50426ecd7a7c8f61">ifapi_copy_ifapi_key</a> (<a class="el" href="struct_i_f_a_p_i___k_e_y.html">IFAPI_KEY</a> *dest, const <a class="el" href="struct_i_f_a_p_i___k_e_y.html">IFAPI_KEY</a> *src)</td></tr>
  87. <tr class="separator:ga55482c9b1bb6ee0b50426ecd7a7c8f61"><td class="memSeparator" colspan="2">&#160;</td></tr>
  88. <tr class="memitem:ga0dfb30704ead405b7786cdd15fe365a3"><td class="memItemLeft" align="right" valign="top">TSS2_RC&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ifapi__keystore.html#ga0dfb30704ead405b7786cdd15fe365a3">ifapi_copy_ifapi_key_object</a> (<a class="el" href="struct___i_f_a_p_i___o_b_j_e_c_t.html">IFAPI_OBJECT</a> *dest, const <a class="el" href="struct___i_f_a_p_i___o_b_j_e_c_t.html">IFAPI_OBJECT</a> *src)</td></tr>
  89. <tr class="separator:ga0dfb30704ead405b7786cdd15fe365a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  90. <tr class="memitem:ga6bb0e3d58d2c8644dfddb509bde5d09b"><td class="memItemLeft" align="right" valign="top">TSS2_RC&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ifapi__keystore.html#ga6bb0e3d58d2c8644dfddb509bde5d09b">ifapi_keystore_delete</a> (<a class="el" href="struct_i_f_a_p_i___k_e_y_s_t_o_r_e.html">IFAPI_KEYSTORE</a> *keystore, char *path)</td></tr>
  91. <tr class="separator:ga6bb0e3d58d2c8644dfddb509bde5d09b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  92. <tr class="memitem:ga7fe64f630dfab96d28d1206b36937003"><td class="memItemLeft" align="right" valign="top">TSS2_RC&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ifapi__keystore.html#ga7fe64f630dfab96d28d1206b36937003">ifapi_keystore_initialize</a> (<a class="el" href="struct_i_f_a_p_i___k_e_y_s_t_o_r_e.html">IFAPI_KEYSTORE</a> *keystore, const char *config_systemdir, const char *config_userdir, const char *config_defaultprofile)</td></tr>
  93. <tr class="separator:ga7fe64f630dfab96d28d1206b36937003"><td class="memSeparator" colspan="2">&#160;</td></tr>
  94. <tr class="memitem:ga7fe0097564cb4663a92f39e1620fc293"><td class="memItemLeft" align="right" valign="top">TSS2_RC&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ifapi__keystore.html#ga7fe0097564cb4663a92f39e1620fc293">ifapi_keystore_list_all</a> (<a class="el" href="struct_i_f_a_p_i___k_e_y_s_t_o_r_e.html">IFAPI_KEYSTORE</a> *keystore, const char *searchpath, char ***results, size_t *numresults)</td></tr>
  95. <tr class="separator:ga7fe0097564cb4663a92f39e1620fc293"><td class="memSeparator" colspan="2">&#160;</td></tr>
  96. <tr class="memitem:ga6af418f78dd03c860a428b14e0530213"><td class="memItemLeft" align="right" valign="top">TSS2_RC&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ifapi__keystore.html#ga6af418f78dd03c860a428b14e0530213">ifapi_keystore_load_async</a> (<a class="el" href="struct_i_f_a_p_i___k_e_y_s_t_o_r_e.html">IFAPI_KEYSTORE</a> *keystore, <a class="el" href="struct_i_f_a_p_i___i_o.html">IFAPI_IO</a> *io, const char *path)</td></tr>
  97. <tr class="separator:ga6af418f78dd03c860a428b14e0530213"><td class="memSeparator" colspan="2">&#160;</td></tr>
  98. <tr class="memitem:ga33837c1356e218bd96fd5ac58a8193b2"><td class="memItemLeft" align="right" valign="top"><a id="ga33837c1356e218bd96fd5ac58a8193b2"></a>
  99. TSS2_RC&#160;</td><td class="memItemRight" valign="bottom"><b>ifapi_keystore_load_finish</b> (<a class="el" href="struct_i_f_a_p_i___k_e_y_s_t_o_r_e.html">IFAPI_KEYSTORE</a> *keystore, <a class="el" href="struct_i_f_a_p_i___i_o.html">IFAPI_IO</a> *io, <a class="el" href="struct___i_f_a_p_i___o_b_j_e_c_t.html">IFAPI_OBJECT</a> *object)</td></tr>
  100. <tr class="separator:ga33837c1356e218bd96fd5ac58a8193b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  101. <tr class="memitem:ga6c893408be4f545cf9c056284e3eab28"><td class="memItemLeft" align="right" valign="top">TSS2_RC&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ifapi__keystore.html#ga6c893408be4f545cf9c056284e3eab28">ifapi_keystore_remove_directories</a> (<a class="el" href="struct_i_f_a_p_i___k_e_y_s_t_o_r_e.html">IFAPI_KEYSTORE</a> *keystore, const char *dir_name)</td></tr>
  102. <tr class="separator:ga6c893408be4f545cf9c056284e3eab28"><td class="memSeparator" colspan="2">&#160;</td></tr>
  103. <tr class="memitem:ga6ecdfa3a0394f1e2ef0c9bf81039ed81"><td class="memItemLeft" align="right" valign="top">TSS2_RC&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ifapi__keystore.html#ga6ecdfa3a0394f1e2ef0c9bf81039ed81">ifapi_keystore_search_nv_obj</a> (<a class="el" href="struct_i_f_a_p_i___k_e_y_s_t_o_r_e.html">IFAPI_KEYSTORE</a> *keystore, <a class="el" href="struct_i_f_a_p_i___i_o.html">IFAPI_IO</a> *io, TPM2B_NV_PUBLIC *nv_public, char **found_path)</td></tr>
  104. <tr class="separator:ga6ecdfa3a0394f1e2ef0c9bf81039ed81"><td class="memSeparator" colspan="2">&#160;</td></tr>
  105. <tr class="memitem:ga26224646067aa6f2e349a43345744fd5"><td class="memItemLeft" align="right" valign="top">TSS2_RC&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ifapi__keystore.html#ga26224646067aa6f2e349a43345744fd5">ifapi_keystore_search_obj</a> (<a class="el" href="struct_i_f_a_p_i___k_e_y_s_t_o_r_e.html">IFAPI_KEYSTORE</a> *keystore, <a class="el" href="struct_i_f_a_p_i___i_o.html">IFAPI_IO</a> *io, TPM2B_NAME *name, char **found_path)</td></tr>
  106. <tr class="separator:ga26224646067aa6f2e349a43345744fd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  107. <tr class="memitem:gaf8394ad181ae3e9130c4aec886cb091d"><td class="memItemLeft" align="right" valign="top">TSS2_RC&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ifapi__keystore.html#gaf8394ad181ae3e9130c4aec886cb091d">ifapi_keystore_store_async</a> (<a class="el" href="struct_i_f_a_p_i___k_e_y_s_t_o_r_e.html">IFAPI_KEYSTORE</a> *keystore, <a class="el" href="struct_i_f_a_p_i___i_o.html">IFAPI_IO</a> *io, const char *path, const <a class="el" href="struct___i_f_a_p_i___o_b_j_e_c_t.html">IFAPI_OBJECT</a> *object)</td></tr>
  108. <tr class="separator:gaf8394ad181ae3e9130c4aec886cb091d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  109. <tr class="memitem:ga65efd616ba01aa737b3acf4c168c9148"><td class="memItemLeft" align="right" valign="top">TSS2_RC&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ifapi__keystore.html#ga65efd616ba01aa737b3acf4c168c9148">ifapi_copy_ifapi_hierarchy</a> (<a class="el" href="struct_i_f_a_p_i___h_i_e_r_a_r_c_h_y.html">IFAPI_HIERARCHY</a> *dest, const <a class="el" href="struct_i_f_a_p_i___h_i_e_r_a_r_c_h_y.html">IFAPI_HIERARCHY</a> *src)</td></tr>
  110. <tr class="separator:ga65efd616ba01aa737b3acf4c168c9148"><td class="memSeparator" colspan="2">&#160;</td></tr>
  111. <tr class="memitem:ga2b17a8bfeb50365b22cdefdb41bf1997"><td class="memItemLeft" align="right" valign="top">TSS2_RC&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ifapi__keystore.html#ga2b17a8bfeb50365b22cdefdb41bf1997">ifapi_copy_ifapi_hierarchy_object</a> (<a class="el" href="struct___i_f_a_p_i___o_b_j_e_c_t.html">IFAPI_OBJECT</a> *dest, const <a class="el" href="struct___i_f_a_p_i___o_b_j_e_c_t.html">IFAPI_OBJECT</a> *src)</td></tr>
  112. <tr class="separator:ga2b17a8bfeb50365b22cdefdb41bf1997"><td class="memSeparator" colspan="2">&#160;</td></tr>
  113. <tr class="memitem:ga24d8a92700486782021c434be1865992"><td class="memItemLeft" align="right" valign="top">TSS2_RC&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ifapi__keystore.html#ga24d8a92700486782021c434be1865992">ifapi_keystore_object_does_not_exist</a> (<a class="el" href="struct_i_f_a_p_i___k_e_y_s_t_o_r_e.html">IFAPI_KEYSTORE</a> *keystore, const char *path, const <a class="el" href="struct___i_f_a_p_i___o_b_j_e_c_t.html">IFAPI_OBJECT</a> *object)</td></tr>
  114. <tr class="separator:ga24d8a92700486782021c434be1865992"><td class="memSeparator" colspan="2">&#160;</td></tr>
  115. </table>
  116. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  117. <p>Provides internal fapi functions for reading and writing to the key store. </p>
  118. <h2 class="groupheader">Function Documentation</h2>
  119. <a id="gafabb0a59d18b036c7d3cc083aee10dfb"></a>
  120. <h2 class="memtitle"><span class="permalink"><a href="#gafabb0a59d18b036c7d3cc083aee10dfb">&#9670;&nbsp;</a></span>ifapi_cleanup_ifapi_duplicate()</h2>
  121. <div class="memitem">
  122. <div class="memproto">
  123. <table class="memname">
  124. <tr>
  125. <td class="memname">void ifapi_cleanup_ifapi_duplicate </td>
  126. <td>(</td>
  127. <td class="paramtype"><a class="el" href="struct_i_f_a_p_i___d_u_p_l_i_c_a_t_e.html">IFAPI_DUPLICATE</a> *&#160;</td>
  128. <td class="paramname"><em>duplicate</em></td><td>)</td>
  129. <td></td>
  130. </tr>
  131. </table>
  132. </div><div class="memdoc">
  133. <p>Free memory allocated during deserialization of a duplicate object.</p>
  134. <p>The duplicate object will not be freed (might be declared on the stack).</p>
  135. <dl class="params"><dt>Parameters</dt><dd>
  136. <table class="params">
  137. <tr><td class="paramdir">[in]</td><td class="paramname">duplicate</td><td>The duplicate object to be cleaned up. </td></tr>
  138. </table>
  139. </dd>
  140. </dl>
  141. </div>
  142. </div>
  143. <a id="gaaa33b0570f924b7418fddc46bc8c0ed6"></a>
  144. <h2 class="memtitle"><span class="permalink"><a href="#gaaa33b0570f924b7418fddc46bc8c0ed6">&#9670;&nbsp;</a></span>ifapi_cleanup_ifapi_ext_pub_key()</h2>
  145. <div class="memitem">
  146. <div class="memproto">
  147. <table class="memname">
  148. <tr>
  149. <td class="memname">void ifapi_cleanup_ifapi_ext_pub_key </td>
  150. <td>(</td>
  151. <td class="paramtype"><a class="el" href="struct_i_f_a_p_i___e_x_t___p_u_b___k_e_y.html">IFAPI_EXT_PUB_KEY</a> *&#160;</td>
  152. <td class="paramname"><em>key</em></td><td>)</td>
  153. <td></td>
  154. </tr>
  155. </table>
  156. </div><div class="memdoc">
  157. <p>Free memory allocated during deserialization of a pubkey object.</p>
  158. <p>The pubkey will not be freed (might be declared on the stack).</p>
  159. <dl class="params"><dt>Parameters</dt><dd>
  160. <table class="params">
  161. <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>The pubkey object to be cleaned up. </td></tr>
  162. </table>
  163. </dd>
  164. </dl>
  165. </div>
  166. </div>
  167. <a id="gaa87362683c0d4c3849bbbaa7f20ce1f7"></a>
  168. <h2 class="memtitle"><span class="permalink"><a href="#gaa87362683c0d4c3849bbbaa7f20ce1f7">&#9670;&nbsp;</a></span>ifapi_cleanup_ifapi_hierarchy()</h2>
  169. <div class="memitem">
  170. <div class="memproto">
  171. <table class="memname">
  172. <tr>
  173. <td class="memname">void ifapi_cleanup_ifapi_hierarchy </td>
  174. <td>(</td>
  175. <td class="paramtype"><a class="el" href="struct_i_f_a_p_i___h_i_e_r_a_r_c_h_y.html">IFAPI_HIERARCHY</a> *&#160;</td>
  176. <td class="paramname"><em>hierarchy</em></td><td>)</td>
  177. <td></td>
  178. </tr>
  179. </table>
  180. </div><div class="memdoc">
  181. <p>Free memory allocated during deserialization of a hierarchy object.</p>
  182. <p>The hierarchy object will not be freed (might be declared on the stack).</p>
  183. <dl class="params"><dt>Parameters</dt><dd>
  184. <table class="params">
  185. <tr><td class="paramdir">[in]</td><td class="paramname">hierarchy</td><td>The hierarchy object to be cleaned up. </td></tr>
  186. </table>
  187. </dd>
  188. </dl>
  189. </div>
  190. </div>
  191. <a id="gafdde064639939831b2ffc5ce65b47fff"></a>
  192. <h2 class="memtitle"><span class="permalink"><a href="#gafdde064639939831b2ffc5ce65b47fff">&#9670;&nbsp;</a></span>ifapi_cleanup_ifapi_key()</h2>
  193. <div class="memitem">
  194. <div class="memproto">
  195. <table class="memname">
  196. <tr>
  197. <td class="memname">void ifapi_cleanup_ifapi_key </td>
  198. <td>(</td>
  199. <td class="paramtype"><a class="el" href="struct_i_f_a_p_i___k_e_y.html">IFAPI_KEY</a> *&#160;</td>
  200. <td class="paramname"><em>key</em></td><td>)</td>
  201. <td></td>
  202. </tr>
  203. </table>
  204. </div><div class="memdoc">
  205. <p>Free memory allocated during deserialization of a key object.</p>
  206. <p>The key will not be freed (might be declared on the stack).</p>
  207. <dl class="params"><dt>Parameters</dt><dd>
  208. <table class="params">
  209. <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>The key object to be cleaned up. </td></tr>
  210. </table>
  211. </dd>
  212. </dl>
  213. </div>
  214. </div>
  215. <a id="gaead62f5bcafdb03059407489c811f11e"></a>
  216. <h2 class="memtitle"><span class="permalink"><a href="#gaead62f5bcafdb03059407489c811f11e">&#9670;&nbsp;</a></span>ifapi_cleanup_ifapi_keystore()</h2>
  217. <div class="memitem">
  218. <div class="memproto">
  219. <table class="memname">
  220. <tr>
  221. <td class="memname">void ifapi_cleanup_ifapi_keystore </td>
  222. <td>(</td>
  223. <td class="paramtype"><a class="el" href="struct_i_f_a_p_i___k_e_y_s_t_o_r_e.html">IFAPI_KEYSTORE</a> *&#160;</td>
  224. <td class="paramname"><em>keystore</em></td><td>)</td>
  225. <td></td>
  226. </tr>
  227. </table>
  228. </div><div class="memdoc">
  229. <p>Free keystore related memory allocated during FAPI initialization.</p>
  230. <p>The keystore object will not be freed (might be declared on the stack).</p>
  231. <dl class="params"><dt>Parameters</dt><dd>
  232. <table class="params">
  233. <tr><td class="paramdir">[in]</td><td class="paramname">keystore</td><td>The kystore object to be cleaned up. </td></tr>
  234. </table>
  235. </dd>
  236. </dl>
  237. </div>
  238. </div>
  239. <a id="gaff395a5d7935eb45f919b2dc69cd4349"></a>
  240. <h2 class="memtitle"><span class="permalink"><a href="#gaff395a5d7935eb45f919b2dc69cd4349">&#9670;&nbsp;</a></span>ifapi_cleanup_ifapi_nv()</h2>
  241. <div class="memitem">
  242. <div class="memproto">
  243. <table class="memname">
  244. <tr>
  245. <td class="memname">void ifapi_cleanup_ifapi_nv </td>
  246. <td>(</td>
  247. <td class="paramtype"><a class="el" href="struct_i_f_a_p_i___n_v.html">IFAPI_NV</a> *&#160;</td>
  248. <td class="paramname"><em>nv</em></td><td>)</td>
  249. <td></td>
  250. </tr>
  251. </table>
  252. </div><div class="memdoc">
  253. <p>Free memory allocated during deserialization of a nv object.</p>
  254. <p>The nv object will not be freed (might be declared on the stack).</p>
  255. <dl class="params"><dt>Parameters</dt><dd>
  256. <table class="params">
  257. <tr><td class="paramdir">[in]</td><td class="paramname">nv</td><td>The nv object to be cleaned up. </td></tr>
  258. </table>
  259. </dd>
  260. </dl>
  261. </div>
  262. </div>
  263. <a id="gac6b0773d734df895630a880c98163bb0"></a>
  264. <h2 class="memtitle"><span class="permalink"><a href="#gac6b0773d734df895630a880c98163bb0">&#9670;&nbsp;</a></span>ifapi_cleanup_ifapi_object()</h2>
  265. <div class="memitem">
  266. <div class="memproto">
  267. <table class="memname">
  268. <tr>
  269. <td class="memname">void ifapi_cleanup_ifapi_object </td>
  270. <td>(</td>
  271. <td class="paramtype"><a class="el" href="struct___i_f_a_p_i___o_b_j_e_c_t.html">IFAPI_OBJECT</a> *&#160;</td>
  272. <td class="paramname"><em>object</em></td><td>)</td>
  273. <td></td>
  274. </tr>
  275. </table>
  276. </div><div class="memdoc">
  277. <p>Free memory allocated during deserialization of object.</p>
  278. <p>The object will not be freed (might be declared on the stack).</p>
  279. <dl class="params"><dt>Parameters</dt><dd>
  280. <table class="params">
  281. <tr><td class="paramdir">[in]</td><td class="paramname">object</td><td>The object to be cleaned up. </td></tr>
  282. </table>
  283. </dd>
  284. </dl>
  285. </div>
  286. </div>
  287. <a id="ga65efd616ba01aa737b3acf4c168c9148"></a>
  288. <h2 class="memtitle"><span class="permalink"><a href="#ga65efd616ba01aa737b3acf4c168c9148">&#9670;&nbsp;</a></span>ifapi_copy_ifapi_hierarchy()</h2>
  289. <div class="memitem">
  290. <div class="memproto">
  291. <table class="memname">
  292. <tr>
  293. <td class="memname">ifapi_copy_ifapi_hierarchy </td>
  294. <td>(</td>
  295. <td class="paramtype"><a class="el" href="struct_i_f_a_p_i___h_i_e_r_a_r_c_h_y.html">IFAPI_HIERARCHY</a> *&#160;</td>
  296. <td class="paramname"><em>dest</em>, </td>
  297. </tr>
  298. <tr>
  299. <td class="paramkey"></td>
  300. <td></td>
  301. <td class="paramtype">const <a class="el" href="struct_i_f_a_p_i___h_i_e_r_a_r_c_h_y.html">IFAPI_HIERARCHY</a> *&#160;</td>
  302. <td class="paramname"><em>src</em>&#160;</td>
  303. </tr>
  304. <tr>
  305. <td></td>
  306. <td>)</td>
  307. <td></td><td></td>
  308. </tr>
  309. </table>
  310. </div><div class="memdoc">
  311. <p>Create a copy of a an ifapi hierarchy.</p>
  312. <dl class="params"><dt>Parameters</dt><dd>
  313. <table class="params">
  314. <tr><td class="paramdir">[out]</td><td class="paramname">dest</td><td>The caller allocated hierarchy object which will be the destination of the copy operation. </td></tr>
  315. <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>The source hierarchy.</td></tr>
  316. </table>
  317. </dd>
  318. </dl>
  319. <dl class="retval"><dt>Return values</dt><dd>
  320. <table class="retval">
  321. <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>if the function call was a success. </td></tr>
  322. <tr><td class="paramname">TSS2_FAPI_RC_BAD_REFERENCE</td><td>a invalid null pointer is passed. </td></tr>
  323. <tr><td class="paramname">TSS2_FAPI_RC_MEMORY</td><td>if not enough memory can be allocated. </td></tr>
  324. </table>
  325. </dd>
  326. </dl>
  327. </div>
  328. </div>
  329. <a id="ga2b17a8bfeb50365b22cdefdb41bf1997"></a>
  330. <h2 class="memtitle"><span class="permalink"><a href="#ga2b17a8bfeb50365b22cdefdb41bf1997">&#9670;&nbsp;</a></span>ifapi_copy_ifapi_hierarchy_object()</h2>
  331. <div class="memitem">
  332. <div class="memproto">
  333. <table class="memname">
  334. <tr>
  335. <td class="memname">ifapi_copy_ifapi_hierarchy_object </td>
  336. <td>(</td>
  337. <td class="paramtype"><a class="el" href="struct___i_f_a_p_i___o_b_j_e_c_t.html">IFAPI_OBJECT</a> *&#160;</td>
  338. <td class="paramname"><em>dest</em>, </td>
  339. </tr>
  340. <tr>
  341. <td class="paramkey"></td>
  342. <td></td>
  343. <td class="paramtype">const <a class="el" href="struct___i_f_a_p_i___o_b_j_e_c_t.html">IFAPI_OBJECT</a> *&#160;</td>
  344. <td class="paramname"><em>src</em>&#160;</td>
  345. </tr>
  346. <tr>
  347. <td></td>
  348. <td>)</td>
  349. <td></td><td></td>
  350. </tr>
  351. </table>
  352. </div><div class="memdoc">
  353. <p>Create a copy of a an ifapi object storing a hierarchy.</p>
  354. <p>The hierarchy together with the policy of the hierarchy will be copied.</p>
  355. <dl class="params"><dt>Parameters</dt><dd>
  356. <table class="params">
  357. <tr><td class="paramdir">[out]</td><td class="paramname">dest</td><td>The caller allocated hierarchy object which will be the destination of the copy operation. </td></tr>
  358. <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>The source hieararchy.</td></tr>
  359. </table>
  360. </dd>
  361. </dl>
  362. <dl class="retval"><dt>Return values</dt><dd>
  363. <table class="retval">
  364. <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>if the function call was a success. </td></tr>
  365. <tr><td class="paramname">TSS2_FAPI_RC_GENERAL_FAILURE</td><td>if the source is not of type key. </td></tr>
  366. <tr><td class="paramname">TSS2_FAPI_RC_BAD_REFERENCE</td><td>a invalid null pointer is passed. </td></tr>
  367. <tr><td class="paramname">TSS2_FAPI_RC_MEMORY</td><td>if not enough memory can be allocated. </td></tr>
  368. </table>
  369. </dd>
  370. </dl>
  371. </div>
  372. </div>
  373. <a id="ga55482c9b1bb6ee0b50426ecd7a7c8f61"></a>
  374. <h2 class="memtitle"><span class="permalink"><a href="#ga55482c9b1bb6ee0b50426ecd7a7c8f61">&#9670;&nbsp;</a></span>ifapi_copy_ifapi_key()</h2>
  375. <div class="memitem">
  376. <div class="memproto">
  377. <table class="memname">
  378. <tr>
  379. <td class="memname">TSS2_RC ifapi_copy_ifapi_key </td>
  380. <td>(</td>
  381. <td class="paramtype"><a class="el" href="struct_i_f_a_p_i___k_e_y.html">IFAPI_KEY</a> *&#160;</td>
  382. <td class="paramname"><em>dest</em>, </td>
  383. </tr>
  384. <tr>
  385. <td class="paramkey"></td>
  386. <td></td>
  387. <td class="paramtype">const <a class="el" href="struct_i_f_a_p_i___k_e_y.html">IFAPI_KEY</a> *&#160;</td>
  388. <td class="paramname"><em>src</em>&#160;</td>
  389. </tr>
  390. <tr>
  391. <td></td>
  392. <td>)</td>
  393. <td></td><td></td>
  394. </tr>
  395. </table>
  396. </div><div class="memdoc">
  397. <p>Create a copy of a an ifapi key.</p>
  398. <dl class="params"><dt>Parameters</dt><dd>
  399. <table class="params">
  400. <tr><td class="paramdir">[out]</td><td class="paramname">dest</td><td>The caller allocated key object which will be the destination of the copy operation. </td></tr>
  401. <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>The source key.</td></tr>
  402. </table>
  403. </dd>
  404. </dl>
  405. <dl class="retval"><dt>Return values</dt><dd>
  406. <table class="retval">
  407. <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>if the function call was a success. </td></tr>
  408. <tr><td class="paramname">TSS2_FAPI_RC_BAD_REFERENCE</td><td>a invalid null pointer is passed. </td></tr>
  409. <tr><td class="paramname">TSS2_FAPI_RC_MEMORY</td><td>if not enough memory can be allocated. </td></tr>
  410. </table>
  411. </dd>
  412. </dl>
  413. </div>
  414. </div>
  415. <a id="ga0dfb30704ead405b7786cdd15fe365a3"></a>
  416. <h2 class="memtitle"><span class="permalink"><a href="#ga0dfb30704ead405b7786cdd15fe365a3">&#9670;&nbsp;</a></span>ifapi_copy_ifapi_key_object()</h2>
  417. <div class="memitem">
  418. <div class="memproto">
  419. <table class="memname">
  420. <tr>
  421. <td class="memname">TSS2_RC ifapi_copy_ifapi_key_object </td>
  422. <td>(</td>
  423. <td class="paramtype"><a class="el" href="struct___i_f_a_p_i___o_b_j_e_c_t.html">IFAPI_OBJECT</a> *&#160;</td>
  424. <td class="paramname"><em>dest</em>, </td>
  425. </tr>
  426. <tr>
  427. <td class="paramkey"></td>
  428. <td></td>
  429. <td class="paramtype">const <a class="el" href="struct___i_f_a_p_i___o_b_j_e_c_t.html">IFAPI_OBJECT</a> *&#160;</td>
  430. <td class="paramname"><em>src</em>&#160;</td>
  431. </tr>
  432. <tr>
  433. <td></td>
  434. <td>)</td>
  435. <td></td><td></td>
  436. </tr>
  437. </table>
  438. </div><div class="memdoc">
  439. <p>Create a copy of a an ifapi object storing a key.</p>
  440. <p>The key together with the policy of the key will be copied.</p>
  441. <dl class="params"><dt>Parameters</dt><dd>
  442. <table class="params">
  443. <tr><td class="paramdir">[out]</td><td class="paramname">dest</td><td>The caller allocated key object which will be the destination of the copy operation. </td></tr>
  444. <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>The source key.</td></tr>
  445. </table>
  446. </dd>
  447. </dl>
  448. <dl class="retval"><dt>Return values</dt><dd>
  449. <table class="retval">
  450. <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>if the function call was a success. </td></tr>
  451. <tr><td class="paramname">TSS2_FAPI_RC_GENERAL_FAILURE</td><td>if the source is not of type key. </td></tr>
  452. <tr><td class="paramname">TSS2_FAPI_RC_BAD_REFERENCE</td><td>a invalid null pointer is passed. </td></tr>
  453. <tr><td class="paramname">TSS2_FAPI_RC_MEMORY</td><td>if not enough memory can be allocated. </td></tr>
  454. </table>
  455. </dd>
  456. </dl>
  457. </div>
  458. </div>
  459. <a id="ga6bb0e3d58d2c8644dfddb509bde5d09b"></a>
  460. <h2 class="memtitle"><span class="permalink"><a href="#ga6bb0e3d58d2c8644dfddb509bde5d09b">&#9670;&nbsp;</a></span>ifapi_keystore_delete()</h2>
  461. <div class="memitem">
  462. <div class="memproto">
  463. <table class="memname">
  464. <tr>
  465. <td class="memname">TSS2_RC ifapi_keystore_delete </td>
  466. <td>(</td>
  467. <td class="paramtype"><a class="el" href="struct_i_f_a_p_i___k_e_y_s_t_o_r_e.html">IFAPI_KEYSTORE</a> *&#160;</td>
  468. <td class="paramname"><em>keystore</em>, </td>
  469. </tr>
  470. <tr>
  471. <td class="paramkey"></td>
  472. <td></td>
  473. <td class="paramtype">char *&#160;</td>
  474. <td class="paramname"><em>path</em>&#160;</td>
  475. </tr>
  476. <tr>
  477. <td></td>
  478. <td>)</td>
  479. <td></td><td></td>
  480. </tr>
  481. </table>
  482. </div><div class="memdoc">
  483. <p>Remove file storing a keystore object.</p>
  484. <dl class="params"><dt>Parameters</dt><dd>
  485. <table class="params">
  486. <tr><td class="paramdir">[in]</td><td class="paramname">keystore</td><td>The key directories, the default profile. </td></tr>
  487. <tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>The relative name of the object be removed. </td></tr>
  488. </table>
  489. </dd>
  490. </dl>
  491. <dl class="retval"><dt>Return values</dt><dd>
  492. <table class="retval">
  493. <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>On success. </td></tr>
  494. <tr><td class="paramname">TSS2_FAPI_RC_MEMORY</td><td>If memory could not be allocated. </td></tr>
  495. <tr><td class="paramname">TSS2_FAPI_RC_IO_ERROR</td><td>If the file can't be removed. </td></tr>
  496. <tr><td class="paramname">TSS2_FAPI_RC_PATH_NOT_FOUND</td><td>if a FAPI object path was not found during authorization. </td></tr>
  497. <tr><td class="paramname">TSS2_FAPI_RC_KEY_NOT_FOUND</td><td>if a key was not found. </td></tr>
  498. <tr><td class="paramname">TSS2_FAPI_RC_BAD_VALUE</td><td>if an invalid value was passed into the function. </td></tr>
  499. <tr><td class="paramname">TSS2_FAPI_RC_NOT_PROVISIONED</td><td>FAPI was not provisioned. </td></tr>
  500. <tr><td class="paramname">TSS2_FAPI_RC_BAD_REFERENCE</td><td>a invalid null pointer is passed. </td></tr>
  501. <tr><td class="paramname">TSS2_FAPI_RC_BAD_PATH</td><td>if the path is used in inappropriate context or contains illegal characters. </td></tr>
  502. </table>
  503. </dd>
  504. </dl>
  505. </div>
  506. </div>
  507. <a id="ga7fe64f630dfab96d28d1206b36937003"></a>
  508. <h2 class="memtitle"><span class="permalink"><a href="#ga7fe64f630dfab96d28d1206b36937003">&#9670;&nbsp;</a></span>ifapi_keystore_initialize()</h2>
  509. <div class="memitem">
  510. <div class="memproto">
  511. <table class="memname">
  512. <tr>
  513. <td class="memname">TSS2_RC ifapi_keystore_initialize </td>
  514. <td>(</td>
  515. <td class="paramtype"><a class="el" href="struct_i_f_a_p_i___k_e_y_s_t_o_r_e.html">IFAPI_KEYSTORE</a> *&#160;</td>
  516. <td class="paramname"><em>keystore</em>, </td>
  517. </tr>
  518. <tr>
  519. <td class="paramkey"></td>
  520. <td></td>
  521. <td class="paramtype">const char *&#160;</td>
  522. <td class="paramname"><em>config_systemdir</em>, </td>
  523. </tr>
  524. <tr>
  525. <td class="paramkey"></td>
  526. <td></td>
  527. <td class="paramtype">const char *&#160;</td>
  528. <td class="paramname"><em>config_userdir</em>, </td>
  529. </tr>
  530. <tr>
  531. <td class="paramkey"></td>
  532. <td></td>
  533. <td class="paramtype">const char *&#160;</td>
  534. <td class="paramname"><em>config_defaultprofile</em>&#160;</td>
  535. </tr>
  536. <tr>
  537. <td></td>
  538. <td>)</td>
  539. <td></td><td></td>
  540. </tr>
  541. </table>
  542. </div><div class="memdoc">
  543. <p>Store keystore parameters in the keystore context.</p>
  544. <p>Also the user directory will be created if it does not exist.</p>
  545. <dl class="params"><dt>Parameters</dt><dd>
  546. <table class="params">
  547. <tr><td class="paramdir">[out]</td><td class="paramname">keystore</td><td>The keystore to be initialized. </td></tr>
  548. <tr><td class="paramdir">[in]</td><td class="paramname">config_systemdir</td><td>The configured system directory. </td></tr>
  549. <tr><td class="paramdir">[in]</td><td class="paramname">config_userdir</td><td>The configured user directory. </td></tr>
  550. <tr><td class="paramdir">[in]</td><td class="paramname">config_defaultprofile</td><td>The configured profile.</td></tr>
  551. </table>
  552. </dd>
  553. </dl>
  554. <dl class="retval"><dt>Return values</dt><dd>
  555. <table class="retval">
  556. <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>If the keystore can be initialized. </td></tr>
  557. <tr><td class="paramname">TSS2_FAPI_RC_IO_ERROR</td><td>If the user part of the keystore can't be initialized. </td></tr>
  558. <tr><td class="paramname">TSS2_FAPI_RC_MEMORY</td><td>if memory could not be allocated. </td></tr>
  559. <tr><td class="paramname">TSS2_FAPI_RC_BAD_PATH</td><td>if the home directory of the user cannot be determined. </td></tr>
  560. <tr><td class="paramname">TSS2_FAPI_RC_BAD_VALUE</td><td>if an invalid value was passed into the function. </td></tr>
  561. </table>
  562. </dd>
  563. </dl>
  564. </div>
  565. </div>
  566. <a id="ga7fe0097564cb4663a92f39e1620fc293"></a>
  567. <h2 class="memtitle"><span class="permalink"><a href="#ga7fe0097564cb4663a92f39e1620fc293">&#9670;&nbsp;</a></span>ifapi_keystore_list_all()</h2>
  568. <div class="memitem">
  569. <div class="memproto">
  570. <table class="memname">
  571. <tr>
  572. <td class="memname">TSS2_RC ifapi_keystore_list_all </td>
  573. <td>(</td>
  574. <td class="paramtype"><a class="el" href="struct_i_f_a_p_i___k_e_y_s_t_o_r_e.html">IFAPI_KEYSTORE</a> *&#160;</td>
  575. <td class="paramname"><em>keystore</em>, </td>
  576. </tr>
  577. <tr>
  578. <td class="paramkey"></td>
  579. <td></td>
  580. <td class="paramtype">const char *&#160;</td>
  581. <td class="paramname"><em>searchpath</em>, </td>
  582. </tr>
  583. <tr>
  584. <td class="paramkey"></td>
  585. <td></td>
  586. <td class="paramtype">char ***&#160;</td>
  587. <td class="paramname"><em>results</em>, </td>
  588. </tr>
  589. <tr>
  590. <td class="paramkey"></td>
  591. <td></td>
  592. <td class="paramtype">size_t *&#160;</td>
  593. <td class="paramname"><em>numresults</em>&#160;</td>
  594. </tr>
  595. <tr>
  596. <td></td>
  597. <td>)</td>
  598. <td></td><td></td>
  599. </tr>
  600. </table>
  601. </div><div class="memdoc">
  602. <p>Create a list of of objects in a certain search path.</p>
  603. <p>A vector of relative paths will be computed.</p>
  604. <dl class="params"><dt>Parameters</dt><dd>
  605. <table class="params">
  606. <tr><td class="paramdir">[in]</td><td class="paramname">keystore</td><td>The key directories, the default profile. </td></tr>
  607. <tr><td class="paramdir">[in]</td><td class="paramname">searchpath</td><td>The relative search path in key store. </td></tr>
  608. <tr><td class="paramdir">[out]</td><td class="paramname">results</td><td>The array with pointers to the relative object paths. </td></tr>
  609. <tr><td class="paramdir">[out]</td><td class="paramname">numresults</td><td>The number of found objects. </td></tr>
  610. </table>
  611. </dd>
  612. </dl>
  613. <dl class="retval"><dt>Return values</dt><dd>
  614. <table class="retval">
  615. <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>on success. </td></tr>
  616. <tr><td class="paramname">TSS2_FAPI_RC_MEMORY</td><td>if memory could not be allocated. </td></tr>
  617. <tr><td class="paramname">TSS2_FAPI_RC_BAD_REFERENCE</td><td>a invalid null pointer is passed. </td></tr>
  618. <tr><td class="paramname">TSS2_FAPI_RC_BAD_PATH</td><td>if the path is used in inappropriate context or contains illegal characters. </td></tr>
  619. <tr><td class="paramname">TSS2_FAPI_RC_BAD_VALUE</td><td>if an invalid value was passed into the function. </td></tr>
  620. <tr><td class="paramname">TSS2_FAPI_RC_PATH_NOT_FOUND</td><td>if a FAPI object path was not found during authorization. </td></tr>
  621. </table>
  622. </dd>
  623. </dl>
  624. </div>
  625. </div>
  626. <a id="ga6af418f78dd03c860a428b14e0530213"></a>
  627. <h2 class="memtitle"><span class="permalink"><a href="#ga6af418f78dd03c860a428b14e0530213">&#9670;&nbsp;</a></span>ifapi_keystore_load_async()</h2>
  628. <div class="memitem">
  629. <div class="memproto">
  630. <table class="memname">
  631. <tr>
  632. <td class="memname">TSS2_RC ifapi_keystore_load_async </td>
  633. <td>(</td>
  634. <td class="paramtype"><a class="el" href="struct_i_f_a_p_i___k_e_y_s_t_o_r_e.html">IFAPI_KEYSTORE</a> *&#160;</td>
  635. <td class="paramname"><em>keystore</em>, </td>
  636. </tr>
  637. <tr>
  638. <td class="paramkey"></td>
  639. <td></td>
  640. <td class="paramtype"><a class="el" href="struct_i_f_a_p_i___i_o.html">IFAPI_IO</a> *&#160;</td>
  641. <td class="paramname"><em>io</em>, </td>
  642. </tr>
  643. <tr>
  644. <td class="paramkey"></td>
  645. <td></td>
  646. <td class="paramtype">const char *&#160;</td>
  647. <td class="paramname"><em>path</em>&#160;</td>
  648. </tr>
  649. <tr>
  650. <td></td>
  651. <td>)</td>
  652. <td></td><td></td>
  653. </tr>
  654. </table>
  655. </div><div class="memdoc">
  656. <p>Start loading FAPI object from key store.</p>
  657. <p>Keys objects, NV objects, and hierarchies can be loaded.</p>
  658. <dl class="params"><dt>Parameters</dt><dd>
  659. <table class="params">
  660. <tr><td class="paramdir">[in]</td><td class="paramname">keystore</td><td>The key directories and default profile. </td></tr>
  661. <tr><td class="paramdir">[in]</td><td class="paramname">io</td><td>The input/output context being used for file I/O. </td></tr>
  662. <tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>The relative path of the object. For keys the path will expanded if possible. </td></tr>
  663. </table>
  664. </dd>
  665. </dl>
  666. <dl class="retval"><dt>Return values</dt><dd>
  667. <table class="retval">
  668. <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>If the object can be read. </td></tr>
  669. <tr><td class="paramname">TSS2_FAPI_RC_IO_ERROR</td><td>if an I/O error was encountered. </td></tr>
  670. <tr><td class="paramname">TSS2_FAPI_RC_PATH_NOT_FOUND</td><td>if the file does not exist. </td></tr>
  671. <tr><td class="paramname">TSS2_FAPI_RC_MEMORY</td><td>if memory could not be allocated to hold the read data. </td></tr>
  672. <tr><td class="paramname">TSS2_FAPI_RC_KEY_NOT_FOUND</td><td>if a key was not found. </td></tr>
  673. <tr><td class="paramname">TSS2_FAPI_RC_BAD_VALUE</td><td>if an invalid value was passed into the function. </td></tr>
  674. <tr><td class="paramname">TSS2_FAPI_RC_NOT_PROVISIONED</td><td>FAPI was not provisioned. </td></tr>
  675. <tr><td class="paramname">TSS2_FAPI_RC_BAD_REFERENCE</td><td>a invalid null pointer is passed. </td></tr>
  676. <tr><td class="paramname">TSS2_FAPI_RC_BAD_PATH</td><td>if the path is used in inappropriate context or contains illegal characters. </td></tr>
  677. </table>
  678. </dd>
  679. </dl>
  680. </div>
  681. </div>
  682. <a id="ga24d8a92700486782021c434be1865992"></a>
  683. <h2 class="memtitle"><span class="permalink"><a href="#ga24d8a92700486782021c434be1865992">&#9670;&nbsp;</a></span>ifapi_keystore_object_does_not_exist()</h2>
  684. <div class="memitem">
  685. <div class="memproto">
  686. <table class="memname">
  687. <tr>
  688. <td class="memname">ifapi_keystore_object_does_not_exist </td>
  689. <td>(</td>
  690. <td class="paramtype"><a class="el" href="struct_i_f_a_p_i___k_e_y_s_t_o_r_e.html">IFAPI_KEYSTORE</a> *&#160;</td>
  691. <td class="paramname"><em>keystore</em>, </td>
  692. </tr>
  693. <tr>
  694. <td class="paramkey"></td>
  695. <td></td>
  696. <td class="paramtype">const char *&#160;</td>
  697. <td class="paramname"><em>path</em>, </td>
  698. </tr>
  699. <tr>
  700. <td class="paramkey"></td>
  701. <td></td>
  702. <td class="paramtype">const <a class="el" href="struct___i_f_a_p_i___o_b_j_e_c_t.html">IFAPI_OBJECT</a> *&#160;</td>
  703. <td class="paramname"><em>object</em>&#160;</td>
  704. </tr>
  705. <tr>
  706. <td></td>
  707. <td>)</td>
  708. <td></td><td></td>
  709. </tr>
  710. </table>
  711. </div><div class="memdoc">
  712. <p>Check whether the key path for a new object does not exist in key store.</p>
  713. <p>To prevent overwriting of objects the functions returns an error if the object is already stored in key store. The FAPI path will be expanded to absolute path appropriate for the object to be checked.</p>
  714. <dl class="params"><dt>Parameters</dt><dd>
  715. <table class="params">
  716. <tr><td class="paramdir">[in]</td><td class="paramname">keystore</td><td>The key directories and default profile. </td></tr>
  717. <tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>The relative path of the object. For keys the path will expanded if possible. </td></tr>
  718. <tr><td class="paramdir">[in]</td><td class="paramname">object</td><td>The object to be checked. </td></tr>
  719. </table>
  720. </dd>
  721. </dl>
  722. <dl class="retval"><dt>Return values</dt><dd>
  723. <table class="retval">
  724. <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>if the object does not exist and a new object can be written. </td></tr>
  725. <tr><td class="paramname">TSS2_FAPI_RC_PATH_ALREADY_EXISTS</td><td>if the object exists in key store. </td></tr>
  726. <tr><td class="paramname">TSS2_FAPI_RC_MEMORY</td><td>if memory could not be allocated to hold the output data. </td></tr>
  727. <tr><td class="paramname">TSS2_FAPI_RC_BAD_VALUE</td><td>if an invalid value was passed into the function. </td></tr>
  728. <tr><td class="paramname">TSS2_FAPI_RC_BAD_REFERENCE</td><td>a invalid null pointer is passed. </td></tr>
  729. <tr><td class="paramname">TSS2_FAPI_RC_BAD_PATH</td><td>if the path is used in inappropriate context or contains illegal characters. </td></tr>
  730. <tr><td class="paramname">TSS2_FAPI_RC_PATH_NOT_FOUND</td><td>if a FAPI object path was not found during authorization. </td></tr>
  731. </table>
  732. </dd>
  733. </dl>
  734. </div>
  735. </div>
  736. <a id="ga6c893408be4f545cf9c056284e3eab28"></a>
  737. <h2 class="memtitle"><span class="permalink"><a href="#ga6c893408be4f545cf9c056284e3eab28">&#9670;&nbsp;</a></span>ifapi_keystore_remove_directories()</h2>
  738. <div class="memitem">
  739. <div class="memproto">
  740. <table class="memname">
  741. <tr>
  742. <td class="memname">TSS2_RC ifapi_keystore_remove_directories </td>
  743. <td>(</td>
  744. <td class="paramtype"><a class="el" href="struct_i_f_a_p_i___k_e_y_s_t_o_r_e.html">IFAPI_KEYSTORE</a> *&#160;</td>
  745. <td class="paramname"><em>keystore</em>, </td>
  746. </tr>
  747. <tr>
  748. <td class="paramkey"></td>
  749. <td></td>
  750. <td class="paramtype">const char *&#160;</td>
  751. <td class="paramname"><em>dir_name</em>&#160;</td>
  752. </tr>
  753. <tr>
  754. <td></td>
  755. <td>)</td>
  756. <td></td><td></td>
  757. </tr>
  758. </table>
  759. </div><div class="memdoc">
  760. <p>Remove directories in keystore.</p>
  761. <p>If the expanded directory exists in userdir and systemdir both will be deleted.</p>
  762. <dl class="params"><dt>Parameters</dt><dd>
  763. <table class="params">
  764. <tr><td class="paramdir">[in]</td><td class="paramname">keystore</td><td>The key directories, the default profile. </td></tr>
  765. <tr><td class="paramdir">[in]</td><td class="paramname">dir_name</td><td>The relative name of the directory to be removed. </td></tr>
  766. </table>
  767. </dd>
  768. </dl>
  769. <dl class="retval"><dt>Return values</dt><dd>
  770. <table class="retval">
  771. <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>on success. </td></tr>
  772. <tr><td class="paramname">TSS2_FAPI_RC_MEMORY</td><td>If memory could not be allocated. </td></tr>
  773. <tr><td class="paramname">TSS2_FAPI_RC_IO_ERROR</td><td>If directory can't be deleted. </td></tr>
  774. <tr><td class="paramname">TSS2_FAPI_RC_BAD_VALUE</td><td>if an invalid value was passed into the function. </td></tr>
  775. <tr><td class="paramname">TSS2_FAPI_RC_BAD_REFERENCE</td><td>a invalid null pointer is passed. </td></tr>
  776. <tr><td class="paramname">TSS2_FAPI_RC_BAD_PATH</td><td>if the path is used in inappropriate context or contains illegal characters. </td></tr>
  777. <tr><td class="paramname">TSS2_FAPI_RC_PATH_NOT_FOUND</td><td>if a FAPI object path was not found during authorization. </td></tr>
  778. </table>
  779. </dd>
  780. </dl>
  781. </div>
  782. </div>
  783. <a id="ga6ecdfa3a0394f1e2ef0c9bf81039ed81"></a>
  784. <h2 class="memtitle"><span class="permalink"><a href="#ga6ecdfa3a0394f1e2ef0c9bf81039ed81">&#9670;&nbsp;</a></span>ifapi_keystore_search_nv_obj()</h2>
  785. <div class="memitem">
  786. <div class="memproto">
  787. <table class="memname">
  788. <tr>
  789. <td class="memname">TSS2_RC ifapi_keystore_search_nv_obj </td>
  790. <td>(</td>
  791. <td class="paramtype"><a class="el" href="struct_i_f_a_p_i___k_e_y_s_t_o_r_e.html">IFAPI_KEYSTORE</a> *&#160;</td>
  792. <td class="paramname"><em>keystore</em>, </td>
  793. </tr>
  794. <tr>
  795. <td class="paramkey"></td>
  796. <td></td>
  797. <td class="paramtype"><a class="el" href="struct_i_f_a_p_i___i_o.html">IFAPI_IO</a> *&#160;</td>
  798. <td class="paramname"><em>io</em>, </td>
  799. </tr>
  800. <tr>
  801. <td class="paramkey"></td>
  802. <td></td>
  803. <td class="paramtype">TPM2B_NV_PUBLIC *&#160;</td>
  804. <td class="paramname"><em>nv_public</em>, </td>
  805. </tr>
  806. <tr>
  807. <td class="paramkey"></td>
  808. <td></td>
  809. <td class="paramtype">char **&#160;</td>
  810. <td class="paramname"><em>found_path</em>&#160;</td>
  811. </tr>
  812. <tr>
  813. <td></td>
  814. <td>)</td>
  815. <td></td><td></td>
  816. </tr>
  817. </table>
  818. </div><div class="memdoc">
  819. <p>Search nv object with a certain nv_index (from nv_public) in keystore.</p>
  820. <dl class="params"><dt>Parameters</dt><dd>
  821. <table class="params">
  822. <tr><td class="paramdir">[in,out]</td><td class="paramname">keystore</td><td>The key directories, the default profile, and the state information for the asynchronous search. </td></tr>
  823. <tr><td class="paramdir">[in]</td><td class="paramname">io</td><td>The input/output context being used for file I/O. </td></tr>
  824. <tr><td class="paramdir">[in]</td><td class="paramname">nv_public</td><td>The public data of the searched nv object. </td></tr>
  825. <tr><td class="paramdir">[out]</td><td class="paramname">found_path</td><td>The relative path of the found key. </td></tr>
  826. </table>
  827. </dd>
  828. </dl>
  829. <dl class="retval"><dt>Return values</dt><dd>
  830. <table class="retval">
  831. <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>on success. </td></tr>
  832. <tr><td class="paramname">TSS2_FAPI_RC_MEMORY</td><td>if memory could not be allocated. </td></tr>
  833. <tr><td class="paramname">TSS2_FAPI_RC_KEY_NOT_FOUND</td><td>If the key was not found in keystore. </td></tr>
  834. <tr><td class="paramname">TSS2_FAPI_RC_BAD_VALUE</td><td>if an invalid value was passed into the function. </td></tr>
  835. <tr><td class="paramname">TSS2_FAPI_RC_PATH_NOT_FOUND</td><td>if a FAPI object path was not found during authorization. </td></tr>
  836. <tr><td class="paramname">TSS2_FAPI_RC_TRY_AGAIN</td><td>if an I/O operation is not finished yet and this function needs to be called again. </td></tr>
  837. <tr><td class="paramname">TSS2_FAPI_RC_BAD_SEQUENCE</td><td>if the context has an asynchronous operation already pending. </td></tr>
  838. <tr><td class="paramname">TSS2_FAPI_RC_IO_ERROR</td><td>if an error occurred while accessing the object store. </td></tr>
  839. <tr><td class="paramname">TSS2_FAPI_RC_GENERAL_FAILURE</td><td>if an internal error occurred. </td></tr>
  840. <tr><td class="paramname">TSS2_FAPI_RC_BAD_REFERENCE</td><td>a invalid null pointer is passed. </td></tr>
  841. <tr><td class="paramname">TSS2_FAPI_RC_PATH_ALREADY_EXISTS</td><td>if the object already exists in object store. </td></tr>
  842. <tr><td class="paramname">TSS2_FAPI_RC_BAD_PATH</td><td>if the path is used in inappropriate context or contains illegal characters. </td></tr>
  843. <tr><td class="paramname">TSS2_FAPI_RC_NOT_PROVISIONED</td><td>FAPI was not provisioned. </td></tr>
  844. </table>
  845. </dd>
  846. </dl>
  847. </div>
  848. </div>
  849. <a id="ga26224646067aa6f2e349a43345744fd5"></a>
  850. <h2 class="memtitle"><span class="permalink"><a href="#ga26224646067aa6f2e349a43345744fd5">&#9670;&nbsp;</a></span>ifapi_keystore_search_obj()</h2>
  851. <div class="memitem">
  852. <div class="memproto">
  853. <table class="memname">
  854. <tr>
  855. <td class="memname">TSS2_RC ifapi_keystore_search_obj </td>
  856. <td>(</td>
  857. <td class="paramtype"><a class="el" href="struct_i_f_a_p_i___k_e_y_s_t_o_r_e.html">IFAPI_KEYSTORE</a> *&#160;</td>
  858. <td class="paramname"><em>keystore</em>, </td>
  859. </tr>
  860. <tr>
  861. <td class="paramkey"></td>
  862. <td></td>
  863. <td class="paramtype"><a class="el" href="struct_i_f_a_p_i___i_o.html">IFAPI_IO</a> *&#160;</td>
  864. <td class="paramname"><em>io</em>, </td>
  865. </tr>
  866. <tr>
  867. <td class="paramkey"></td>
  868. <td></td>
  869. <td class="paramtype">TPM2B_NAME *&#160;</td>
  870. <td class="paramname"><em>name</em>, </td>
  871. </tr>
  872. <tr>
  873. <td class="paramkey"></td>
  874. <td></td>
  875. <td class="paramtype">char **&#160;</td>
  876. <td class="paramname"><em>found_path</em>&#160;</td>
  877. </tr>
  878. <tr>
  879. <td></td>
  880. <td>)</td>
  881. <td></td><td></td>
  882. </tr>
  883. </table>
  884. </div><div class="memdoc">
  885. <p>Search object with a certain name in keystore.</p>
  886. <dl class="params"><dt>Parameters</dt><dd>
  887. <table class="params">
  888. <tr><td class="paramdir">[in,out]</td><td class="paramname">keystore</td><td>The key directories, the default profile, and the state information for the asynchronous search. </td></tr>
  889. <tr><td class="paramdir">[in]</td><td class="paramname">io</td><td>The input/output context being used for file I/O. </td></tr>
  890. <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>The name of the searched object. </td></tr>
  891. <tr><td class="paramdir">[out]</td><td class="paramname">found_path</td><td>The relative path of the found key. </td></tr>
  892. </table>
  893. </dd>
  894. </dl>
  895. <dl class="retval"><dt>Return values</dt><dd>
  896. <table class="retval">
  897. <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>on success. </td></tr>
  898. <tr><td class="paramname">TSS2_FAPI_RC_MEMORY</td><td>if memory could not be allocated. </td></tr>
  899. <tr><td class="paramname">TSS2_FAPI_RC_KEY_NOT_FOUND</td><td>If the key was not found in keystore. </td></tr>
  900. <tr><td class="paramname">TSS2_FAPI_RC_PATH_NOT_FOUND</td><td>if a FAPI object path was not found during authorization. </td></tr>
  901. <tr><td class="paramname">TSS2_FAPI_RC_TRY_AGAIN</td><td>if an I/O operation is not finished yet and this function needs to be called again. </td></tr>
  902. <tr><td class="paramname">TSS2_FAPI_RC_BAD_SEQUENCE</td><td>if the context has an asynchronous operation already pending. </td></tr>
  903. <tr><td class="paramname">TSS2_FAPI_RC_BAD_VALUE</td><td>if an invalid value was passed into the function. </td></tr>
  904. <tr><td class="paramname">TSS2_FAPI_RC_IO_ERROR</td><td>if an error occurred while accessing the object store. </td></tr>
  905. <tr><td class="paramname">TSS2_FAPI_RC_GENERAL_FAILURE</td><td>if an internal error occurred. </td></tr>
  906. <tr><td class="paramname">TSS2_FAPI_RC_BAD_REFERENCE</td><td>a invalid null pointer is passed. </td></tr>
  907. <tr><td class="paramname">TSS2_FAPI_RC_BAD_PATH</td><td>if the path is used in inappropriate context or contains illegal characters. </td></tr>
  908. <tr><td class="paramname">TSS2_FAPI_RC_NOT_PROVISIONED</td><td>FAPI was not provisioned. </td></tr>
  909. </table>
  910. </dd>
  911. </dl>
  912. </div>
  913. </div>
  914. <a id="gaf8394ad181ae3e9130c4aec886cb091d"></a>
  915. <h2 class="memtitle"><span class="permalink"><a href="#gaf8394ad181ae3e9130c4aec886cb091d">&#9670;&nbsp;</a></span>ifapi_keystore_store_async()</h2>
  916. <div class="memitem">
  917. <div class="memproto">
  918. <table class="memname">
  919. <tr>
  920. <td class="memname">TSS2_RC ifapi_keystore_store_async </td>
  921. <td>(</td>
  922. <td class="paramtype"><a class="el" href="struct_i_f_a_p_i___k_e_y_s_t_o_r_e.html">IFAPI_KEYSTORE</a> *&#160;</td>
  923. <td class="paramname"><em>keystore</em>, </td>
  924. </tr>
  925. <tr>
  926. <td class="paramkey"></td>
  927. <td></td>
  928. <td class="paramtype"><a class="el" href="struct_i_f_a_p_i___i_o.html">IFAPI_IO</a> *&#160;</td>
  929. <td class="paramname"><em>io</em>, </td>
  930. </tr>
  931. <tr>
  932. <td class="paramkey"></td>
  933. <td></td>
  934. <td class="paramtype">const char *&#160;</td>
  935. <td class="paramname"><em>path</em>, </td>
  936. </tr>
  937. <tr>
  938. <td class="paramkey"></td>
  939. <td></td>
  940. <td class="paramtype">const <a class="el" href="struct___i_f_a_p_i___o_b_j_e_c_t.html">IFAPI_OBJECT</a> *&#160;</td>
  941. <td class="paramname"><em>object</em>&#160;</td>
  942. </tr>
  943. <tr>
  944. <td></td>
  945. <td>)</td>
  946. <td></td><td></td>
  947. </tr>
  948. </table>
  949. </div><div class="memdoc">
  950. <p>Start writing FAPI object to the key store.</p>
  951. <p>Keys objects, NV objects, and hierarchies can be written.</p>
  952. <dl class="params"><dt>Parameters</dt><dd>
  953. <table class="params">
  954. <tr><td class="paramdir">[in]</td><td class="paramname">keystore</td><td>The key directories and default profile. </td></tr>
  955. <tr><td class="paramdir">[in]</td><td class="paramname">io</td><td>The input/output context being used for file I/O. </td></tr>
  956. <tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>The relative path of the object. For keys the path will expanded if possible. </td></tr>
  957. <tr><td class="paramdir">[in]</td><td class="paramname">object</td><td>The object to be written to the keystore. </td></tr>
  958. </table>
  959. </dd>
  960. </dl>
  961. <dl class="retval"><dt>Return values</dt><dd>
  962. <table class="retval">
  963. <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>if the object is written successfully. </td></tr>
  964. <tr><td class="paramname">TSS2_FAPI_RC_IO_ERROR</td><td>if an I/O error was encountered; </td></tr>
  965. <tr><td class="paramname">TSS2_FAPI_RC_MEMORY</td><td>if memory could not be allocated to hold the output data. </td></tr>
  966. <tr><td class="paramname">TSS2_FAPI_RC_BAD_VALUE</td><td>if an invalid value was passed into the function. </td></tr>
  967. <tr><td class="paramname">TSS2_FAPI_RC_GENERAL_FAILURE</td><td>if an internal error occurred. </td></tr>
  968. <tr><td class="paramname">TSS2_FAPI_RC_BAD_REFERENCE</td><td>a invalid null pointer is passed. </td></tr>
  969. <tr><td class="paramname">TSS2_FAPI_RC_BAD_PATH</td><td>if the path is used in inappropriate context or contains illegal characters. </td></tr>
  970. <tr><td class="paramname">TSS2_FAPI_RC_PATH_NOT_FOUND</td><td>if a FAPI object path was not found during authorization. </td></tr>
  971. </table>
  972. </dd>
  973. </dl>
  974. </div>
  975. </div>
  976. </div><!-- contents -->
  977. </div><!-- doc-content -->
  978. <!-- start footer part -->
  979. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  980. <ul>
  981. <li class="footer">Generated by
  982. <a href="http://www.doxygen.org/index.html">
  983. <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  984. </ul>
  985. </div>
  986. </body>
  987. </html>