group___fapi___provision.html 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291
  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: Fapi_Provision</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___fapi___provision.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">Fapi_Provision<div class="ingroups"><a class="el" href="group__fapi.html">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:ga0c3af8bbfa263c3624790b80ea501ca3"><td class="memItemLeft" align="right" valign="top">TSS2_RC&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___fapi___provision.html#ga0c3af8bbfa263c3624790b80ea501ca3">Fapi_Provision</a> (<a class="el" href="struct_f_a_p_i___c_o_n_t_e_x_t.html">FAPI_CONTEXT</a> *context, char const *authValueEh, char const *authValueSh, char const *authValueLockout)</td></tr>
  73. <tr class="separator:ga0c3af8bbfa263c3624790b80ea501ca3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  74. <tr class="memitem:ga756f5360dcf3102d50293fa5b384305c"><td class="memItemLeft" align="right" valign="top">TSS2_RC&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___fapi___provision.html#ga756f5360dcf3102d50293fa5b384305c">Fapi_Provision_Async</a> (<a class="el" href="struct_f_a_p_i___c_o_n_t_e_x_t.html">FAPI_CONTEXT</a> *context, char const *authValueEh, char const *authValueSh, char const *authValueLockout)</td></tr>
  75. <tr class="separator:ga756f5360dcf3102d50293fa5b384305c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  76. <tr class="memitem:ga292a67c8f444a1f89688dec52e1d773f"><td class="memItemLeft" align="right" valign="top">TSS2_RC&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___fapi___provision.html#ga292a67c8f444a1f89688dec52e1d773f">Fapi_Provision_Finish</a> (<a class="el" href="struct_f_a_p_i___c_o_n_t_e_x_t.html">FAPI_CONTEXT</a> *context)</td></tr>
  77. <tr class="separator:ga292a67c8f444a1f89688dec52e1d773f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  78. </table>
  79. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  80. <p>FAPI functions to invoke Provision either as one-call or in an asynchronous manner. </p>
  81. <h2 class="groupheader">Function Documentation</h2>
  82. <a id="ga0c3af8bbfa263c3624790b80ea501ca3"></a>
  83. <h2 class="memtitle"><span class="permalink"><a href="#ga0c3af8bbfa263c3624790b80ea501ca3">&#9670;&nbsp;</a></span>Fapi_Provision()</h2>
  84. <div class="memitem">
  85. <div class="memproto">
  86. <table class="memname">
  87. <tr>
  88. <td class="memname">Fapi_Provision </td>
  89. <td>(</td>
  90. <td class="paramtype"><a class="el" href="struct_f_a_p_i___c_o_n_t_e_x_t.html">FAPI_CONTEXT</a> *&#160;</td>
  91. <td class="paramname"><em>context</em>, </td>
  92. </tr>
  93. <tr>
  94. <td class="paramkey"></td>
  95. <td></td>
  96. <td class="paramtype">char const *&#160;</td>
  97. <td class="paramname"><em>authValueEh</em>, </td>
  98. </tr>
  99. <tr>
  100. <td class="paramkey"></td>
  101. <td></td>
  102. <td class="paramtype">char const *&#160;</td>
  103. <td class="paramname"><em>authValueSh</em>, </td>
  104. </tr>
  105. <tr>
  106. <td class="paramkey"></td>
  107. <td></td>
  108. <td class="paramtype">char const *&#160;</td>
  109. <td class="paramname"><em>authValueLockout</em>&#160;</td>
  110. </tr>
  111. <tr>
  112. <td></td>
  113. <td>)</td>
  114. <td></td><td></td>
  115. </tr>
  116. </table>
  117. </div><div class="memdoc">
  118. <p>One-Call function for the initial FAPI provisioning.</p>
  119. <p>Provisions a TSS with its TPM. This includes the setting of important passwords and policy settings as well as the readout of the EK and its certificate and the initialization of the system-wide keystore.</p>
  120. <dl class="params"><dt>Parameters</dt><dd>
  121. <table class="params">
  122. <tr><td class="paramdir">[in,out]</td><td class="paramname">context</td><td>The <a class="el" href="struct_f_a_p_i___c_o_n_t_e_x_t.html">FAPI_CONTEXT</a>. </td></tr>
  123. <tr><td class="paramdir">[in]</td><td class="paramname">authValueEh</td><td>The authorization value for the endorsement hierarchy. May be NULL </td></tr>
  124. <tr><td class="paramdir">[in]</td><td class="paramname">authValueSh</td><td>The authorization value for the storage hierarchy. Should be NULL </td></tr>
  125. <tr><td class="paramdir">[in]</td><td class="paramname">authValueLockout</td><td>The authorization value for lockout.</td></tr>
  126. </table>
  127. </dd>
  128. </dl>
  129. <dl class="retval"><dt>Return values</dt><dd>
  130. <table class="retval">
  131. <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>if the function call was a success. </td></tr>
  132. <tr><td class="paramname">TSS2_FAPI_RC_BAD_REFERENCE</td><td>if context is NULL. </td></tr>
  133. <tr><td class="paramname">TSS2_FAPI_RC_BAD_CONTEXT</td><td>if context corruption is detected. </td></tr>
  134. <tr><td class="paramname">TSS2_FAPI_RC_BAD_SEQUENCE</td><td>if the context has an asynchronous operation already pending. </td></tr>
  135. <tr><td class="paramname">TSS2_FAPI_RC_NO_CERT</td><td>if no certificate was found for the computed EK. </td></tr>
  136. <tr><td class="paramname">TSS2_FAPI_RC_BAD_KEY</td><td>if public key of the EK does not match the configured certificate or the configured fingerprint does not match the computed EK. </td></tr>
  137. <tr><td class="paramname">TSS2_FAPI_RC_IO_ERROR</td><td>if the data cannot be saved. </td></tr>
  138. <tr><td class="paramname">TSS2_FAPI_RC_MEMORY</td><td>if the FAPI cannot allocate enough memory for internal operations or return parameters. </td></tr>
  139. <tr><td class="paramname">TSS2_FAPI_RC_NO_TPM</td><td>if FAPI was initialized in no-TPM-mode via its config file. </td></tr>
  140. <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>
  141. <tr><td class="paramname">TSS2_FAPI_RC_BAD_VALUE</td><td>if an invalid value was passed into the function. </td></tr>
  142. <tr><td class="paramname">TSS2_FAPI_RC_AUTHORIZATION_UNKNOWN</td><td>if a required authorization callback is not set. </td></tr>
  143. <tr><td class="paramname">TSS2_FAPI_RC_AUTHORIZATION_FAILED</td><td>if the authorization attempt fails. </td></tr>
  144. <tr><td class="paramname">TSS2_FAPI_RC_GENERAL_FAILURE</td><td>if an internal error occurred. </td></tr>
  145. <tr><td class="paramname">TSS2_FAPI_RC_POLICY_UNKNOWN</td><td>if policy search for a certain policy digest was not successful. </td></tr>
  146. <tr><td class="paramname">TSS2_FAPI_RC_PATH_NOT_FOUND</td><td>if a FAPI object path was not found during authorization. </td></tr>
  147. <tr><td class="paramname">TSS2_FAPI_RC_KEY_NOT_FOUND</td><td>if a key was not found. </td></tr>
  148. <tr><td class="paramname">TSS2_ESYS_RC_*</td><td>possible error codes of ESAPI. </td></tr>
  149. <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>
  150. <tr><td class="paramname">TSS2_FAPI_RC_NOT_PROVISIONED</td><td>FAPI was not provisioned. </td></tr>
  151. <tr><td class="paramname">TSS2_FAPI_RC_PATH_ALREADY_EXISTS</td><td>if the object already exists in object store. </td></tr>
  152. </table>
  153. </dd>
  154. </dl>
  155. </div>
  156. </div>
  157. <a id="ga756f5360dcf3102d50293fa5b384305c"></a>
  158. <h2 class="memtitle"><span class="permalink"><a href="#ga756f5360dcf3102d50293fa5b384305c">&#9670;&nbsp;</a></span>Fapi_Provision_Async()</h2>
  159. <div class="memitem">
  160. <div class="memproto">
  161. <table class="memname">
  162. <tr>
  163. <td class="memname">Fapi_Provision_Async </td>
  164. <td>(</td>
  165. <td class="paramtype"><a class="el" href="struct_f_a_p_i___c_o_n_t_e_x_t.html">FAPI_CONTEXT</a> *&#160;</td>
  166. <td class="paramname"><em>context</em>, </td>
  167. </tr>
  168. <tr>
  169. <td class="paramkey"></td>
  170. <td></td>
  171. <td class="paramtype">char const *&#160;</td>
  172. <td class="paramname"><em>authValueEh</em>, </td>
  173. </tr>
  174. <tr>
  175. <td class="paramkey"></td>
  176. <td></td>
  177. <td class="paramtype">char const *&#160;</td>
  178. <td class="paramname"><em>authValueSh</em>, </td>
  179. </tr>
  180. <tr>
  181. <td class="paramkey"></td>
  182. <td></td>
  183. <td class="paramtype">char const *&#160;</td>
  184. <td class="paramname"><em>authValueLockout</em>&#160;</td>
  185. </tr>
  186. <tr>
  187. <td></td>
  188. <td>)</td>
  189. <td></td><td></td>
  190. </tr>
  191. </table>
  192. </div><div class="memdoc">
  193. <p>Asynchronous function for the initial FAPI provisioning.</p>
  194. <p>Provisions a TSS with its TPM. This includes the setting of important passwords and policy settings as well as the readout of the EK and its certificate and the initialization of the system-wide keystore.</p>
  195. <p>Call Fapi_Provision_Finish to finish the execution of this command.</p>
  196. <dl class="params"><dt>Parameters</dt><dd>
  197. <table class="params">
  198. <tr><td class="paramdir">[in,out]</td><td class="paramname">context</td><td>The <a class="el" href="struct_f_a_p_i___c_o_n_t_e_x_t.html">FAPI_CONTEXT</a>. </td></tr>
  199. <tr><td class="paramdir">[in]</td><td class="paramname">authValueEh</td><td>The authorization value for the endorsement hierarchy. May be NULL </td></tr>
  200. <tr><td class="paramdir">[in]</td><td class="paramname">authValueSh</td><td>The authorization value for the storage hierarchy. Should be NULL </td></tr>
  201. <tr><td class="paramdir">[in]</td><td class="paramname">authValueLockout</td><td>The authorization value for lockout.</td></tr>
  202. </table>
  203. </dd>
  204. </dl>
  205. <dl class="retval"><dt>Return values</dt><dd>
  206. <table class="retval">
  207. <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>if the function call was a success. </td></tr>
  208. <tr><td class="paramname">TSS2_FAPI_RC_BAD_REFERENCE</td><td>if context is NULL. </td></tr>
  209. <tr><td class="paramname">TSS2_FAPI_RC_BAD_CONTEXT</td><td>if context corruption is detected. </td></tr>
  210. <tr><td class="paramname">TSS2_FAPI_RC_BAD_SEQUENCE</td><td>if the context has an asynchronous operation already pending. </td></tr>
  211. <tr><td class="paramname">TSS2_FAPI_RC_IO_ERROR</td><td>if the data cannot be saved. </td></tr>
  212. <tr><td class="paramname">TSS2_FAPI_RC_MEMORY</td><td>if the FAPI cannot allocate enough memory for internal operations or return parameters. </td></tr>
  213. <tr><td class="paramname">TSS2_FAPI_RC_NO_TPM</td><td>if FAPI was initialized in no-TPM-mode via its config file. </td></tr>
  214. <tr><td class="paramname">TSS2_FAPI_RC_BAD_VALUE</td><td>if an invalid value was passed into the function. </td></tr>
  215. <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>
  216. <tr><td class="paramname">TSS2_FAPI_RC_PATH_NOT_FOUND</td><td>if a FAPI object path was not found during authorization. </td></tr>
  217. </table>
  218. </dd>
  219. </dl>
  220. </div>
  221. </div>
  222. <a id="ga292a67c8f444a1f89688dec52e1d773f"></a>
  223. <h2 class="memtitle"><span class="permalink"><a href="#ga292a67c8f444a1f89688dec52e1d773f">&#9670;&nbsp;</a></span>Fapi_Provision_Finish()</h2>
  224. <div class="memitem">
  225. <div class="memproto">
  226. <table class="memname">
  227. <tr>
  228. <td class="memname">Fapi_Provision_Finish </td>
  229. <td>(</td>
  230. <td class="paramtype"><a class="el" href="struct_f_a_p_i___c_o_n_t_e_x_t.html">FAPI_CONTEXT</a> *&#160;</td>
  231. <td class="paramname"><em>context</em></td><td>)</td>
  232. <td></td>
  233. </tr>
  234. </table>
  235. </div><div class="memdoc">
  236. <p>Asynchronous finish function for Fapi_Provision</p>
  237. <p>This function should be called after a previous Fapi_Provision_Async.</p>
  238. <dl class="params"><dt>Parameters</dt><dd>
  239. <table class="params">
  240. <tr><td class="paramdir">[in,out]</td><td class="paramname">context</td><td>The <a class="el" href="struct_f_a_p_i___c_o_n_t_e_x_t.html">FAPI_CONTEXT</a></td></tr>
  241. </table>
  242. </dd>
  243. </dl>
  244. <dl class="retval"><dt>Return values</dt><dd>
  245. <table class="retval">
  246. <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>if the function call was a success. </td></tr>
  247. <tr><td class="paramname">TSS2_FAPI_RC_BAD_REFERENCE</td><td>if context is NULL. </td></tr>
  248. <tr><td class="paramname">TSS2_FAPI_RC_BAD_CONTEXT</td><td>if context corruption is detected. </td></tr>
  249. <tr><td class="paramname">TSS2_FAPI_RC_BAD_SEQUENCE</td><td>if the context has an asynchronous operation already pending. </td></tr>
  250. <tr><td class="paramname">TSS2_FAPI_RC_NO_CERT</td><td>if no certificate was found for the computed EK. </td></tr>
  251. <tr><td class="paramname">TSS2_FAPI_RC_BAD_KEY</td><td>if public key of the EK does not match the configured certificate or the configured fingerprint does not match the computed EK. </td></tr>
  252. <tr><td class="paramname">TSS2_FAPI_RC_IO_ERROR</td><td>if the data cannot be saved. </td></tr>
  253. <tr><td class="paramname">TSS2_FAPI_RC_MEMORY</td><td>if the FAPI cannot allocate enough memory for internal operations or return parameters. </td></tr>
  254. <tr><td class="paramname">TSS2_FAPI_RC_TRY_AGAIN</td><td>if the asynchronous operation is not yet complete. Call this function again later. </td></tr>
  255. <tr><td class="paramname">TSS2_FAPI_RC_BAD_VALUE</td><td>if an invalid value was passed into the function. </td></tr>
  256. <tr><td class="paramname">TSS2_FAPI_RC_AUTHORIZATION_UNKNOWN</td><td>if a required authorization callback is not set. </td></tr>
  257. <tr><td class="paramname">TSS2_FAPI_RC_AUTHORIZATION_FAILED</td><td>if the authorization attempt fails. </td></tr>
  258. <tr><td class="paramname">TSS2_FAPI_RC_GENERAL_FAILURE</td><td>if an internal error occurred. </td></tr>
  259. <tr><td class="paramname">TSS2_FAPI_RC_POLICY_UNKNOWN</td><td>if policy search for a certain policy digest was not successful. </td></tr>
  260. <tr><td class="paramname">TSS2_FAPI_RC_PATH_NOT_FOUND</td><td>if a FAPI object path was not found during authorization. </td></tr>
  261. <tr><td class="paramname">TSS2_FAPI_RC_KEY_NOT_FOUND</td><td>if a key was not found. </td></tr>
  262. <tr><td class="paramname">TSS2_ESYS_RC_*</td><td>possible error codes of ESAPI. </td></tr>
  263. <tr><td class="paramname">TSS2_FAPI_RC_NOT_PROVISIONED</td><td>FAPI was not provisioned. </td></tr>
  264. <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>
  265. <tr><td class="paramname">TSS2_FAPI_RC_PATH_ALREADY_EXISTS</td><td>if the object already exists in object store. </td></tr>
  266. </table>
  267. </dd>
  268. </dl>
  269. <p>&lt; Certificates will be stored at even address</p>
  270. <p>&lt; RSA template</p>
  271. <p>&lt; ECC template </p>
  272. </div>
  273. </div>
  274. </div><!-- contents -->
  275. </div><!-- doc-content -->
  276. <!-- start footer part -->
  277. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  278. <ul>
  279. <li class="footer">Generated by
  280. <a href="http://www.doxygen.org/index.html">
  281. <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  282. </ul>
  283. </div>
  284. </body>
  285. </html>