1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066 |
- <!-- HTML header for doxygen 1.8.10-->
- <!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.11"/>
- <title>Intel® Enhanced Privacy ID SDK: common</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);
- $(window).load(resizeHeight);
- </script>
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
- <link href="epidstyle.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"><a
- onclick="storeLink('index.html')"
- id="projectlink"
- class="index.html"
- href="index.html">Intel® Enhanced Privacy ID SDK</a>
-  <span id="projectnumber">2.0.0</span>
- </div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <!-- end header part -->
- <!-- Generated by Doxygen 1.8.11 -->
- </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___epid_common.html','');});
- </script>
- <div id="doc-content">
- <div class="header">
- <div class="summary">
- <a href="#groups">Modules</a> |
- <a href="#nested-classes">Data Structures</a> |
- <a href="#define-members">Macros</a> |
- <a href="#typedef-members">Typedefs</a> |
- <a href="#func-members">Functions</a> </div>
- <div class="headertitle">
- <div class="title">common<div class="ingroups"><a class="el" href="group___epid_module.html">epid</a></div></div> </div>
- </div><!--header-->
- <div class="contents">
- <p>Common code shared between core sub-components.
- <a href="#details">More...</a></p>
- <table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
- Modules</h2></td></tr>
- <tr class="memitem:group___epid_math"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_math.html">math</a></td></tr>
- <tr class="memdesc:group___epid_math"><td class="mdescLeft"> </td><td class="mdescRight">Math Primitives and Group Operations. <br /></td></tr>
- <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:group___error_codes"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___error_codes.html">errors</a></td></tr>
- <tr class="memdesc:group___error_codes"><td class="mdescLeft"> </td><td class="mdescRight">Error reporting interface. <br /></td></tr>
- <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:group___file_parser"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___file_parser.html">fileparser</a></td></tr>
- <tr class="memdesc:group___file_parser"><td class="mdescLeft"> </td><td class="mdescRight">Parser for issuer material. <br /></td></tr>
- <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:group___epid_print"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_print.html">print_utils</a></td></tr>
- <tr class="memdesc:group___epid_print"><td class="mdescLeft"> </td><td class="mdescRight">Debug print routines. <br /></td></tr>
- <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:group___epid_types"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_types.html">types</a></td></tr>
- <tr class="memdesc:group___epid_types"><td class="mdescLeft"> </td><td class="mdescRight">SDK data types. <br /></td></tr>
- <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
- </table><table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
- Data Structures</h2></td></tr>
- <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_commit_values.html">CommitValues</a></td></tr>
- <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Storage for values to create commitment in Sign and Verify algorithms. <a href="struct_commit_values.html#details">More...</a><br /></td></tr>
- <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_epid2_params__.html">Epid2Params_</a></td></tr>
- <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Internal representation of <a class="el" href="struct_epid2_params.html" title="Intel(R) EPID 2.0 Parameters. ">Epid2Params</a>. <a href="struct_epid2_params__.html#details">More...</a><br /></td></tr>
- <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_group_pub_key__.html">GroupPubKey_</a></td></tr>
- <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Internal representation of <a class="el" href="struct_group_pub_key.html" title="Intel(R) EPID 2.0 group public key. ">GroupPubKey</a>. <a href="struct_group_pub_key__.html#details">More...</a><br /></td></tr>
- <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_priv_key__.html">PrivKey_</a></td></tr>
- <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Internal implementation of <a class="el" href="struct_priv_key.html" title="Intel(R) EPID 2.0 private key. ">PrivKey</a>. <a href="struct_priv_key__.html#details">More...</a><br /></td></tr>
- <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
- </table><table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
- Macros</h2></td></tr>
- <tr class="memitem:ga29a7e07cd5181e738f98fc026979efca"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_common.html#ga29a7e07cd5181e738f98fc026979efca">ntohl</a>(u32) </td></tr>
- <tr class="memdesc:ga29a7e07cd5181e738f98fc026979efca"><td class="mdescLeft"> </td><td class="mdescRight">Macros to transform oct str 32 into uint_32. <a href="#ga29a7e07cd5181e738f98fc026979efca">More...</a><br /></td></tr>
- <tr class="separator:ga29a7e07cd5181e738f98fc026979efca"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:gab1587898f15de1b51cd5e799a43465ff"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab1587898f15de1b51cd5e799a43465ff"></a>
- #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_common.html#gab1587898f15de1b51cd5e799a43465ff">EPID_ENABLE_EPID_ZERO_MEMORY_ON_FREE</a></td></tr>
- <tr class="memdesc:gab1587898f15de1b51cd5e799a43465ff"><td class="mdescLeft"> </td><td class="mdescRight">When enabled secrets are wiped out from the memory by EpidFree. <br /></td></tr>
- <tr class="separator:gab1587898f15de1b51cd5e799a43465ff"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga38fad13430eba25f9f9b05e35ecd22f8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga38fad13430eba25f9f9b05e35ecd22f8"></a>
- #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_common.html#ga38fad13430eba25f9f9b05e35ecd22f8">SAFE_ALLOC</a>(size)   <a class="el" href="group___epid_common.html#gada170fd890504b013139f4a33033ae4b">EpidAlloc</a>(size);</td></tr>
- <tr class="memdesc:ga38fad13430eba25f9f9b05e35ecd22f8"><td class="mdescLeft"> </td><td class="mdescRight">Allocates zero initalized block of memory. <br /></td></tr>
- <tr class="separator:ga38fad13430eba25f9f9b05e35ecd22f8"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga2ca3c202ee727774d55890e568621842"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_common.html#ga2ca3c202ee727774d55890e568621842">SAFE_FREE</a>(ptr) </td></tr>
- <tr class="memdesc:ga2ca3c202ee727774d55890e568621842"><td class="mdescLeft"> </td><td class="mdescRight">Deallocates space allocated by <a class="el" href="group___epid_common.html#ga38fad13430eba25f9f9b05e35ecd22f8" title="Allocates zero initalized block of memory. ">SAFE_ALLOC()</a> and nulls pointer. <a href="#ga2ca3c202ee727774d55890e568621842">More...</a><br /></td></tr>
- <tr class="separator:ga2ca3c202ee727774d55890e568621842"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga41c113e15b695291199c27fac4bd53fa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga41c113e15b695291199c27fac4bd53fa"></a>
- #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_common.html#ga41c113e15b695291199c27fac4bd53fa">SAFE_REALLOC</a>(ptr, size)   <a class="el" href="group___epid_common.html#ga6911838728d546e4a51d7bcb8404525c">EpidRealloc</a>((ptr), (size))</td></tr>
- <tr class="memdesc:ga41c113e15b695291199c27fac4bd53fa"><td class="mdescLeft"> </td><td class="mdescRight">Changes the size of the memory block pointed to by ptr. <br /></td></tr>
- <tr class="separator:ga41c113e15b695291199c27fac4bd53fa"><td class="memSeparator" colspan="2"> </td></tr>
- </table><table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
- Typedefs</h2></td></tr>
- <tr class="memitem:ga6119a2c0323a3fca9e502b24bc378c2c"><td class="memItemLeft" align="right" valign="top">typedef int(__STDCALL * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_common.html#ga6119a2c0323a3fca9e502b24bc378c2c">BitSupplier</a>) (unsigned int *rand_data, int num_bits, void *user_data)</td></tr>
- <tr class="memdesc:ga6119a2c0323a3fca9e502b24bc378c2c"><td class="mdescLeft"> </td><td class="mdescRight">Generates random data. <a href="#ga6119a2c0323a3fca9e502b24bc378c2c">More...</a><br /></td></tr>
- <tr class="separator:ga6119a2c0323a3fca9e502b24bc378c2c"><td class="memSeparator" colspan="2"> </td></tr>
- </table><table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
- Functions</h2></td></tr>
- <tr class="memitem:ga2d54f4f222e965222024113c0420602d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_common.html#ga2d54f4f222e965222024113c0420602d">SetKeySpecificCommitValues</a> (<a class="el" href="struct_group_pub_key.html">GroupPubKey</a> const *pub_key, <a class="el" href="struct_commit_values.html">CommitValues</a> *values)</td></tr>
- <tr class="memdesc:ga2d54f4f222e965222024113c0420602d"><td class="mdescLeft"> </td><td class="mdescRight">Set group public key related fields from <a class="el" href="struct_commit_values.html" title="Storage for values to create commitment in Sign and Verify algorithms. ">CommitValues</a> structure. <a href="#ga2d54f4f222e965222024113c0420602d">More...</a><br /></td></tr>
- <tr class="separator:ga2d54f4f222e965222024113c0420602d"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga3f3c3b965dd714179cbc2f8d96678ee0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_common.html#ga3f3c3b965dd714179cbc2f8d96678ee0">SetCalculatedCommitValues</a> (<a class="el" href="struct_g1_elem_str.html">G1ElemStr</a> const *B, <a class="el" href="struct_g1_elem_str.html">G1ElemStr</a> const *K, <a class="el" href="struct_g1_elem_str.html">G1ElemStr</a> const *T, <a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> const *R1, <a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> *G1, <a class="el" href="group___finite_field_primitives.html#ga6cff5c7c06b07a87442b810ccc0a86fa">FfElement</a> const *R2, <a class="el" href="group___finite_field_primitives.html#gab281b24e336a8b3d7d90079d862d969e">FiniteField</a> *GT, <a class="el" href="struct_commit_values.html">CommitValues</a> *values)</td></tr>
- <tr class="memdesc:ga3f3c3b965dd714179cbc2f8d96678ee0"><td class="mdescLeft"> </td><td class="mdescRight">Set <a class="el" href="struct_commit_values.html" title="Storage for values to create commitment in Sign and Verify algorithms. ">CommitValues</a> structure fields calculated in algorithm. <a href="#ga3f3c3b965dd714179cbc2f8d96678ee0">More...</a><br /></td></tr>
- <tr class="separator:ga3f3c3b965dd714179cbc2f8d96678ee0"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga23f8ea0f7529e8e7a81bd88e607dda01"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_common.html#ga23f8ea0f7529e8e7a81bd88e607dda01">CalculateCommitmentHash</a> (<a class="el" href="struct_commit_values.html">CommitValues</a> const *values, <a class="el" href="group___finite_field_primitives.html#gab281b24e336a8b3d7d90079d862d969e">FiniteField</a> *Fp, <a class="el" href="group___epid_types.html#ga5e450438f6f9a5eacd0cf5ce354ec890">HashAlg</a> hash_alg, void const *msg, size_t msg_len, <a class="el" href="group___finite_field_primitives.html#ga6cff5c7c06b07a87442b810ccc0a86fa">FfElement</a> *c)</td></tr>
- <tr class="memdesc:ga23f8ea0f7529e8e7a81bd88e607dda01"><td class="mdescLeft"> </td><td class="mdescRight">Calculate Fp.hash(t3 || m) for Sign and Verfiy algorithms. <a href="#ga23f8ea0f7529e8e7a81bd88e607dda01">More...</a><br /></td></tr>
- <tr class="separator:ga23f8ea0f7529e8e7a81bd88e607dda01"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga5c396a5ac8a0e5ec1e02330c53420dce"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_common.html#ga5c396a5ac8a0e5ec1e02330c53420dce">CreateEpid2Params</a> (<a class="el" href="struct_epid2_params__.html">Epid2Params_</a> **params)</td></tr>
- <tr class="memdesc:ga5c396a5ac8a0e5ec1e02330c53420dce"><td class="mdescLeft"> </td><td class="mdescRight">Constructs the internal representation of <a class="el" href="struct_epid2_params.html" title="Intel(R) EPID 2.0 Parameters. ">Epid2Params</a>. <a href="#ga5c396a5ac8a0e5ec1e02330c53420dce">More...</a><br /></td></tr>
- <tr class="separator:ga5c396a5ac8a0e5ec1e02330c53420dce"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:gac22664b5f7df5cd4da1bd7b1b1e7912f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_common.html#gac22664b5f7df5cd4da1bd7b1b1e7912f">DeleteEpid2Params</a> (<a class="el" href="struct_epid2_params__.html">Epid2Params_</a> **epid_params)</td></tr>
- <tr class="memdesc:gac22664b5f7df5cd4da1bd7b1b1e7912f"><td class="mdescLeft"> </td><td class="mdescRight">Deallocates storage for internal representation of <a class="el" href="struct_epid2_params.html" title="Intel(R) EPID 2.0 Parameters. ">Epid2Params</a>. <a href="#gac22664b5f7df5cd4da1bd7b1b1e7912f">More...</a><br /></td></tr>
- <tr class="separator:gac22664b5f7df5cd4da1bd7b1b1e7912f"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga20a575d3d538b0bac654fd57f20e2b30"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_common.html#ga20a575d3d538b0bac654fd57f20e2b30">CreateGroupPubKey</a> (<a class="el" href="struct_group_pub_key.html">GroupPubKey</a> const *pub_key_str, <a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> *G1, <a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> *G2, <a class="el" href="struct_group_pub_key__.html">GroupPubKey_</a> **pub_key)</td></tr>
- <tr class="memdesc:ga20a575d3d538b0bac654fd57f20e2b30"><td class="mdescLeft"> </td><td class="mdescRight">Constructs internal representation of <a class="el" href="struct_group_pub_key.html" title="Intel(R) EPID 2.0 group public key. ">GroupPubKey</a>. <a href="#ga20a575d3d538b0bac654fd57f20e2b30">More...</a><br /></td></tr>
- <tr class="separator:ga20a575d3d538b0bac654fd57f20e2b30"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga07c9b47d326ee784aecb78195adffb8b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_common.html#ga07c9b47d326ee784aecb78195adffb8b">DeleteGroupPubKey</a> (<a class="el" href="struct_group_pub_key__.html">GroupPubKey_</a> **pub_key)</td></tr>
- <tr class="memdesc:ga07c9b47d326ee784aecb78195adffb8b"><td class="mdescLeft"> </td><td class="mdescRight">Deallocates storage for internal representation of <a class="el" href="struct_group_pub_key.html" title="Intel(R) EPID 2.0 group public key. ">GroupPubKey</a>. <a href="#ga07c9b47d326ee784aecb78195adffb8b">More...</a><br /></td></tr>
- <tr class="separator:ga07c9b47d326ee784aecb78195adffb8b"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:gad471f600f6032f432b99432fda97a070"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_common.html#gad471f600f6032f432b99432fda97a070">EpidZeroMemory</a> (void *ptr, size_t size)</td></tr>
- <tr class="memdesc:gad471f600f6032f432b99432fda97a070"><td class="mdescLeft"> </td><td class="mdescRight">Clear information stored in block of memory pointer to by ptr. <a href="#gad471f600f6032f432b99432fda97a070">More...</a><br /></td></tr>
- <tr class="separator:gad471f600f6032f432b99432fda97a070"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:gada170fd890504b013139f4a33033ae4b"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_common.html#gada170fd890504b013139f4a33033ae4b">EpidAlloc</a> (size_t size)</td></tr>
- <tr class="memdesc:gada170fd890504b013139f4a33033ae4b"><td class="mdescLeft"> </td><td class="mdescRight">Allocates memory of size bytes. <a href="#gada170fd890504b013139f4a33033ae4b">More...</a><br /></td></tr>
- <tr class="separator:gada170fd890504b013139f4a33033ae4b"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga6911838728d546e4a51d7bcb8404525c"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_common.html#ga6911838728d546e4a51d7bcb8404525c">EpidRealloc</a> (void *ptr, size_t new_size)</td></tr>
- <tr class="memdesc:ga6911838728d546e4a51d7bcb8404525c"><td class="mdescLeft"> </td><td class="mdescRight">Reallocates memory allocated by EpidAlloc. <a href="#ga6911838728d546e4a51d7bcb8404525c">More...</a><br /></td></tr>
- <tr class="separator:ga6911838728d546e4a51d7bcb8404525c"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:gaeae76709e6bfc80c9d79ec4943ccc1ac"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_common.html#gaeae76709e6bfc80c9d79ec4943ccc1ac">EpidFree</a> (void *ptr)</td></tr>
- <tr class="memdesc:gaeae76709e6bfc80c9d79ec4943ccc1ac"><td class="mdescLeft"> </td><td class="mdescRight">Frees memory allocated by EpidAlloc. <a href="#gaeae76709e6bfc80c9d79ec4943ccc1ac">More...</a><br /></td></tr>
- <tr class="separator:gaeae76709e6bfc80c9d79ec4943ccc1ac"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga4856121ac4bce4161a015a8a2b4f5b1c"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_common.html#ga4856121ac4bce4161a015a8a2b4f5b1c">memcpy_S</a> (void *dest, size_t destsz, void const *src, size_t count)</td></tr>
- <tr class="memdesc:ga4856121ac4bce4161a015a8a2b4f5b1c"><td class="mdescLeft"> </td><td class="mdescRight">Copies bytes between buffers with security ehancements. <a href="#ga4856121ac4bce4161a015a8a2b4f5b1c">More...</a><br /></td></tr>
- <tr class="separator:ga4856121ac4bce4161a015a8a2b4f5b1c"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga23ec3f6c8b89eb63e04d2b1ec6fd2696"><td class="memItemLeft" align="right" valign="top"><a class="el" href="stdtypes_8h.html#ad5c9d4ba3dc37783a528b0925dc981a0">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_common.html#ga23ec3f6c8b89eb63e04d2b1ec6fd2696">IsSigRlValid</a> (<a class="el" href="group___epid_types.html#gada666b48d0cbc301985405fde896f1de">GroupId</a> const *gid, <a class="el" href="struct_sig_rl.html">SigRl</a> const *sig_rl, size_t sig_rl_size)</td></tr>
- <tr class="memdesc:ga23ec3f6c8b89eb63e04d2b1ec6fd2696"><td class="mdescLeft"> </td><td class="mdescRight">Function to verify if signature based revocation list is valid. <a href="#ga23ec3f6c8b89eb63e04d2b1ec6fd2696">More...</a><br /></td></tr>
- <tr class="separator:ga23ec3f6c8b89eb63e04d2b1ec6fd2696"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga00cb25d52726cef61a9a5266176c2a58"><td class="memItemLeft" align="right" valign="top"><a class="el" href="stdtypes_8h.html#ad5c9d4ba3dc37783a528b0925dc981a0">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_common.html#ga00cb25d52726cef61a9a5266176c2a58">CreateStack</a> (size_t element_size, <a class="el" href="struct_stack.html">Stack</a> **stack)</td></tr>
- <tr class="memdesc:ga00cb25d52726cef61a9a5266176c2a58"><td class="mdescLeft"> </td><td class="mdescRight">Create stack. <a href="#ga00cb25d52726cef61a9a5266176c2a58">More...</a><br /></td></tr>
- <tr class="separator:ga00cb25d52726cef61a9a5266176c2a58"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga0b4dedb867504e0148aa0e1fdf642b2b"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_common.html#ga0b4dedb867504e0148aa0e1fdf642b2b">StackPushN</a> (<a class="el" href="struct_stack.html">Stack</a> *stack, size_t n, void *elements)</td></tr>
- <tr class="memdesc:ga0b4dedb867504e0148aa0e1fdf642b2b"><td class="mdescLeft"> </td><td class="mdescRight">Push multiple elements to the stack. <a href="#ga0b4dedb867504e0148aa0e1fdf642b2b">More...</a><br /></td></tr>
- <tr class="separator:ga0b4dedb867504e0148aa0e1fdf642b2b"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga8cdde2b366f4473f0a6965bcfea5b6a6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="stdtypes_8h.html#ad5c9d4ba3dc37783a528b0925dc981a0">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_common.html#ga8cdde2b366f4473f0a6965bcfea5b6a6">StackPopN</a> (<a class="el" href="struct_stack.html">Stack</a> *stack, size_t n, void *elements)</td></tr>
- <tr class="memdesc:ga8cdde2b366f4473f0a6965bcfea5b6a6"><td class="mdescLeft"> </td><td class="mdescRight">Pop multiple elements from the stack. <a href="#ga8cdde2b366f4473f0a6965bcfea5b6a6">More...</a><br /></td></tr>
- <tr class="separator:ga8cdde2b366f4473f0a6965bcfea5b6a6"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:gab34066dc882ad63362c43c0790973fdc"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_common.html#gab34066dc882ad63362c43c0790973fdc">StackGetSize</a> (<a class="el" href="struct_stack.html">Stack</a> const *stack)</td></tr>
- <tr class="memdesc:gab34066dc882ad63362c43c0790973fdc"><td class="mdescLeft"> </td><td class="mdescRight">Get number of elements in the stack. <a href="#gab34066dc882ad63362c43c0790973fdc">More...</a><br /></td></tr>
- <tr class="separator:gab34066dc882ad63362c43c0790973fdc"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga3335a4754825c54840263aa4b2a9bf67"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_common.html#ga3335a4754825c54840263aa4b2a9bf67">DeleteStack</a> (<a class="el" href="struct_stack.html">Stack</a> **stack)</td></tr>
- <tr class="memdesc:ga3335a4754825c54840263aa4b2a9bf67"><td class="mdescLeft"> </td><td class="mdescRight">Deallocates memory used for the stack. <a href="#ga3335a4754825c54840263aa4b2a9bf67">More...</a><br /></td></tr>
- <tr class="separator:ga3335a4754825c54840263aa4b2a9bf67"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:gae51985a0e811f4bbb2d70b62e35b881e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_common.html#gae51985a0e811f4bbb2d70b62e35b881e">CreatePrivKey</a> (<a class="el" href="struct_priv_key.html">PrivKey</a> const *priv_key_str, <a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> *G1, <a class="el" href="group___finite_field_primitives.html#gab281b24e336a8b3d7d90079d862d969e">FiniteField</a> *Fp, <a class="el" href="struct_priv_key__.html">PrivKey_</a> **priv_key)</td></tr>
- <tr class="memdesc:gae51985a0e811f4bbb2d70b62e35b881e"><td class="mdescLeft"> </td><td class="mdescRight">Constructs internal representation of <a class="el" href="struct_priv_key.html" title="Intel(R) EPID 2.0 private key. ">PrivKey</a>. <a href="#gae51985a0e811f4bbb2d70b62e35b881e">More...</a><br /></td></tr>
- <tr class="separator:gae51985a0e811f4bbb2d70b62e35b881e"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga53db100214e65e362fa426508a240d12"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_common.html#ga53db100214e65e362fa426508a240d12">DeletePrivKey</a> (<a class="el" href="struct_priv_key__.html">PrivKey_</a> **priv_key)</td></tr>
- <tr class="memdesc:ga53db100214e65e362fa426508a240d12"><td class="mdescLeft"> </td><td class="mdescRight">Deallocate storage for internal representation of <a class="el" href="struct_priv_key.html" title="Intel(R) EPID 2.0 private key. ">PrivKey</a>. <a href="#ga53db100214e65e362fa426508a240d12">More...</a><br /></td></tr>
- <tr class="separator:ga53db100214e65e362fa426508a240d12"><td class="memSeparator" colspan="2"> </td></tr>
- </table>
- <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
- <p>Common code shared between core sub-components. </p>
- <p>Constants, utility functions, and libraries that are used widely in the implementation or definition of APIs and samples. </p>
- <h2 class="groupheader">Macro Definition Documentation</h2>
- <a class="anchor" id="ga29a7e07cd5181e738f98fc026979efca"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define ntohl</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">u32</td><td>)</td>
- <td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <b>Value:</b><div class="fragment"><div class="line">((uint32_t)(((((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*)&(u32))[0]) << 24) + \</div><div class="line"> ((((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*)&(u32))[1]) << 16) + \</div><div class="line"> ((((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*)&(u32))[2]) << 8) + \</div><div class="line"> (((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*)&(u32))[3])))</div></div><!-- fragment -->
- <p>Macros to transform oct str 32 into uint_32. </p>
- </div>
- </div>
- <a class="anchor" id="ga2ca3c202ee727774d55890e568621842"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define SAFE_FREE</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">ptr</td><td>)</td>
- <td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <b>Value:</b><div class="fragment"><div class="line">{ \</div><div class="line"> if (NULL != (ptr)) { \</div><div class="line"> EpidFree(ptr); \</div><div class="line"> (ptr) = NULL; \</div><div class="line"> } \</div><div class="line"> }</div></div><!-- fragment -->
- <p>Deallocates space allocated by <a class="el" href="group___epid_common.html#ga38fad13430eba25f9f9b05e35ecd22f8" title="Allocates zero initalized block of memory. ">SAFE_ALLOC()</a> and nulls pointer. </p>
- </div>
- </div>
- <h2 class="groupheader">Typedef Documentation</h2>
- <a class="anchor" id="ga6119a2c0323a3fca9e502b24bc378c2c"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef int(__STDCALL* BitSupplier) (unsigned int *rand_data, int num_bits, void *user_data)</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Generates random data. </p>
- <p>It is the responsibility of the caller of the SDK interfaces to implement a function of this prototype and to then pass a pointer to this function into methods that require it.</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[out]</td><td class="paramname">rand_data</td><td>destination buffer </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">num_bits</td><td>size of rand_data in bits </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">user_data</td><td>user data passed through from api call.</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>zero on success and non-zero value on error. </dd></dl>
- </div>
- </div>
- <h2 class="groupheader">Function Documentation</h2>
- <a class="anchor" id="ga23f8ea0f7529e8e7a81bd88e607dda01"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> CalculateCommitmentHash </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="struct_commit_values.html">CommitValues</a> const * </td>
- <td class="paramname"><em>values</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___finite_field_primitives.html#gab281b24e336a8b3d7d90079d862d969e">FiniteField</a> * </td>
- <td class="paramname"><em>Fp</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___epid_types.html#ga5e450438f6f9a5eacd0cf5ce354ec890">HashAlg</a> </td>
- <td class="paramname"><em>hash_alg</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">void const * </td>
- <td class="paramname"><em>msg</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>msg_len</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___finite_field_primitives.html#ga6cff5c7c06b07a87442b810ccc0a86fa">FfElement</a> * </td>
- <td class="paramname"><em>c</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Calculate Fp.hash(t3 || m) for Sign and Verfiy algorithms. </p>
- <p>Calculate c = Fp.hash(t3 || m) where t3 is Fp.hash(p || g1 || g2 || h1 || h2 || w || B || K || T || R1 || R2).</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">values</td><td>Commit values to hash </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">Fp</td><td>Finite field to perfom hash operation in </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">hash_alg</td><td>Hash algorithm to use </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">msg</td><td>Message to hash </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">msg_len</td><td>Size of msg buffer in bytes </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">c</td><td>Result of calculation</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a></dd></dl>
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_common.html#ga2d54f4f222e965222024113c0420602d" title="Set group public key related fields from CommitValues structure. ">SetKeySpecificCommitValues</a> </dd>
- <dd>
- <a class="el" href="group___epid_common.html#ga3f3c3b965dd714179cbc2f8d96678ee0" title="Set CommitValues structure fields calculated in algorithm. ">SetCalculatedCommitValues</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="ga5c396a5ac8a0e5ec1e02330c53420dce"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> CreateEpid2Params </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="struct_epid2_params__.html">Epid2Params_</a> ** </td>
- <td class="paramname"><em>params</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Constructs the internal representation of <a class="el" href="struct_epid2_params.html" title="Intel(R) EPID 2.0 Parameters. ">Epid2Params</a>. </p>
- <p>Allocates memory for the internal representation of <a class="el" href="struct_epid2_params.html" title="Intel(R) EPID 2.0 Parameters. ">Epid2Params</a>. Initialize the <a class="el" href="struct_epid2_params.html" title="Intel(R) EPID 2.0 Parameters. ">Epid2Params</a>. Use <a class="el" href="group___epid_common.html#gac22664b5f7df5cd4da1bd7b1b1e7912f" title="Deallocates storage for internal representation of Epid2Params. ">DeleteEpid2Params()</a> to deallocate memory.</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in,out]</td><td class="paramname">params</td><td>Internal <a class="el" href="struct_epid2_params.html" title="Intel(R) EPID 2.0 Parameters. ">Epid2Params</a></td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a> </dd></dl>
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_common.html#gac22664b5f7df5cd4da1bd7b1b1e7912f" title="Deallocates storage for internal representation of Epid2Params. ">DeleteEpid2Params</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="ga20a575d3d538b0bac654fd57f20e2b30"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> CreateGroupPubKey </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="struct_group_pub_key.html">GroupPubKey</a> const * </td>
- <td class="paramname"><em>pub_key_str</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> * </td>
- <td class="paramname"><em>G1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> * </td>
- <td class="paramname"><em>G2</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="struct_group_pub_key__.html">GroupPubKey_</a> ** </td>
- <td class="paramname"><em>pub_key</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Constructs internal representation of <a class="el" href="struct_group_pub_key.html" title="Intel(R) EPID 2.0 group public key. ">GroupPubKey</a>. </p>
- <p>Allocates memory and initializes gid, h1, h2, w parameters. Use <a class="el" href="group___epid_common.html#ga07c9b47d326ee784aecb78195adffb8b" title="Deallocates storage for internal representation of GroupPubKey. ">DeleteGroupPubKey()</a> to deallocate memory</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">pub_key_str</td><td>Oct string representation of group public key </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">G1</td><td>EcGroup containing elements h1 and h2 </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">G2</td><td>EcGroup containing element w </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">pub_key</td><td>Group public key: (gid, h1, h2, w)</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a> </dd></dl>
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_common.html#ga07c9b47d326ee784aecb78195adffb8b" title="Deallocates storage for internal representation of GroupPubKey. ">DeleteGroupPubKey</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="gae51985a0e811f4bbb2d70b62e35b881e"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> CreatePrivKey </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="struct_priv_key.html">PrivKey</a> const * </td>
- <td class="paramname"><em>priv_key_str</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> * </td>
- <td class="paramname"><em>G1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___finite_field_primitives.html#gab281b24e336a8b3d7d90079d862d969e">FiniteField</a> * </td>
- <td class="paramname"><em>Fp</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="struct_priv_key__.html">PrivKey_</a> ** </td>
- <td class="paramname"><em>priv_key</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Constructs internal representation of <a class="el" href="struct_priv_key.html" title="Intel(R) EPID 2.0 private key. ">PrivKey</a>. </p>
- <p>This function allocates memory and initializes gid, A, x, f parameters.</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">priv_key_str</td><td>Serialized representation of private key </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">G1</td><td>EcGroup containing element A </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">Fp</td><td>FiniteField containing elements x and f </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">priv_key</td><td>Newly created private key: (gid, A, x, f)</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="ga00cb25d52726cef61a9a5266176c2a58"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="stdtypes_8h.html#ad5c9d4ba3dc37783a528b0925dc981a0">bool</a> CreateStack </td>
- <td>(</td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>element_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="struct_stack.html">Stack</a> ** </td>
- <td class="paramname"><em>stack</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Create stack. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">element_size</td><td>Size of stack element </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">stack</td><td><a class="el" href="struct_stack.html" title="Internal representation of a Stack. ">Stack</a> context to be created</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>true is operation succeed, false if stack were failed to allocate</dd></dl>
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_common.html#ga3335a4754825c54840263aa4b2a9bf67" title="Deallocates memory used for the stack. ">DeleteStack</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="gac22664b5f7df5cd4da1bd7b1b1e7912f"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void DeleteEpid2Params </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="struct_epid2_params__.html">Epid2Params_</a> ** </td>
- <td class="paramname"><em>epid_params</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Deallocates storage for internal representation of <a class="el" href="struct_epid2_params.html" title="Intel(R) EPID 2.0 Parameters. ">Epid2Params</a>. </p>
- <p>Frees the memory and nulls the pointer.</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in,out]</td><td class="paramname">epid_params</td><td>params to be deallocated</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_common.html#ga5c396a5ac8a0e5ec1e02330c53420dce" title="Constructs the internal representation of Epid2Params. ">CreateEpid2Params</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="ga07c9b47d326ee784aecb78195adffb8b"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void DeleteGroupPubKey </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="struct_group_pub_key__.html">GroupPubKey_</a> ** </td>
- <td class="paramname"><em>pub_key</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Deallocates storage for internal representation of <a class="el" href="struct_group_pub_key.html" title="Intel(R) EPID 2.0 group public key. ">GroupPubKey</a>. </p>
- <p>Frees memory pointed to by Group public key. Nulls the pointer.</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">pub_key</td><td>Group public key to be freed</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_common.html#ga20a575d3d538b0bac654fd57f20e2b30" title="Constructs internal representation of GroupPubKey. ">CreateGroupPubKey</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="ga53db100214e65e362fa426508a240d12"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void DeletePrivKey </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="struct_priv_key__.html">PrivKey_</a> ** </td>
- <td class="paramname"><em>priv_key</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Deallocate storage for internal representation of <a class="el" href="struct_priv_key.html" title="Intel(R) EPID 2.0 private key. ">PrivKey</a>. </p>
- <p>Frees memory pointed to by Member private key. Nulls the pointer.</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">priv_key</td><td>Member private key to be freed </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a class="anchor" id="ga3335a4754825c54840263aa4b2a9bf67"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void DeleteStack </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="struct_stack.html">Stack</a> ** </td>
- <td class="paramname"><em>stack</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Deallocates memory used for the stack. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in,out]</td><td class="paramname">stack</td><td><a class="el" href="struct_stack.html" title="Internal representation of a Stack. ">Stack</a> context</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_common.html#ga00cb25d52726cef61a9a5266176c2a58" title="Create stack. ">CreateStack</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="gada170fd890504b013139f4a33033ae4b"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void* EpidAlloc </td>
- <td>(</td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>size</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Allocates memory of size bytes. </p>
- <p>The content of memory is initialized with zeros. Memory must be freed with EpidFree function.</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>number of bytes to allocate</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>pointer to allocated memory. </dd></dl>
- </div>
- </div>
- <a class="anchor" id="gaeae76709e6bfc80c9d79ec4943ccc1ac"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void EpidFree </td>
- <td>(</td>
- <td class="paramtype">void * </td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Frees memory allocated by EpidAlloc. </p>
- <p>Clears information stored in the block of memory.</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>pointer to allocated memory block </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a class="anchor" id="ga6911838728d546e4a51d7bcb8404525c"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void* EpidRealloc </td>
- <td>(</td>
- <td class="paramtype">void * </td>
- <td class="paramname"><em>ptr</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>new_size</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Reallocates memory allocated by EpidAlloc. </p>
- <p>In case of error NULL pointer is returned and input memory block is not changed. Memory must be freed with EpidFree function.</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>pointer to memory block to reallocate </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">new_size</td><td>number of bytes to reallocate for</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>pointer to allocated memory. </dd></dl>
- </div>
- </div>
- <a class="anchor" id="gad471f600f6032f432b99432fda97a070"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void EpidZeroMemory </td>
- <td>(</td>
- <td class="paramtype">void * </td>
- <td class="paramname"><em>ptr</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>Clear information stored in block of memory pointer to by ptr. </p>
- <dl class="section warning"><dt>Warning</dt><dd>This function may be optimized away by some compilers. If it is, you should consider using a compiler or operating system specific memory sanitization function (e.g. memcpy_s or SecureZeroMemory).</dd></dl>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>pointer to memory block </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>number of bytes to clear </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a class="anchor" id="ga23ec3f6c8b89eb63e04d2b1ec6fd2696"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="stdtypes_8h.html#ad5c9d4ba3dc37783a528b0925dc981a0">bool</a> IsSigRlValid </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group___epid_types.html#gada666b48d0cbc301985405fde896f1de">GroupId</a> const * </td>
- <td class="paramname"><em>gid</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="struct_sig_rl.html">SigRl</a> const * </td>
- <td class="paramname"><em>sig_rl</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>sig_rl_size</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Function to verify if signature based revocation list is valid. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">gid</td><td>Group id </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">sig_rl</td><td>Signature based revocation list </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">sig_rl_size</td><td>Size of signature based revocation list</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>true if revocation list is valid </dd>
- <dd>
- false if revocation list is invalid </dd></dl>
- </div>
- </div>
- <a class="anchor" id="ga4856121ac4bce4161a015a8a2b4f5b1c"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int memcpy_S </td>
- <td>(</td>
- <td class="paramtype">void * </td>
- <td class="paramname"><em>dest</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>destsz</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">void const * </td>
- <td class="paramname"><em>src</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>count</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Copies bytes between buffers with security ehancements. </p>
- <p>Copies count bytes from src to dest. If the source and destination overlap, the behavior is undefined.</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[out]</td><td class="paramname">dest</td><td>pointer to the object to copy to </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">destsz</td><td>max number of bytes to modify in the destination (typically the size of the destination object) </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>pointer to the object to copy from </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>number of bytes to copy</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>zero on success and non-zero value on error.</dd></dl>
- <p>Copies bytes between buffers with security ehancements.</p>
- <dl class="section note"><dt>Note</dt><dd>Implementation follows C11 memcpy_s but with checks always enabled </dd></dl>
- </div>
- </div>
- <a class="anchor" id="ga3f3c3b965dd714179cbc2f8d96678ee0"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> SetCalculatedCommitValues </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="struct_g1_elem_str.html">G1ElemStr</a> const * </td>
- <td class="paramname"><em>B</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="struct_g1_elem_str.html">G1ElemStr</a> const * </td>
- <td class="paramname"><em>K</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="struct_g1_elem_str.html">G1ElemStr</a> const * </td>
- <td class="paramname"><em>T</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> const * </td>
- <td class="paramname"><em>R1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> * </td>
- <td class="paramname"><em>G1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___finite_field_primitives.html#ga6cff5c7c06b07a87442b810ccc0a86fa">FfElement</a> const * </td>
- <td class="paramname"><em>R2</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___finite_field_primitives.html#gab281b24e336a8b3d7d90079d862d969e">FiniteField</a> * </td>
- <td class="paramname"><em>GT</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="struct_commit_values.html">CommitValues</a> * </td>
- <td class="paramname"><em>values</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Set <a class="el" href="struct_commit_values.html" title="Storage for values to create commitment in Sign and Verify algorithms. ">CommitValues</a> structure fields calculated in algorithm. </p>
- <p>Set B, K, T, R1 and R2 fields of values argument.</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">B</td><td>Value of B to set </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">K</td><td>Value of K to set </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">T</td><td>Value of T to set </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">R1</td><td>Value of R1 to set </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">G1</td><td>EcGroup containing element R1 </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">R2</td><td>Value of R2 to set </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">GT</td><td>FiniteField containing element R2 </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">values</td><td>Pointer to <a class="el" href="struct_commit_values.html" title="Storage for values to create commitment in Sign and Verify algorithms. ">CommitValues</a> structure to fill.</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a></dd></dl>
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_common.html#ga23f8ea0f7529e8e7a81bd88e607dda01" title="Calculate Fp.hash(t3 || m) for Sign and Verfiy algorithms. ">CalculateCommitmentHash</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="ga2d54f4f222e965222024113c0420602d"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> SetKeySpecificCommitValues </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="struct_group_pub_key.html">GroupPubKey</a> const * </td>
- <td class="paramname"><em>pub_key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="struct_commit_values.html">CommitValues</a> * </td>
- <td class="paramname"><em>values</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Set group public key related fields from <a class="el" href="struct_commit_values.html" title="Storage for values to create commitment in Sign and Verify algorithms. ">CommitValues</a> structure. </p>
- <p>Set p, g1, g2, h1, h2 and w fields of values argument.</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">pub_key</td><td>Group public key </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">values</td><td>Pointer to <a class="el" href="struct_commit_values.html" title="Storage for values to create commitment in Sign and Verify algorithms. ">CommitValues</a> structure to fill.</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a></dd></dl>
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_common.html#ga23f8ea0f7529e8e7a81bd88e607dda01" title="Calculate Fp.hash(t3 || m) for Sign and Verfiy algorithms. ">CalculateCommitmentHash</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="gab34066dc882ad63362c43c0790973fdc"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">size_t StackGetSize </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="struct_stack.html">Stack</a> const * </td>
- <td class="paramname"><em>stack</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Get number of elements in the stack. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">stack</td><td><a class="el" href="struct_stack.html" title="Internal representation of a Stack. ">Stack</a> context</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>Number of elements in the stack or 0 if stack is NULL</dd></dl>
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_common.html#ga00cb25d52726cef61a9a5266176c2a58" title="Create stack. ">CreateStack</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="ga8cdde2b366f4473f0a6965bcfea5b6a6"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="stdtypes_8h.html#ad5c9d4ba3dc37783a528b0925dc981a0">bool</a> StackPopN </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="struct_stack.html">Stack</a> * </td>
- <td class="paramname"><em>stack</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>n</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">void * </td>
- <td class="paramname"><em>elements</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Pop multiple elements from the stack. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in,out]</td><td class="paramname">stack</td><td><a class="el" href="struct_stack.html" title="Internal representation of a Stack. ">Stack</a> context </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Number of elements to pop from the stack </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">elements</td><td>Pointer to a buffer to store elements removed from the stack</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>true is operation succeed, false otherwise</dd></dl>
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_common.html#ga00cb25d52726cef61a9a5266176c2a58" title="Create stack. ">CreateStack</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="ga0b4dedb867504e0148aa0e1fdf642b2b"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void* StackPushN </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="struct_stack.html">Stack</a> * </td>
- <td class="paramname"><em>stack</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>n</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">void * </td>
- <td class="paramname"><em>elements</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Push multiple elements to the stack. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in,out]</td><td class="paramname">stack</td><td><a class="el" href="struct_stack.html" title="Internal representation of a Stack. ">Stack</a> context </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Number of elements to push to the stack </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">elements</td><td>Array of elements to push to the stack. Can be NULL</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>A pointer to an array of new elements in the stack or NULL if stack is empty or push operation were failed.</dd></dl>
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_common.html#ga00cb25d52726cef61a9a5266176c2a58" title="Create stack. ">CreateStack</a> </dd></dl>
- </div>
- </div>
- </div><!-- contents -->
- </div><!-- doc-content -->
- <!-- HTML footer for doxygen 1.8.10-->
- <!-- start footer part -->
- <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">
- © 2016 Intel Corporation
- </li>
- </ul>
- </div>
- </body>
- </html>
|