1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417 |
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
- <meta name="generator" content="Doxygen 1.8.13"/>
- <meta name="viewport" content="width=device-width, initial-scale=1"/>
- <title>tpm2-tss: Internal Cryptographic Backend</title>
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="jquery.js"></script>
- <script type="text/javascript" src="dynsections.js"></script>
- <link href="navtree.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="resize.js"></script>
- <script type="text/javascript" src="navtreedata.js"></script>
- <script type="text/javascript" src="navtree.js"></script>
- <script type="text/javascript">
- $(document).ready(initResizable);
- </script>
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
- </head>
- <body>
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
- <div id="titlearea">
- <table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">tpm2-tss
-  <span id="projectnumber">3.2.0</span>
- </div>
- <div id="projectbrief">TPM Software stack 2.0 TCG spec compliant implementation</div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <!-- end header part -->
- <!-- Generated by Doxygen 1.8.13 -->
- <script type="text/javascript" src="menudata.js"></script>
- <script type="text/javascript" src="menu.js"></script>
- <script type="text/javascript">
- $(function() {
- initMenu('',false,false,'search.php','Search');
- });
- </script>
- <div id="main-nav"></div>
- </div><!-- top -->
- <div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
- </div>
- <script type="text/javascript">
- $(document).ready(function(){initNavTree('group__iesys__crypto.html','');});
- </script>
- <div id="doc-content">
- <div class="header">
- <div class="summary">
- <a href="#func-members">Functions</a> </div>
- <div class="headertitle">
- <div class="title">Internal Cryptographic Backend<div class="ingroups"><a class="el" href="group__esys.html">Enhanced System API</a> » <a class="el" href="group__iesys.html">Internals of Enhanced System API</a></div></div> </div>
- </div><!--header-->
- <div class="contents">
- <table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
- Functions</h2></td></tr>
- <tr class="memitem:gaecbc62627049d1806648c9ecf8a52196"><td class="memItemLeft" align="right" valign="top">TSS2_RC </td><td class="memItemRight" valign="bottom"><a class="el" href="group__iesys__crypto.html#gaecbc62627049d1806648c9ecf8a52196">iesys_crypto_hash_get_digest_size</a> (TPM2_ALG_ID hashAlg, size_t *size)</td></tr>
- <tr class="separator:gaecbc62627049d1806648c9ecf8a52196"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga8a00762587e4d99700ad80ad448922b6"><td class="memItemLeft" align="right" valign="top">TSS2_RC </td><td class="memItemRight" valign="bottom"><a class="el" href="group__iesys__crypto.html#ga8a00762587e4d99700ad80ad448922b6">iesys_cryptossl_hash_start</a> (<a class="el" href="struct___i_e_s_y_s___c_r_y_p_t_o___c_o_n_t_e_x_t.html">IESYS_CRYPTO_CONTEXT_BLOB</a> **context, TPM2_ALG_ID hashAlg)</td></tr>
- <tr class="separator:ga8a00762587e4d99700ad80ad448922b6"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga7db67b4e462804deb312b578dd7d23b3"><td class="memItemLeft" align="right" valign="top">TSS2_RC </td><td class="memItemRight" valign="bottom"><a class="el" href="group__iesys__crypto.html#ga7db67b4e462804deb312b578dd7d23b3">iesys_cryptossl_hash_update</a> (<a class="el" href="struct___i_e_s_y_s___c_r_y_p_t_o___c_o_n_t_e_x_t.html">IESYS_CRYPTO_CONTEXT_BLOB</a> *context, const uint8_t *buffer, size_t size)</td></tr>
- <tr class="separator:ga7db67b4e462804deb312b578dd7d23b3"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga16999a8a80afd7a4c3c6a91c457e9ed3"><td class="memItemLeft" align="right" valign="top">TSS2_RC </td><td class="memItemRight" valign="bottom"><a class="el" href="group__iesys__crypto.html#ga16999a8a80afd7a4c3c6a91c457e9ed3">iesys_cryptossl_hash_update2b</a> (<a class="el" href="struct___i_e_s_y_s___c_r_y_p_t_o___c_o_n_t_e_x_t.html">IESYS_CRYPTO_CONTEXT_BLOB</a> *context, TPM2B *b)</td></tr>
- <tr class="separator:ga16999a8a80afd7a4c3c6a91c457e9ed3"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga35e28a2962a090e231bb4a8395a449d3"><td class="memItemLeft" align="right" valign="top">TSS2_RC </td><td class="memItemRight" valign="bottom"><a class="el" href="group__iesys__crypto.html#ga35e28a2962a090e231bb4a8395a449d3">iesys_cryptossl_hash_finish</a> (<a class="el" href="struct___i_e_s_y_s___c_r_y_p_t_o___c_o_n_t_e_x_t.html">IESYS_CRYPTO_CONTEXT_BLOB</a> **context, uint8_t *buffer, size_t *size)</td></tr>
- <tr class="separator:ga35e28a2962a090e231bb4a8395a449d3"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga82c55cd4b4a10b6f861d0e7299c3a56f"><td class="memItemLeft" align="right" valign="top">TSS2_RC </td><td class="memItemRight" valign="bottom"><a class="el" href="group__iesys__crypto.html#ga82c55cd4b4a10b6f861d0e7299c3a56f">iesys_cryptossl_hash_finish2b</a> (<a class="el" href="struct___i_e_s_y_s___c_r_y_p_t_o___c_o_n_t_e_x_t.html">IESYS_CRYPTO_CONTEXT_BLOB</a> **context, TPM2B *b)</td></tr>
- <tr class="separator:ga82c55cd4b4a10b6f861d0e7299c3a56f"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga0d7703e693a61c7786b654021b138461"><td class="memItemLeft" align="right" valign="top">TSS2_RC </td><td class="memItemRight" valign="bottom"><a class="el" href="group__iesys__crypto.html#ga0d7703e693a61c7786b654021b138461">iesys_cryptossl_hmac_start</a> (<a class="el" href="struct___i_e_s_y_s___c_r_y_p_t_o___c_o_n_t_e_x_t.html">IESYS_CRYPTO_CONTEXT_BLOB</a> **context, TPM2_ALG_ID hashAlg, const uint8_t *key, size_t size)</td></tr>
- <tr class="separator:ga0d7703e693a61c7786b654021b138461"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga16cf8a0028c642060629ba0e3571874d"><td class="memItemLeft" align="right" valign="top"><a id="ga16cf8a0028c642060629ba0e3571874d"></a>
- TSS2_RC </td><td class="memItemRight" valign="bottom"><b>iesys_cryptossl_hmac_start2b</b> (<a class="el" href="struct___i_e_s_y_s___c_r_y_p_t_o___c_o_n_t_e_x_t.html">IESYS_CRYPTO_CONTEXT_BLOB</a> **context, TPM2_ALG_ID hmacAlg, TPM2B *b)</td></tr>
- <tr class="separator:ga16cf8a0028c642060629ba0e3571874d"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga38c55dcb7af1740f2c88c6a13714d0f4"><td class="memItemLeft" align="right" valign="top">TSS2_RC </td><td class="memItemRight" valign="bottom"><a class="el" href="group__iesys__crypto.html#ga38c55dcb7af1740f2c88c6a13714d0f4">iesys_cryptossl_hmac_update</a> (<a class="el" href="struct___i_e_s_y_s___c_r_y_p_t_o___c_o_n_t_e_x_t.html">IESYS_CRYPTO_CONTEXT_BLOB</a> *context, const uint8_t *buffer, size_t size)</td></tr>
- <tr class="separator:ga38c55dcb7af1740f2c88c6a13714d0f4"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga293339e25fee12b919a656c8f4b66f90"><td class="memItemLeft" align="right" valign="top">TSS2_RC </td><td class="memItemRight" valign="bottom"><a class="el" href="group__iesys__crypto.html#ga293339e25fee12b919a656c8f4b66f90">iesys_cryptossl_hmac_update2b</a> (<a class="el" href="struct___i_e_s_y_s___c_r_y_p_t_o___c_o_n_t_e_x_t.html">IESYS_CRYPTO_CONTEXT_BLOB</a> *context, TPM2B *b)</td></tr>
- <tr class="separator:ga293339e25fee12b919a656c8f4b66f90"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga139ec4dc810310a89bf60fa28f146e96"><td class="memItemLeft" align="right" valign="top">TSS2_RC </td><td class="memItemRight" valign="bottom"><a class="el" href="group__iesys__crypto.html#ga139ec4dc810310a89bf60fa28f146e96">iesys_cryptossl_hmac_finish</a> (<a class="el" href="struct___i_e_s_y_s___c_r_y_p_t_o___c_o_n_t_e_x_t.html">IESYS_CRYPTO_CONTEXT_BLOB</a> **context, uint8_t *buffer, size_t *size)</td></tr>
- <tr class="separator:ga139ec4dc810310a89bf60fa28f146e96"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga7c38dee8ff84865ea817637906a1705b"><td class="memItemLeft" align="right" valign="top">TSS2_RC </td><td class="memItemRight" valign="bottom"><a class="el" href="group__iesys__crypto.html#ga7c38dee8ff84865ea817637906a1705b">iesys_cryptossl_hmac_finish2b</a> (<a class="el" href="struct___i_e_s_y_s___c_r_y_p_t_o___c_o_n_t_e_x_t.html">IESYS_CRYPTO_CONTEXT_BLOB</a> **context, TPM2B *hmac)</td></tr>
- <tr class="separator:ga7c38dee8ff84865ea817637906a1705b"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga55c3c4be43371ff9dc984434c686831c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__iesys__crypto.html#ga55c3c4be43371ff9dc984434c686831c">iesys_cryptossl_hmac_abort</a> (<a class="el" href="struct___i_e_s_y_s___c_r_y_p_t_o___c_o_n_t_e_x_t.html">IESYS_CRYPTO_CONTEXT_BLOB</a> **context)</td></tr>
- <tr class="separator:ga55c3c4be43371ff9dc984434c686831c"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga868c435530ad744767e1c72b1002639c"><td class="memItemLeft" align="right" valign="top">TSS2_RC </td><td class="memItemRight" valign="bottom"><a class="el" href="group__iesys__crypto.html#ga868c435530ad744767e1c72b1002639c">iesys_crypto_pHash</a> (TPM2_ALG_ID alg, const uint8_t rcBuffer[4], const uint8_t ccBuffer[4], const TPM2B_NAME *name1, const TPM2B_NAME *name2, const TPM2B_NAME *name3, const uint8_t *pBuffer, size_t pBuffer_size, uint8_t *pHash, size_t *pHash_size)</td></tr>
- <tr class="separator:ga868c435530ad744767e1c72b1002639c"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:gadff77df69cec057dd6895596a3995be1"><td class="memItemLeft" align="right" valign="top">TSS2_RC </td><td class="memItemRight" valign="bottom"><a class="el" href="group__iesys__crypto.html#gadff77df69cec057dd6895596a3995be1">iesys_crypto_authHmac</a> (TPM2_ALG_ID alg, uint8_t *hmacKey, size_t hmacKeySize, const uint8_t *pHash, size_t pHash_size, const TPM2B_NONCE *nonceNewer, const TPM2B_NONCE *nonceOlder, const TPM2B_NONCE *nonceDecrypt, const TPM2B_NONCE *nonceEncrypt, TPMA_SESSION sessionAttributes, TPM2B_AUTH *hmac)</td></tr>
- <tr class="separator:gadff77df69cec057dd6895596a3995be1"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga7d954265e28d2891f6700fa514df3f10"><td class="memItemLeft" align="right" valign="top">TSS2_RC </td><td class="memItemRight" valign="bottom"><a class="el" href="group__iesys__crypto.html#ga7d954265e28d2891f6700fa514df3f10">iesys_cryptossl_random2b</a> (TPM2B_NONCE *nonce, size_t num_bytes)</td></tr>
- <tr class="separator:ga7d954265e28d2891f6700fa514df3f10"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:gab23845f7778d674b6c08d6d1f2ed1bce"><td class="memItemLeft" align="right" valign="top">TSS2_RC </td><td class="memItemRight" valign="bottom"><a class="el" href="group__iesys__crypto.html#gab23845f7778d674b6c08d6d1f2ed1bce">iesys_cryptossl_pk_encrypt</a> (TPM2B_PUBLIC *pub_tpm_key, size_t in_size, BYTE *in_buffer, size_t max_out_size, BYTE *out_buffer, size_t *out_size, const char *label)</td></tr>
- <tr class="separator:gab23845f7778d674b6c08d6d1f2ed1bce"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga60a41b048b2b032ad14fd5b0d4ab3416"><td class="memItemLeft" align="right" valign="top">TSS2_RC </td><td class="memItemRight" valign="bottom"><a class="el" href="group__iesys__crypto.html#ga60a41b048b2b032ad14fd5b0d4ab3416">iesys_crypto_KDFaHmac</a> (TPM2_ALG_ID alg, uint8_t *hmacKey, size_t hmacKeySize, uint32_t counter, const char *label, TPM2B_NONCE *contextU, TPM2B_NONCE *contextV, uint32_t bitlength, uint8_t *hmac, size_t *hmacSize)</td></tr>
- <tr class="separator:ga60a41b048b2b032ad14fd5b0d4ab3416"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga08456301649c3335e660f6674fd227b5"><td class="memItemLeft" align="right" valign="top">TSS2_RC </td><td class="memItemRight" valign="bottom"><a class="el" href="group__iesys__crypto.html#ga08456301649c3335e660f6674fd227b5">iesys_crypto_KDFa</a> (TPM2_ALG_ID hashAlg, uint8_t *hmacKey, size_t hmacKeySize, const char *label, TPM2B_NONCE *contextU, TPM2B_NONCE *contextV, uint32_t bitLength, uint32_t *counterInOut, BYTE *outKey, BOOL use_digest_size)</td></tr>
- <tr class="separator:ga08456301649c3335e660f6674fd227b5"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga457c585adbb8703ba5941eb0d6cc6a43"><td class="memItemLeft" align="right" valign="top">TSS2_RC </td><td class="memItemRight" valign="bottom"><a class="el" href="group__iesys__crypto.html#ga457c585adbb8703ba5941eb0d6cc6a43">iesys_crypto_KDFe</a> (TPM2_ALG_ID hashAlg, TPM2B_ECC_PARAMETER *Z, const char *label, TPM2B_ECC_PARAMETER *partyUInfo, TPM2B_ECC_PARAMETER *partyVInfo, UINT32 bit_size, BYTE *key)</td></tr>
- <tr class="separator:ga457c585adbb8703ba5941eb0d6cc6a43"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:gaae1d6a57770b8e1b665bf27a06899bc6"><td class="memItemLeft" align="right" valign="top">TSS2_RC </td><td class="memItemRight" valign="bottom"><a class="el" href="group__iesys__crypto.html#gaae1d6a57770b8e1b665bf27a06899bc6">iesys_xor_parameter_obfuscation</a> (TPM2_ALG_ID hash_alg, uint8_t *key, size_t key_size, TPM2B_NONCE *contextU, TPM2B_NONCE *contextV, BYTE *data, size_t data_size)</td></tr>
- <tr class="separator:gaae1d6a57770b8e1b665bf27a06899bc6"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:gacc3d21e92aa154a09a3e8273de9f525e"><td class="memItemLeft" align="right" valign="top">TSS2_RC </td><td class="memItemRight" valign="bottom"><a class="el" href="group__iesys__crypto.html#gacc3d21e92aa154a09a3e8273de9f525e">iesys_cryptossl_get_ecdh_point</a> (TPM2B_PUBLIC *key, size_t max_out_size, TPM2B_ECC_PARAMETER *Z, TPMS_ECC_POINT *Q, BYTE *out_buffer, size_t *out_size)</td></tr>
- <tr class="separator:gacc3d21e92aa154a09a3e8273de9f525e"><td class="memSeparator" colspan="2"> </td></tr>
- </table>
- <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
- <p>The types and functions used internally by ESAPI for cryptographic operations. Multiple implementations of these functions may exist for different cryptographic backends. </p>
- <h2 class="groupheader">Function Documentation</h2>
- <a id="gadff77df69cec057dd6895596a3995be1"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#gadff77df69cec057dd6895596a3995be1">◆ </a></span>iesys_crypto_authHmac()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">TSS2_RC iesys_crypto_authHmac </td>
- <td>(</td>
- <td class="paramtype">TPM2_ALG_ID </td>
- <td class="paramname"><em>alg</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t * </td>
- <td class="paramname"><em>hmacKey</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>hmacKeySize</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const uint8_t * </td>
- <td class="paramname"><em>pHash</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>pHash_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const TPM2B_NONCE * </td>
- <td class="paramname"><em>nonceNewer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const TPM2B_NONCE * </td>
- <td class="paramname"><em>nonceOlder</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const TPM2B_NONCE * </td>
- <td class="paramname"><em>nonceDecrypt</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const TPM2B_NONCE * </td>
- <td class="paramname"><em>nonceEncrypt</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">TPMA_SESSION </td>
- <td class="paramname"><em>sessionAttributes</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">TPM2B_AUTH * </td>
- <td class="paramname"><em>hmac</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Compute the HMAC for authorization.</p>
- <p>Based on the session nonces, caller nonce, TPM nonce, if used encryption and decryption nonce, the command parameter hash, and the session attributes the HMAC used for authorization is computed. </p><dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">alg</td><td>The hash algorithm used for HMAC computation. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">hmacKey</td><td>The HMAC key byte buffer. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">hmacKeySize</td><td>The size of the HMAC key byte buffer. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">pHash</td><td>The command parameter hash byte buffer. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">pHash_size</td><td>The size of the command parameter hash byte buffer. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">nonceNewer</td><td>The TPM nonce. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">nonceOlder</td><td>The caller nonce. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">nonceDecrypt</td><td>The decrypt nonce (NULL if not used). </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">nonceEncrypt</td><td>The encrypt nonce (NULL if not used). </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">sessionAttributes</td><td>The attributes used for the current authentication. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">hmac</td><td>The computed HMAC. </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>Return values</dt><dd>
- <table class="retval">
- <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>on success </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_BAD_REFERENCE</td><td>If a pointer is invalid. </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a id="gaecbc62627049d1806648c9ecf8a52196"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#gaecbc62627049d1806648c9ecf8a52196">◆ </a></span>iesys_crypto_hash_get_digest_size()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">TSS2_RC iesys_crypto_hash_get_digest_size </td>
- <td>(</td>
- <td class="paramtype">TPM2_ALG_ID </td>
- <td class="paramname"><em>hashAlg</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t * </td>
- <td class="paramname"><em>size</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Provide the digest size for a given hash algorithm.</p>
- <p>This function provides the size of the digest for a given hash algorithm.</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">hashAlg</td><td>The hash algorithm to get the size for. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">size</td><td>The side of a digest of the hash algorithm. </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>Return values</dt><dd>
- <table class="retval">
- <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>on success. </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_BAD_VALUE</td><td>if hashAlg is unknown or unsupported. </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a id="ga08456301649c3335e660f6674fd227b5"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ga08456301649c3335e660f6674fd227b5">◆ </a></span>iesys_crypto_KDFa()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">TSS2_RC iesys_crypto_KDFa </td>
- <td>(</td>
- <td class="paramtype">TPM2_ALG_ID </td>
- <td class="paramname"><em>hashAlg</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t * </td>
- <td class="paramname"><em>hmacKey</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>hmacKeySize</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const char * </td>
- <td class="paramname"><em>label</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">TPM2B_NONCE * </td>
- <td class="paramname"><em>contextU</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">TPM2B_NONCE * </td>
- <td class="paramname"><em>contextV</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint32_t </td>
- <td class="paramname"><em>bitLength</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint32_t * </td>
- <td class="paramname"><em>counterInOut</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">BYTE * </td>
- <td class="paramname"><em>outKey</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">BOOL </td>
- <td class="paramname"><em>use_digest_size</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>KDFa Key derivation.</p>
- <p>Except of ECDH this function is used for key derivation. </p><dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">hashAlg</td><td>The hash algorithm to use. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">hmacKey</td><td>The hmacKey used in KDFa. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">hmacKeySize</td><td>The size of the HMAC key. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">label</td><td>Indicates the use of the produced key. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">contextU,contextV</td><td>are used for construction of a binary string containing information related to the derived key. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">bitLength</td><td>The size of generated key in bits. </td></tr>
- <tr><td class="paramdir">[in,out]</td><td class="paramname">counterInOut</td><td>Counter for the KDFa iterations. If set, the value will be used for the firt iteration step. The final counter value will be written to counterInOut. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">outKey</td><td>Byte buffer for the derived key (caller-allocated). </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">use_digest_size</td><td>Indicate whether the digest size of hashAlg is used as size of the generated key or the bitLength parameter is used. </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>Return values</dt><dd>
- <table class="retval">
- <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>on success. </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_BAD_VALUE</td><td>if hashAlg is unknown or unsupported. </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a id="ga60a41b048b2b032ad14fd5b0d4ab3416"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ga60a41b048b2b032ad14fd5b0d4ab3416">◆ </a></span>iesys_crypto_KDFaHmac()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">TSS2_RC iesys_crypto_KDFaHmac </td>
- <td>(</td>
- <td class="paramtype">TPM2_ALG_ID </td>
- <td class="paramname"><em>alg</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t * </td>
- <td class="paramname"><em>hmacKey</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>hmacKeySize</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint32_t </td>
- <td class="paramname"><em>counter</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const char * </td>
- <td class="paramname"><em>label</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">TPM2B_NONCE * </td>
- <td class="paramname"><em>contextU</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">TPM2B_NONCE * </td>
- <td class="paramname"><em>contextV</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint32_t </td>
- <td class="paramname"><em>bitlength</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t * </td>
- <td class="paramname"><em>hmac</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t * </td>
- <td class="paramname"><em>hmacSize</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>HMAC computation for inner loop of KDFa key derivation.</p>
- <p>Except of ECDH this function is used for key derivation. </p><dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">alg</td><td>The algorithm used for the HMAC. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">hmacKey</td><td>The hmacKey used in KDFa. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">hmacKeySize</td><td>The size of the HMAC key. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">counter</td><td>The curren iteration step. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">label</td><td>Indicates the use of the produced key. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">contextU,contextV</td><td>are used for construction of a binary string containing information related to the derived key. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">bitlength</td><td>The size of the generated key in bits. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">hmac</td><td>Byte buffer for the generated HMAC key (caller-allocated). </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">hmacSize</td><td>Size of the generated HMAC key. </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>Return values</dt><dd>
- <table class="retval">
- <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>on success. </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_BAD_REFERENCE</td><td>for invalid parameters. </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a id="ga457c585adbb8703ba5941eb0d6cc6a43"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ga457c585adbb8703ba5941eb0d6cc6a43">◆ </a></span>iesys_crypto_KDFe()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">TSS2_RC iesys_crypto_KDFe </td>
- <td>(</td>
- <td class="paramtype">TPM2_ALG_ID </td>
- <td class="paramname"><em>hashAlg</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">TPM2B_ECC_PARAMETER * </td>
- <td class="paramname"><em>Z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const char * </td>
- <td class="paramname"><em>label</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">TPM2B_ECC_PARAMETER * </td>
- <td class="paramname"><em>partyUInfo</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">TPM2B_ECC_PARAMETER * </td>
- <td class="paramname"><em>partyVInfo</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">UINT32 </td>
- <td class="paramname"><em>bit_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">BYTE * </td>
- <td class="paramname"><em>key</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Compute KDFe as described in TPM spec part 1 C 6.1</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">hashAlg</td><td>[in] The nameAlg of the recipient key. </td></tr>
- <tr><td class="paramname">Z</td><td>[in] the x coordinate (xP) of the product (P) of a public point and a private key. </td></tr>
- <tr><td class="paramname">label</td><td>[in] KDF label. </td></tr>
- <tr><td class="paramname">partyUInfo</td><td>[in] The x-coordinate of the secret exchange value (Qe,U). </td></tr>
- <tr><td class="paramname">partyVInfo</td><td>[in] The x-coordinate of a public key (Qs,V). </td></tr>
- <tr><td class="paramname">bit_size</td><td>[in] Bit size of generated key. </td></tr>
- <tr><td class="paramname">key</td><td>[out] Key buffer. </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>Return values</dt><dd>
- <table class="retval">
- <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>on success </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_BAD_REFERENCE</td><td>for invalid parameters </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_MEMORY</td><td>Memory cannot be allocated. </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a id="ga868c435530ad744767e1c72b1002639c"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ga868c435530ad744767e1c72b1002639c">◆ </a></span>iesys_crypto_pHash()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">TSS2_RC iesys_crypto_pHash </td>
- <td>(</td>
- <td class="paramtype">TPM2_ALG_ID </td>
- <td class="paramname"><em>alg</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const uint8_t </td>
- <td class="paramname"><em>rcBuffer</em>[4], </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const uint8_t </td>
- <td class="paramname"><em>ccBuffer</em>[4], </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const TPM2B_NAME * </td>
- <td class="paramname"><em>name1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const TPM2B_NAME * </td>
- <td class="paramname"><em>name2</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const TPM2B_NAME * </td>
- <td class="paramname"><em>name3</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const uint8_t * </td>
- <td class="paramname"><em>pBuffer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>pBuffer_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t * </td>
- <td class="paramname"><em>pHash</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t * </td>
- <td class="paramname"><em>pHash_size</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Compute the command or response parameter hash.</p>
- <p>These hashes are needed for the computation of the HMAC used for the authorization of commands, or for the HMAC used for checking the responses. The name parameters are only used for the command parameter hash (cp) and must be NULL for the computation of the response parameter rp hash (rp). </p><dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">alg</td><td>The hash algorithm. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">rcBuffer</td><td>The response code in marshaled form. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">ccBuffer</td><td>The command code in marshaled form. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">name1,name2,name3</td><td>The names associated with the corresponding handle. Must be NULL if no handle is passed. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">pBuffer</td><td>The byte buffer or the command or the response. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">pBuffer_size</td><td>The size of the command or response. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">pHash</td><td>The result digest. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">pHash_size</td><td>The size of the result digest. </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>Return values</dt><dd>
- <table class="retval">
- <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>on success. </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_BAD_REFERENCE</td><td>for invalid parameters. </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a id="gacc3d21e92aa154a09a3e8273de9f525e"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#gacc3d21e92aa154a09a3e8273de9f525e">◆ </a></span>iesys_cryptossl_get_ecdh_point()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">TSS2_RC iesys_cryptossl_get_ecdh_point </td>
- <td>(</td>
- <td class="paramtype">TPM2B_PUBLIC * </td>
- <td class="paramname"><em>key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>max_out_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">TPM2B_ECC_PARAMETER * </td>
- <td class="paramname"><em>Z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">TPMS_ECC_POINT * </td>
- <td class="paramname"><em>Q</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">BYTE * </td>
- <td class="paramname"><em>out_buffer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t * </td>
- <td class="paramname"><em>out_size</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Computation of ephemeral ECC key and shared secret Z.</p>
- <p>According to the description in TPM spec part 1 C 6.1 a shared secret between application and TPM is computed (ECDH). An ephemeral ECC key and a TPM keyare used for the ECDH key exchange. </p><dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>The key to be used for ECDH key exchange. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">max_out_size</td><td>the max size for the output of the public key of the computed ephemeral key. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">Z</td><td>The computed shared secret. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">Q</td><td>The public part of the ephemeral key in TPM format. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">out_buffer</td><td>The public part of the ephemeral key will be marshaled to this buffer. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">out_size</td><td>The size of the marshaled output. </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>Return values</dt><dd>
- <table class="retval">
- <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>on success </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_BAD_VALUE</td><td>The algorithm of key is not implemented. </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_GENERAL_FAILURE</td><td>The internal crypto engine failed. </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a id="ga35e28a2962a090e231bb4a8395a449d3"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ga35e28a2962a090e231bb4a8395a449d3">◆ </a></span>iesys_cryptossl_hash_finish()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">TSS2_RC iesys_cryptossl_hash_finish </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="struct___i_e_s_y_s___c_r_y_p_t_o___c_o_n_t_e_x_t.html">IESYS_CRYPTO_CONTEXT_BLOB</a> ** </td>
- <td class="paramname"><em>context</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t * </td>
- <td class="paramname"><em>buffer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t * </td>
- <td class="paramname"><em>size</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Get the digest value of a digest object and close the context.</p>
- <p>The digest value will written to a passed buffer and the resources of the digest object are released. </p><dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in,out]</td><td class="paramname">context</td><td>The context of the digest object to be released </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">buffer</td><td>The buffer for the digest value (caller-allocated). </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">size</td><td>The size of the digest. </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>Return values</dt><dd>
- <table class="retval">
- <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>on success. </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_BAD_REFERENCE</td><td>for invalid parameters. </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_GENERAL_FAILURE</td><td>for errors of the crypto library. </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a id="ga82c55cd4b4a10b6f861d0e7299c3a56f"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ga82c55cd4b4a10b6f861d0e7299c3a56f">◆ </a></span>iesys_cryptossl_hash_finish2b()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">TSS2_RC iesys_cryptossl_hash_finish2b </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="struct___i_e_s_y_s___c_r_y_p_t_o___c_o_n_t_e_x_t.html">IESYS_CRYPTO_CONTEXT_BLOB</a> ** </td>
- <td class="paramname"><em>context</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">TPM2B * </td>
- <td class="paramname"><em>b</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>void iesys_cryptossl_hash_abort(IESYS_CRYPTO_CONTEXT_BLOB **context) </p>
- </div>
- </div>
- <a id="ga8a00762587e4d99700ad80ad448922b6"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ga8a00762587e4d99700ad80ad448922b6">◆ </a></span>iesys_cryptossl_hash_start()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">TSS2_RC iesys_cryptossl_hash_start </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="struct___i_e_s_y_s___c_r_y_p_t_o___c_o_n_t_e_x_t.html">IESYS_CRYPTO_CONTEXT_BLOB</a> ** </td>
- <td class="paramname"><em>context</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">TPM2_ALG_ID </td>
- <td class="paramname"><em>hashAlg</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Provide the context for the computation of a hash digest.</p>
- <p>The context will be created and initialized according to the hash function. </p><dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[out]</td><td class="paramname">context</td><td>The created context (callee-allocated). </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">hashAlg</td><td>The hash algorithm for the creation of the context. </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>Return values</dt><dd>
- <table class="retval">
- <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>on success. </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_BAD_VALUE</td><td>or TSS2_ESYS_RC_BAD_REFERENCE for invalid parameters. </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_MEMORY</td><td>Memory cannot be allocated. </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_GENERAL_FAILURE</td><td>for errors of the crypto library. </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a id="ga7db67b4e462804deb312b578dd7d23b3"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ga7db67b4e462804deb312b578dd7d23b3">◆ </a></span>iesys_cryptossl_hash_update()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">TSS2_RC iesys_cryptossl_hash_update </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="struct___i_e_s_y_s___c_r_y_p_t_o___c_o_n_t_e_x_t.html">IESYS_CRYPTO_CONTEXT_BLOB</a> * </td>
- <td class="paramname"><em>context</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const uint8_t * </td>
- <td class="paramname"><em>buffer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>size</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Update the digest value of a digest object from a byte buffer.</p>
- <p>The context of a digest object will be updated according to the hash algorithm of the context. < </p><dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in,out]</td><td class="paramname">context</td><td>The context of the digest object which will be updated. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">buffer</td><td>The data for the update. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>The size of the data buffer. </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>Return values</dt><dd>
- <table class="retval">
- <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>on success. </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_BAD_REFERENCE</td><td>for invalid parameters. </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a id="ga16999a8a80afd7a4c3c6a91c457e9ed3"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ga16999a8a80afd7a4c3c6a91c457e9ed3">◆ </a></span>iesys_cryptossl_hash_update2b()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">TSS2_RC iesys_cryptossl_hash_update2b </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="struct___i_e_s_y_s___c_r_y_p_t_o___c_o_n_t_e_x_t.html">IESYS_CRYPTO_CONTEXT_BLOB</a> * </td>
- <td class="paramname"><em>context</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">TPM2B * </td>
- <td class="paramname"><em>b</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Update the digest value of a digest object from a TPM2B object.</p>
- <p>The context of a digest object will be updated according to the hash algorithm of the context. </p><dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in,out]</td><td class="paramname">context</td><td>The context of the digest object which will be updated. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>The TPM2B object for the update. </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>Return values</dt><dd>
- <table class="retval">
- <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>on success. </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_BAD_REFERENCE</td><td>for invalid parameters. </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a id="ga55c3c4be43371ff9dc984434c686831c"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ga55c3c4be43371ff9dc984434c686831c">◆ </a></span>iesys_cryptossl_hmac_abort()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void iesys_cryptossl_hmac_abort </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="struct___i_e_s_y_s___c_r_y_p_t_o___c_o_n_t_e_x_t.html">IESYS_CRYPTO_CONTEXT_BLOB</a> ** </td>
- <td class="paramname"><em>context</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Release the resources of an HAMC object.</p>
- <p>The assigned resources will be released and the context will be set to NULL. </p><dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in,out]</td><td class="paramname">context</td><td>The context of the HMAC object. </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a id="ga139ec4dc810310a89bf60fa28f146e96"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ga139ec4dc810310a89bf60fa28f146e96">◆ </a></span>iesys_cryptossl_hmac_finish()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">TSS2_RC iesys_cryptossl_hmac_finish </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="struct___i_e_s_y_s___c_r_y_p_t_o___c_o_n_t_e_x_t.html">IESYS_CRYPTO_CONTEXT_BLOB</a> ** </td>
- <td class="paramname"><em>context</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t * </td>
- <td class="paramname"><em>buffer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t * </td>
- <td class="paramname"><em>size</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Write the HMAC digest value to a byte buffer and close the context.</p>
- <p>The digest value will written to a passed buffer and the resources of the HMAC object are released. </p><dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in,out]</td><td class="paramname">context</td><td>The context of the HMAC object. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">buffer</td><td>The buffer for the digest value (caller-allocated). </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">size</td><td>The size of the digest. </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>Return values</dt><dd>
- <table class="retval">
- <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>on success. </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_BAD_REFERENCE</td><td>for invalid parameters. </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_BAD_SIZE</td><td>If the size passed is lower than the HMAC length. </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_GENERAL_FAILURE</td><td>for errors of the crypto library. </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a id="ga7c38dee8ff84865ea817637906a1705b"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ga7c38dee8ff84865ea817637906a1705b">◆ </a></span>iesys_cryptossl_hmac_finish2b()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">TSS2_RC iesys_cryptossl_hmac_finish2b </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="struct___i_e_s_y_s___c_r_y_p_t_o___c_o_n_t_e_x_t.html">IESYS_CRYPTO_CONTEXT_BLOB</a> ** </td>
- <td class="paramname"><em>context</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">TPM2B * </td>
- <td class="paramname"><em>hmac</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Write the HMAC digest value to a TPM2B object and close the context.</p>
- <p>The digest value will written to a passed TPM2B object and the resources of the HMAC object are released. </p><dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in,out]</td><td class="paramname">context</td><td>The context of the HMAC object. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">hmac</td><td>The buffer for the digest value (caller-allocated). </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>Return values</dt><dd>
- <table class="retval">
- <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>on success. </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_BAD_REFERENCE</td><td>for invalid parameters. </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_BAD_SIZE</td><td>if the size passed is lower than the HMAC length. </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_GENERAL_FAILURE</td><td>for errors of the crypto library. </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a id="ga0d7703e693a61c7786b654021b138461"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ga0d7703e693a61c7786b654021b138461">◆ </a></span>iesys_cryptossl_hmac_start()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">TSS2_RC iesys_cryptossl_hmac_start </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="struct___i_e_s_y_s___c_r_y_p_t_o___c_o_n_t_e_x_t.html">IESYS_CRYPTO_CONTEXT_BLOB</a> ** </td>
- <td class="paramname"><em>context</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">TPM2_ALG_ID </td>
- <td class="paramname"><em>hashAlg</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const uint8_t * </td>
- <td class="paramname"><em>key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>size</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Provide the context an HMAC digest object from a byte buffer key.</p>
- <p>The context will be created and initialized according to the hash function and the used HMAC key. </p><dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[out]</td><td class="paramname">context</td><td>The created context (callee-allocated). </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">hashAlg</td><td>The hash algorithm for the HMAC computation. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>The byte buffer of the HMAC key. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>The size of the HMAC key. </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>Return values</dt><dd>
- <table class="retval">
- <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>on success. </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_BAD_REFERENCE</td><td>for invalid parameters. </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_MEMORY</td><td>Memory cannot be allocated. </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_GENERAL_FAILURE</td><td>for errors of the crypto library. </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a id="ga38c55dcb7af1740f2c88c6a13714d0f4"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ga38c55dcb7af1740f2c88c6a13714d0f4">◆ </a></span>iesys_cryptossl_hmac_update()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">TSS2_RC iesys_cryptossl_hmac_update </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="struct___i_e_s_y_s___c_r_y_p_t_o___c_o_n_t_e_x_t.html">IESYS_CRYPTO_CONTEXT_BLOB</a> * </td>
- <td class="paramname"><em>context</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const uint8_t * </td>
- <td class="paramname"><em>buffer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>size</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Update and HMAC digest value from a byte buffer.</p>
- <p>The context of a digest object will be updated according to the hash algorithm and the key of the context. </p><dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in,out]</td><td class="paramname">context</td><td>The context of the digest object which will be updated. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">buffer</td><td>The data for the update. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>The size of the data buffer. </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>Return values</dt><dd>
- <table class="retval">
- <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>on success. </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_BAD_REFERENCE</td><td>for invalid parameters. </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a id="ga293339e25fee12b919a656c8f4b66f90"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ga293339e25fee12b919a656c8f4b66f90">◆ </a></span>iesys_cryptossl_hmac_update2b()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">TSS2_RC iesys_cryptossl_hmac_update2b </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="struct___i_e_s_y_s___c_r_y_p_t_o___c_o_n_t_e_x_t.html">IESYS_CRYPTO_CONTEXT_BLOB</a> * </td>
- <td class="paramname"><em>context</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">TPM2B * </td>
- <td class="paramname"><em>b</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Update and HMAC digest value from a TPM2B object.</p>
- <p>The context of a digest object will be updated according to the hash algorithm and the key of the context. </p><dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in,out]</td><td class="paramname">context</td><td>The context of the digest object which will be updated. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>The TPM2B object for the update. </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>Return values</dt><dd>
- <table class="retval">
- <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>on success. </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_BAD_REFERENCE</td><td>for invalid parameters. </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a id="gab23845f7778d674b6c08d6d1f2ed1bce"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#gab23845f7778d674b6c08d6d1f2ed1bce">◆ </a></span>iesys_cryptossl_pk_encrypt()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">TSS2_RC iesys_cryptossl_pk_encrypt </td>
- <td>(</td>
- <td class="paramtype">TPM2B_PUBLIC * </td>
- <td class="paramname"><em>pub_tpm_key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>in_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">BYTE * </td>
- <td class="paramname"><em>in_buffer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>max_out_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">BYTE * </td>
- <td class="paramname"><em>out_buffer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t * </td>
- <td class="paramname"><em>out_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const char * </td>
- <td class="paramname"><em>label</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Encryption of a buffer using a public (RSA) key.</p>
- <p>Encrypting a buffer using a public key is used for example during Esys_StartAuthSession in order to encrypt the salt value. </p><dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">pub_tpm_key</td><td>The key to be used for encryption. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">in_size</td><td>The size of the buffer to be encrypted. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">in_buffer</td><td>The data buffer to be encrypted. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">max_out_size</td><td>The maximum size for the output encrypted buffer. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">out_buffer</td><td>The encrypted buffer. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">out_size</td><td>The size of the encrypted output. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">label</td><td>The label used in the encryption scheme. </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>Return values</dt><dd>
- <table class="retval">
- <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>on success </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_BAD_VALUE</td><td>The algorithm of key is not implemented. </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_GENERAL_FAILURE</td><td>The internal crypto engine failed. </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a id="ga7d954265e28d2891f6700fa514df3f10"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ga7d954265e28d2891f6700fa514df3f10">◆ </a></span>iesys_cryptossl_random2b()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">TSS2_RC iesys_cryptossl_random2b </td>
- <td>(</td>
- <td class="paramtype">TPM2B_NONCE * </td>
- <td class="paramname"><em>nonce</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>num_bytes</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Compute random TPM2B data.</p>
- <p>The random data will be generated and written to a passed TPM2B structure. </p><dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[out]</td><td class="paramname">nonce</td><td>The TPM2B structure for the random data (caller-allocated). </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">num_bytes</td><td>The number of bytes to be generated. </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>Return values</dt><dd>
- <table class="retval">
- <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>on success.</td></tr>
- </table>
- </dd>
- </dl>
- <p>NOTE: the TPM should not be used to obtain the random data </p>
- </div>
- </div>
- <a id="gaae1d6a57770b8e1b665bf27a06899bc6"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#gaae1d6a57770b8e1b665bf27a06899bc6">◆ </a></span>iesys_xor_parameter_obfuscation()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">TSS2_RC iesys_xor_parameter_obfuscation </td>
- <td>(</td>
- <td class="paramtype">TPM2_ALG_ID </td>
- <td class="paramname"><em>hash_alg</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t * </td>
- <td class="paramname"><em>key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>key_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">TPM2B_NONCE * </td>
- <td class="paramname"><em>contextU</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">TPM2B_NONCE * </td>
- <td class="paramname"><em>contextV</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">BYTE * </td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>data_size</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Encryption/Decryption using XOR obfuscation.</p>
- <p>The application of this function to data encrypted with this function will produce the origin data. The key for XOR obfuscation will be derived with KDFa form the passed key the session nonces, and the hash algorithm. </p><dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">hash_alg</td><td>The algorithm used for key derivation. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>key used for obfuscation </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">key_size</td><td>Key size in bits. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">contextU,contextV</td><td>are used for construction of a binary string containing information related to the derived key. </td></tr>
- <tr><td class="paramdir">[in,out]</td><td class="paramname">data</td><td>Data to be encrypted/decrypted the result will be will be stored in this buffer. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">data_size</td><td>size of data to be encrypted/decrypted. </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>Return values</dt><dd>
- <table class="retval">
- <tr><td class="paramname">TSS2_RC_SUCCESS</td><td>on success, or TSS2_ESYS_RC_BAD_VALUE and </td></tr>
- <tr><td class="paramname">TSS2_ESYS_RC_BAD_REFERENCE</td><td>for invalid parameters. </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- </div><!-- contents -->
- </div><!-- doc-content -->
- <!-- start footer part -->
- <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
- </ul>
- </div>
- </body>
- </html>
|