group___epid_member_module.html 62 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933
  1. <!-- HTML header for doxygen 1.8.10-->
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  6. <meta http-equiv="X-UA-Compatible" content="IE=9"/>
  7. <meta name="generator" content="Doxygen 1.8.11"/>
  8. <title>Intel&reg; Enhanced Privacy ID SDK: member</title>
  9. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  10. <script type="text/javascript" src="jquery.js"></script>
  11. <script type="text/javascript" src="dynsections.js"></script>
  12. <link href="navtree.css" rel="stylesheet" type="text/css"/>
  13. <script type="text/javascript" src="resize.js"></script>
  14. <script type="text/javascript" src="navtreedata.js"></script>
  15. <script type="text/javascript" src="navtree.js"></script>
  16. <script type="text/javascript">
  17. $(document).ready(initResizable);
  18. $(window).load(resizeHeight);
  19. </script>
  20. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  21. <link href="epidstyle.css" rel="stylesheet" type="text/css"/>
  22. </head>
  23. <body>
  24. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  25. <div id="titlearea">
  26. <table cellspacing="0" cellpadding="0">
  27. <tbody>
  28. <tr style="height: 56px;">
  29. <td id="projectalign" style="padding-left: 0.5em;">
  30. <div id="projectname"><a
  31. onclick="storeLink('index.html')"
  32. id="projectlink"
  33. class="index.html"
  34. href="index.html">Intel&reg; Enhanced Privacy ID SDK</a>
  35. &#160;<span id="projectnumber">3.0.0</span>
  36. </div>
  37. </td>
  38. </tr>
  39. </tbody>
  40. </table>
  41. </div>
  42. <!-- end header part -->
  43. <!-- Generated by Doxygen 1.8.11 -->
  44. </div><!-- top -->
  45. <div id="side-nav" class="ui-resizable side-nav-resizable">
  46. <div id="nav-tree">
  47. <div id="nav-tree-contents">
  48. <div id="nav-sync" class="sync"></div>
  49. </div>
  50. </div>
  51. <div id="splitbar" style="-moz-user-select:none;"
  52. class="ui-resizable-handle">
  53. </div>
  54. </div>
  55. <script type="text/javascript">
  56. $(document).ready(function(){initNavTree('group___epid_member_module.html','');});
  57. </script>
  58. <div id="doc-content">
  59. <div class="header">
  60. <div class="summary">
  61. <a href="#nested-classes">Data Structures</a> &#124;
  62. <a href="#typedef-members">Typedefs</a> &#124;
  63. <a href="#func-members">Functions</a> </div>
  64. <div class="headertitle">
  65. <div class="title">member<div class="ingroups"><a class="el" href="group___epid_module.html">epid</a></div></div> </div>
  66. </div><!--header-->
  67. <div class="contents">
  68. <p>Member functionality.
  69. <a href="#details">More...</a></p>
  70. <table class="memberdecls">
  71. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
  72. Data Structures</h2></td></tr>
  73. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_member_precomp.html">MemberPrecomp</a></td></tr>
  74. <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pre-computed member settings. <a href="struct_member_precomp.html#details">More...</a><br /></td></tr>
  75. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  76. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_pre_computed_signature.html">PreComputedSignature</a></td></tr>
  77. <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pre-computed signature. <a href="struct_pre_computed_signature.html#details">More...</a><br /></td></tr>
  78. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  79. </table><table class="memberdecls">
  80. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
  81. Typedefs</h2></td></tr>
  82. <tr class="memitem:gadfb10d5dfdadb0694792c7b06718e817"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gadfb10d5dfdadb0694792c7b06718e817"></a>
  83. typedef struct <a class="el" href="group___epid_member_module.html#gadfb10d5dfdadb0694792c7b06718e817">MemberCtx</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#gadfb10d5dfdadb0694792c7b06718e817">MemberCtx</a></td></tr>
  84. <tr class="memdesc:gadfb10d5dfdadb0694792c7b06718e817"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal context of member. <br /></td></tr>
  85. <tr class="separator:gadfb10d5dfdadb0694792c7b06718e817"><td class="memSeparator" colspan="2">&#160;</td></tr>
  86. </table><table class="memberdecls">
  87. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
  88. Functions</h2></td></tr>
  89. <tr class="memitem:ga561c4d544a78ee1bf59c3f4f919aa7bb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#ga561c4d544a78ee1bf59c3f4f919aa7bb">EpidMemberCreate</a> (<a class="el" href="struct_group_pub_key.html">GroupPubKey</a> const *pub_key, <a class="el" href="struct_priv_key.html">PrivKey</a> const *priv_key, <a class="el" href="struct_member_precomp.html">MemberPrecomp</a> const *precomp, <a class="el" href="group___epid_common.html#ga6119a2c0323a3fca9e502b24bc378c2c">BitSupplier</a> rnd_func, void *rnd_param, <a class="el" href="group___epid_member_module.html#gadfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> **ctx)</td></tr>
  90. <tr class="memdesc:ga561c4d544a78ee1bf59c3f4f919aa7bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new member context. <a href="#ga561c4d544a78ee1bf59c3f4f919aa7bb">More...</a><br /></td></tr>
  91. <tr class="separator:ga561c4d544a78ee1bf59c3f4f919aa7bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
  92. <tr class="memitem:ga3824589c683c5e0e59d483462fce65d6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#ga3824589c683c5e0e59d483462fce65d6">EpidMemberDelete</a> (<a class="el" href="group___epid_member_module.html#gadfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> **ctx)</td></tr>
  93. <tr class="memdesc:ga3824589c683c5e0e59d483462fce65d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deletes an existing member context. <a href="#ga3824589c683c5e0e59d483462fce65d6">More...</a><br /></td></tr>
  94. <tr class="separator:ga3824589c683c5e0e59d483462fce65d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
  95. <tr class="memitem:ga5c35798d62cf81c4ca62b22c38809721"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#ga5c35798d62cf81c4ca62b22c38809721">EpidMemberWritePrecomp</a> (<a class="el" href="group___epid_member_module.html#gadfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> const *ctx, <a class="el" href="struct_member_precomp.html">MemberPrecomp</a> *precomp)</td></tr>
  96. <tr class="memdesc:ga5c35798d62cf81c4ca62b22c38809721"><td class="mdescLeft">&#160;</td><td class="mdescRight">Serializes the pre-computed member settings. <a href="#ga5c35798d62cf81c4ca62b22c38809721">More...</a><br /></td></tr>
  97. <tr class="separator:ga5c35798d62cf81c4ca62b22c38809721"><td class="memSeparator" colspan="2">&#160;</td></tr>
  98. <tr class="memitem:ga9998eb454838ff5d232ff22ecbab31bf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#ga9998eb454838ff5d232ff22ecbab31bf">EpidMemberSetHashAlg</a> (<a class="el" href="group___epid_member_module.html#gadfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> *ctx, <a class="el" href="group___epid_types.html#ga5e450438f6f9a5eacd0cf5ce354ec890">HashAlg</a> hash_alg)</td></tr>
  99. <tr class="memdesc:ga9998eb454838ff5d232ff22ecbab31bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the hash algorithm to be used by a member. <a href="#ga9998eb454838ff5d232ff22ecbab31bf">More...</a><br /></td></tr>
  100. <tr class="separator:ga9998eb454838ff5d232ff22ecbab31bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
  101. <tr class="memitem:ga76e535722467af7c16809b5b521e0000"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#ga76e535722467af7c16809b5b521e0000">EpidGetSigSize</a> (<a class="el" href="struct_sig_rl.html">SigRl</a> const *sig_rl)</td></tr>
  102. <tr class="memdesc:ga76e535722467af7c16809b5b521e0000"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the size in bytes required for an Intel(R) EPID signature. <a href="#ga76e535722467af7c16809b5b521e0000">More...</a><br /></td></tr>
  103. <tr class="separator:ga76e535722467af7c16809b5b521e0000"><td class="memSeparator" colspan="2">&#160;</td></tr>
  104. <tr class="memitem:ga759155a719254f734157722716dac640"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#ga759155a719254f734157722716dac640">EpidSign</a> (<a class="el" href="group___epid_member_module.html#gadfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> const *ctx, void const *msg, size_t msg_len, void const *basename, size_t basename_len, <a class="el" href="struct_sig_rl.html">SigRl</a> const *sig_rl, size_t sig_rl_size, <a class="el" href="struct_epid_signature.html">EpidSignature</a> *sig, size_t sig_len)</td></tr>
  105. <tr class="memdesc:ga759155a719254f734157722716dac640"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes an Intel(R) EPID signature. <a href="#ga759155a719254f734157722716dac640">More...</a><br /></td></tr>
  106. <tr class="separator:ga759155a719254f734157722716dac640"><td class="memSeparator" colspan="2">&#160;</td></tr>
  107. <tr class="memitem:gad92d3c3266ae1833ffb1dba9ad76035d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#gad92d3c3266ae1833ffb1dba9ad76035d">EpidRegisterBaseName</a> (<a class="el" href="group___epid_member_module.html#gadfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> *ctx, void const *basename, size_t basename_len)</td></tr>
  108. <tr class="memdesc:gad92d3c3266ae1833ffb1dba9ad76035d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers a basename with a member. <a href="#gad92d3c3266ae1833ffb1dba9ad76035d">More...</a><br /></td></tr>
  109. <tr class="separator:gad92d3c3266ae1833ffb1dba9ad76035d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  110. <tr class="memitem:gad2e3de5c6ce641a318f8a46b61e75236"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#gad2e3de5c6ce641a318f8a46b61e75236">EpidAddPreSigs</a> (<a class="el" href="group___epid_member_module.html#gadfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> *ctx, size_t number_presigs, <a class="el" href="struct_pre_computed_signature.html">PreComputedSignature</a> *presigs)</td></tr>
  111. <tr class="memdesc:gad2e3de5c6ce641a318f8a46b61e75236"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extends the member's pool of pre-computed signatures. <a href="#gad2e3de5c6ce641a318f8a46b61e75236">More...</a><br /></td></tr>
  112. <tr class="separator:gad2e3de5c6ce641a318f8a46b61e75236"><td class="memSeparator" colspan="2">&#160;</td></tr>
  113. <tr class="memitem:gad78ca056dfea2565bbacd5734d9dc075"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#gad78ca056dfea2565bbacd5734d9dc075">EpidGetNumPreSigs</a> (<a class="el" href="group___epid_member_module.html#gadfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> const *ctx)</td></tr>
  114. <tr class="memdesc:gad78ca056dfea2565bbacd5734d9dc075"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the number of pre-computed signatures in the member's pool. <a href="#gad78ca056dfea2565bbacd5734d9dc075">More...</a><br /></td></tr>
  115. <tr class="separator:gad78ca056dfea2565bbacd5734d9dc075"><td class="memSeparator" colspan="2">&#160;</td></tr>
  116. <tr class="memitem:ga9e12c7cec8d0c4e07b12c0e26a278c9d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#ga9e12c7cec8d0c4e07b12c0e26a278c9d">EpidWritePreSigs</a> (<a class="el" href="group___epid_member_module.html#gadfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> *ctx, <a class="el" href="struct_pre_computed_signature.html">PreComputedSignature</a> *presigs, size_t number_presigs)</td></tr>
  117. <tr class="memdesc:ga9e12c7cec8d0c4e07b12c0e26a278c9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Serializes pre-computed signatures from the member's pool. <a href="#ga9e12c7cec8d0c4e07b12c0e26a278c9d">More...</a><br /></td></tr>
  118. <tr class="separator:ga9e12c7cec8d0c4e07b12c0e26a278c9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  119. <tr class="memitem:ga13dd0d72be9babf8194d472d7712a361"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#ga13dd0d72be9babf8194d472d7712a361">EpidRequestJoin</a> (<a class="el" href="struct_group_pub_key.html">GroupPubKey</a> const *pub_key, <a class="el" href="group___epid_types.html#ga55eb2193045bde31af3f551565126042">IssuerNonce</a> const *ni, <a class="el" href="struct_fp_elem_str.html">FpElemStr</a> const *f, <a class="el" href="group___epid_common.html#ga6119a2c0323a3fca9e502b24bc378c2c">BitSupplier</a> rnd_func, void *rnd_param, <a class="el" href="group___epid_types.html#ga5e450438f6f9a5eacd0cf5ce354ec890">HashAlg</a> hash_alg, <a class="el" href="struct_join_request.html">JoinRequest</a> *join_request)</td></tr>
  120. <tr class="memdesc:ga13dd0d72be9babf8194d472d7712a361"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a request to join a group. <a href="#ga13dd0d72be9babf8194d472d7712a361">More...</a><br /></td></tr>
  121. <tr class="separator:ga13dd0d72be9babf8194d472d7712a361"><td class="memSeparator" colspan="2">&#160;</td></tr>
  122. <tr class="memitem:gae04a250d5981fcf9bd6f9f57e0468faa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#gae04a250d5981fcf9bd6f9f57e0468faa">EpidSignBasic</a> (<a class="el" href="group___epid_member_module.html#gadfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> const *ctx, void const *msg, size_t msg_len, void const *basename, size_t basename_len, <a class="el" href="struct_basic_signature.html">BasicSignature</a> *sig)</td></tr>
  123. <tr class="memdesc:gae04a250d5981fcf9bd6f9f57e0468faa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a basic signature for use in constrained environment. <a href="#gae04a250d5981fcf9bd6f9f57e0468faa">More...</a><br /></td></tr>
  124. <tr class="separator:gae04a250d5981fcf9bd6f9f57e0468faa"><td class="memSeparator" colspan="2">&#160;</td></tr>
  125. <tr class="memitem:gac8e2c6c1fead8030785a40427905a2cc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#gac8e2c6c1fead8030785a40427905a2cc">EpidNrProve</a> (<a class="el" href="group___epid_member_module.html#gadfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> const *ctx, void const *msg, size_t msg_len, <a class="el" href="struct_basic_signature.html">BasicSignature</a> const *sig, <a class="el" href="struct_sig_rl_entry.html">SigRlEntry</a> const *sigrl_entry, <a class="el" href="struct_nr_proof.html">NrProof</a> *proof)</td></tr>
  126. <tr class="memdesc:gac8e2c6c1fead8030785a40427905a2cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates a non-revoked proof for a single signature based revocation list entry. <a href="#gac8e2c6c1fead8030785a40427905a2cc">More...</a><br /></td></tr>
  127. <tr class="separator:gac8e2c6c1fead8030785a40427905a2cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
  128. <tr class="memitem:ga8e3f201d1e9dc668659e08a3bdf543b6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="stdtypes_8h.html#ad5c9d4ba3dc37783a528b0925dc981a0">bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#ga8e3f201d1e9dc668659e08a3bdf543b6">EpidIsPrivKeyInGroup</a> (<a class="el" href="struct_group_pub_key.html">GroupPubKey</a> const *pub_key, <a class="el" href="struct_priv_key.html">PrivKey</a> const *priv_key)</td></tr>
  129. <tr class="memdesc:ga8e3f201d1e9dc668659e08a3bdf543b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests if a member private key is valid without checking revocation. <a href="#ga8e3f201d1e9dc668659e08a3bdf543b6">More...</a><br /></td></tr>
  130. <tr class="separator:ga8e3f201d1e9dc668659e08a3bdf543b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
  131. <tr class="memitem:gaf8cd05388f017486f14da2ee48d067ef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#gaf8cd05388f017486f14da2ee48d067ef">EpidDecompressPrivKey</a> (<a class="el" href="struct_group_pub_key.html">GroupPubKey</a> const *pub_key, <a class="el" href="struct_compressed_priv_key.html">CompressedPrivKey</a> const *compressed_privkey, <a class="el" href="struct_priv_key.html">PrivKey</a> *priv_key)</td></tr>
  132. <tr class="memdesc:gaf8cd05388f017486f14da2ee48d067ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decompresses compressed member private key. <a href="#gaf8cd05388f017486f14da2ee48d067ef">More...</a><br /></td></tr>
  133. <tr class="separator:gaf8cd05388f017486f14da2ee48d067ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
  134. </table>
  135. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  136. <p>Member functionality. </p>
  137. <p>Defines the APIs needed by Intel(R) EPID members. Each member context (<a class="el" href="group___epid_member_module.html#gadfb10d5dfdadb0694792c7b06718e817" title="Internal context of member. ">MemberCtx</a>) represents membership in a single group. </p>
  138. <h2 class="groupheader">Function Documentation</h2>
  139. <a class="anchor" id="gad2e3de5c6ce641a318f8a46b61e75236"></a>
  140. <div class="memitem">
  141. <div class="memproto">
  142. <table class="memname">
  143. <tr>
  144. <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidAddPreSigs </td>
  145. <td>(</td>
  146. <td class="paramtype"><a class="el" href="group___epid_member_module.html#gadfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> *&#160;</td>
  147. <td class="paramname"><em>ctx</em>, </td>
  148. </tr>
  149. <tr>
  150. <td class="paramkey"></td>
  151. <td></td>
  152. <td class="paramtype">size_t&#160;</td>
  153. <td class="paramname"><em>number_presigs</em>, </td>
  154. </tr>
  155. <tr>
  156. <td class="paramkey"></td>
  157. <td></td>
  158. <td class="paramtype"><a class="el" href="struct_pre_computed_signature.html">PreComputedSignature</a> *&#160;</td>
  159. <td class="paramname"><em>presigs</em>&#160;</td>
  160. </tr>
  161. <tr>
  162. <td></td>
  163. <td>)</td>
  164. <td></td><td></td>
  165. </tr>
  166. </table>
  167. </div><div class="memdoc">
  168. <p>Extends the member's pool of pre-computed signatures. </p>
  169. <p>Can either generate new pre-computed signatures or import existing ones. <a class="el" href="group___epid_member_module.html#ga9e12c7cec8d0c4e07b12c0e26a278c9d" title="Serializes pre-computed signatures from the member&#39;s pool. ">EpidWritePreSigs</a> can be used to export pre-computed signatures.</p>
  170. <dl class="params"><dt>Parameters</dt><dd>
  171. <table class="params">
  172. <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The member context. </td></tr>
  173. <tr><td class="paramdir">[in]</td><td class="paramname">number_presigs</td><td>The number of pre-computed signatures to add to the internal pool. </td></tr>
  174. <tr><td class="paramdir">[in,out]</td><td class="paramname">presigs</td><td>Optional array of valid pre-computed signatures to import. If presigs is not NULL it most contain at least number_presigs pre-computed signatures.</td></tr>
  175. </table>
  176. </dd>
  177. </dl>
  178. <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>
  179. <dl class="section note"><dt>Note</dt><dd>presigs buffer is zeroed out before return to prevent pre-computed signatures from being reused.</dd>
  180. <dd>
  181. If the result is not <a class="el" href="group___error_codes.html#ggafdb27c77c2c4b32c807e326a8a0da360a8a6861e14322ca9193498ffc955537f9" title="no error ">kEpidNoErr</a> the state of the pre-computed signature pool, and of presigs, is undefined.</dd></dl>
  182. <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_member_module.html#ga561c4d544a78ee1bf59c3f4f919aa7bb" title="Creates a new member context. ">EpidMemberCreate</a> </dd>
  183. <dd>
  184. <a class="el" href="group___epid_member_module.html#ga9e12c7cec8d0c4e07b12c0e26a278c9d" title="Serializes pre-computed signatures from the member&#39;s pool. ">EpidWritePreSigs</a> </dd></dl>
  185. </div>
  186. </div>
  187. <a class="anchor" id="gaf8cd05388f017486f14da2ee48d067ef"></a>
  188. <div class="memitem">
  189. <div class="memproto">
  190. <table class="memname">
  191. <tr>
  192. <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidDecompressPrivKey </td>
  193. <td>(</td>
  194. <td class="paramtype"><a class="el" href="struct_group_pub_key.html">GroupPubKey</a> const *&#160;</td>
  195. <td class="paramname"><em>pub_key</em>, </td>
  196. </tr>
  197. <tr>
  198. <td class="paramkey"></td>
  199. <td></td>
  200. <td class="paramtype"><a class="el" href="struct_compressed_priv_key.html">CompressedPrivKey</a> const *&#160;</td>
  201. <td class="paramname"><em>compressed_privkey</em>, </td>
  202. </tr>
  203. <tr>
  204. <td class="paramkey"></td>
  205. <td></td>
  206. <td class="paramtype"><a class="el" href="struct_priv_key.html">PrivKey</a> *&#160;</td>
  207. <td class="paramname"><em>priv_key</em>&#160;</td>
  208. </tr>
  209. <tr>
  210. <td></td>
  211. <td>)</td>
  212. <td></td><td></td>
  213. </tr>
  214. </table>
  215. </div><div class="memdoc">
  216. <p>Decompresses compressed member private key. </p>
  217. <p>Converts a compressed member private key into a member private key for use by other member APIs.</p>
  218. <dl class="params"><dt>Parameters</dt><dd>
  219. <table class="params">
  220. <tr><td class="paramdir">[in]</td><td class="paramname">pub_key</td><td>The public key of the group. </td></tr>
  221. <tr><td class="paramdir">[in]</td><td class="paramname">compressed_privkey</td><td>The compressed member private key to be decompressed. </td></tr>
  222. <tr><td class="paramdir">[out]</td><td class="paramname">priv_key</td><td>The member private key.</td></tr>
  223. </table>
  224. </dd>
  225. </dl>
  226. <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>
  227. </div>
  228. </div>
  229. <a class="anchor" id="gad78ca056dfea2565bbacd5734d9dc075"></a>
  230. <div class="memitem">
  231. <div class="memproto">
  232. <table class="memname">
  233. <tr>
  234. <td class="memname">size_t EpidGetNumPreSigs </td>
  235. <td>(</td>
  236. <td class="paramtype"><a class="el" href="group___epid_member_module.html#gadfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> const *&#160;</td>
  237. <td class="paramname"><em>ctx</em></td><td>)</td>
  238. <td></td>
  239. </tr>
  240. </table>
  241. </div><div class="memdoc">
  242. <p>Gets the number of pre-computed signatures in the member's pool. </p>
  243. <dl class="params"><dt>Parameters</dt><dd>
  244. <table class="params">
  245. <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The member context.</td></tr>
  246. </table>
  247. </dd>
  248. </dl>
  249. <dl class="section return"><dt>Returns</dt><dd>Number of remaining pre-computed signatures. Returns 0 if ctx is NULL.</dd></dl>
  250. <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_member_module.html#ga561c4d544a78ee1bf59c3f4f919aa7bb" title="Creates a new member context. ">EpidMemberCreate</a> </dd>
  251. <dd>
  252. <a class="el" href="group___epid_member_module.html#ga9e12c7cec8d0c4e07b12c0e26a278c9d" title="Serializes pre-computed signatures from the member&#39;s pool. ">EpidWritePreSigs</a> </dd></dl>
  253. </div>
  254. </div>
  255. <a class="anchor" id="ga76e535722467af7c16809b5b521e0000"></a>
  256. <div class="memitem">
  257. <div class="memproto">
  258. <table class="memname">
  259. <tr>
  260. <td class="memname">size_t EpidGetSigSize </td>
  261. <td>(</td>
  262. <td class="paramtype"><a class="el" href="struct_sig_rl.html">SigRl</a> const *&#160;</td>
  263. <td class="paramname"><em>sig_rl</em></td><td>)</td>
  264. <td></td>
  265. </tr>
  266. </table>
  267. </div><div class="memdoc">
  268. <p>Computes the size in bytes required for an Intel(R) EPID signature. </p>
  269. <dl class="params"><dt>Parameters</dt><dd>
  270. <table class="params">
  271. <tr><td class="paramdir">[in]</td><td class="paramname">sig_rl</td><td>The signature based revocation list that is used. NULL is treated as a zero length list.</td></tr>
  272. </table>
  273. </dd>
  274. </dl>
  275. <dl class="section return"><dt>Returns</dt><dd>Size in bytes of an Intel(R) EPID signature including proofs for each entry in the signature based revocation list.</dd></dl>
  276. <dl class="section see"><dt>See also</dt><dd><a class="el" href="struct_sig_rl.html" title="signature based revocation list ">SigRl</a> </dd></dl>
  277. </div>
  278. </div>
  279. <a class="anchor" id="ga8e3f201d1e9dc668659e08a3bdf543b6"></a>
  280. <div class="memitem">
  281. <div class="memproto">
  282. <table class="memname">
  283. <tr>
  284. <td class="memname"><a class="el" href="stdtypes_8h.html#ad5c9d4ba3dc37783a528b0925dc981a0">bool</a> EpidIsPrivKeyInGroup </td>
  285. <td>(</td>
  286. <td class="paramtype"><a class="el" href="struct_group_pub_key.html">GroupPubKey</a> const *&#160;</td>
  287. <td class="paramname"><em>pub_key</em>, </td>
  288. </tr>
  289. <tr>
  290. <td class="paramkey"></td>
  291. <td></td>
  292. <td class="paramtype"><a class="el" href="struct_priv_key.html">PrivKey</a> const *&#160;</td>
  293. <td class="paramname"><em>priv_key</em>&#160;</td>
  294. </tr>
  295. <tr>
  296. <td></td>
  297. <td>)</td>
  298. <td></td><td></td>
  299. </tr>
  300. </table>
  301. </div><div class="memdoc">
  302. <p>Tests if a member private key is valid without checking revocation. </p>
  303. <p>Used to check that a member private key is a valid key for a group. This is useful as a cross check when creating a new member private key as part of the join process</p>
  304. <dl class="params"><dt>Parameters</dt><dd>
  305. <table class="params">
  306. <tr><td class="paramdir">[in]</td><td class="paramname">pub_key</td><td>The public key of the group. </td></tr>
  307. <tr><td class="paramdir">[in]</td><td class="paramname">priv_key</td><td>The private key to check.</td></tr>
  308. </table>
  309. </dd>
  310. </dl>
  311. <dl class="section return"><dt>Returns</dt><dd>bool</dd></dl>
  312. <dl class="retval"><dt>Return values</dt><dd>
  313. <table class="retval">
  314. <tr><td class="paramname">true</td><td>if the private key is valid for the group of the public key </td></tr>
  315. <tr><td class="paramname">false</td><td>if the private key is not valid for the group of the public key</td></tr>
  316. </table>
  317. </dd>
  318. </dl>
  319. <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_member_module.html#ga13dd0d72be9babf8194d472d7712a361" title="Creates a request to join a group. ">EpidRequestJoin</a> </dd></dl>
  320. </div>
  321. </div>
  322. <a class="anchor" id="ga561c4d544a78ee1bf59c3f4f919aa7bb"></a>
  323. <div class="memitem">
  324. <div class="memproto">
  325. <table class="memname">
  326. <tr>
  327. <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidMemberCreate </td>
  328. <td>(</td>
  329. <td class="paramtype"><a class="el" href="struct_group_pub_key.html">GroupPubKey</a> const *&#160;</td>
  330. <td class="paramname"><em>pub_key</em>, </td>
  331. </tr>
  332. <tr>
  333. <td class="paramkey"></td>
  334. <td></td>
  335. <td class="paramtype"><a class="el" href="struct_priv_key.html">PrivKey</a> const *&#160;</td>
  336. <td class="paramname"><em>priv_key</em>, </td>
  337. </tr>
  338. <tr>
  339. <td class="paramkey"></td>
  340. <td></td>
  341. <td class="paramtype"><a class="el" href="struct_member_precomp.html">MemberPrecomp</a> const *&#160;</td>
  342. <td class="paramname"><em>precomp</em>, </td>
  343. </tr>
  344. <tr>
  345. <td class="paramkey"></td>
  346. <td></td>
  347. <td class="paramtype"><a class="el" href="group___epid_common.html#ga6119a2c0323a3fca9e502b24bc378c2c">BitSupplier</a>&#160;</td>
  348. <td class="paramname"><em>rnd_func</em>, </td>
  349. </tr>
  350. <tr>
  351. <td class="paramkey"></td>
  352. <td></td>
  353. <td class="paramtype">void *&#160;</td>
  354. <td class="paramname"><em>rnd_param</em>, </td>
  355. </tr>
  356. <tr>
  357. <td class="paramkey"></td>
  358. <td></td>
  359. <td class="paramtype"><a class="el" href="group___epid_member_module.html#gadfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> **&#160;</td>
  360. <td class="paramname"><em>ctx</em>&#160;</td>
  361. </tr>
  362. <tr>
  363. <td></td>
  364. <td>)</td>
  365. <td></td><td></td>
  366. </tr>
  367. </table>
  368. </div><div class="memdoc">
  369. <p>Creates a new member context. </p>
  370. <p>Must be called to create the member context that is used by other "Member" APIs.</p>
  371. <p>Allocates memory for the context, then initializes it.</p>
  372. <p><a class="el" href="group___epid_member_module.html#ga3824589c683c5e0e59d483462fce65d6" title="Deletes an existing member context. ">EpidMemberDelete()</a> must be called to safely release the member context.</p>
  373. <dl class="params"><dt>Parameters</dt><dd>
  374. <table class="params">
  375. <tr><td class="paramdir">[in]</td><td class="paramname">pub_key</td><td>The group certificate. </td></tr>
  376. <tr><td class="paramdir">[in]</td><td class="paramname">priv_key</td><td>The member private key. </td></tr>
  377. <tr><td class="paramdir">[in]</td><td class="paramname">precomp</td><td>Optional pre-computed data. If NULL the value is computed internally and is readable using <a class="el" href="group___epid_member_module.html#ga5c35798d62cf81c4ca62b22c38809721" title="Serializes the pre-computed member settings. ">EpidMemberWritePrecomp()</a>. </td></tr>
  378. <tr><td class="paramdir">[in]</td><td class="paramname">rnd_func</td><td>Random number generator. </td></tr>
  379. <tr><td class="paramdir">[in]</td><td class="paramname">rnd_param</td><td>Pass through context data for rnd_func. </td></tr>
  380. <tr><td class="paramdir">[out]</td><td class="paramname">ctx</td><td>Newly constructed member context.</td></tr>
  381. </table>
  382. </dd>
  383. </dl>
  384. <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>
  385. <dl class="section warning"><dt>Warning</dt><dd>For security rnd_func should be a cryptographically secure random number generator.</dd></dl>
  386. <dl class="section note"><dt>Note</dt><dd>If the result is not <a class="el" href="group___error_codes.html#ggafdb27c77c2c4b32c807e326a8a0da360a8a6861e14322ca9193498ffc955537f9" title="no error ">kEpidNoErr</a> the content of ctx is undefined.</dd></dl>
  387. <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_member_module.html#ga3824589c683c5e0e59d483462fce65d6" title="Deletes an existing member context. ">EpidMemberDelete</a> </dd>
  388. <dd>
  389. <a class="el" href="group___epid_member_module.html#ga5c35798d62cf81c4ca62b22c38809721" title="Serializes the pre-computed member settings. ">EpidMemberWritePrecomp</a> </dd></dl>
  390. </div>
  391. </div>
  392. <a class="anchor" id="ga3824589c683c5e0e59d483462fce65d6"></a>
  393. <div class="memitem">
  394. <div class="memproto">
  395. <table class="memname">
  396. <tr>
  397. <td class="memname">void EpidMemberDelete </td>
  398. <td>(</td>
  399. <td class="paramtype"><a class="el" href="group___epid_member_module.html#gadfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> **&#160;</td>
  400. <td class="paramname"><em>ctx</em></td><td>)</td>
  401. <td></td>
  402. </tr>
  403. </table>
  404. </div><div class="memdoc">
  405. <p>Deletes an existing member context. </p>
  406. <p>Must be called to safely release a member context created using <a class="el" href="group___epid_member_module.html#ga561c4d544a78ee1bf59c3f4f919aa7bb" title="Creates a new member context. ">EpidMemberCreate()</a>.</p>
  407. <p>De-initializes the context, frees memory used by the context, and sets the context pointer to NULL.</p>
  408. <dl class="params"><dt>Parameters</dt><dd>
  409. <table class="params">
  410. <tr><td class="paramdir">[in,out]</td><td class="paramname">ctx</td><td>The member context. Can be NULL.</td></tr>
  411. </table>
  412. </dd>
  413. </dl>
  414. <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_member_module.html#ga561c4d544a78ee1bf59c3f4f919aa7bb" title="Creates a new member context. ">EpidMemberCreate</a> </dd></dl>
  415. </div>
  416. </div>
  417. <a class="anchor" id="ga9998eb454838ff5d232ff22ecbab31bf"></a>
  418. <div class="memitem">
  419. <div class="memproto">
  420. <table class="memname">
  421. <tr>
  422. <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidMemberSetHashAlg </td>
  423. <td>(</td>
  424. <td class="paramtype"><a class="el" href="group___epid_member_module.html#gadfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> *&#160;</td>
  425. <td class="paramname"><em>ctx</em>, </td>
  426. </tr>
  427. <tr>
  428. <td class="paramkey"></td>
  429. <td></td>
  430. <td class="paramtype"><a class="el" href="group___epid_types.html#ga5e450438f6f9a5eacd0cf5ce354ec890">HashAlg</a>&#160;</td>
  431. <td class="paramname"><em>hash_alg</em>&#160;</td>
  432. </tr>
  433. <tr>
  434. <td></td>
  435. <td>)</td>
  436. <td></td><td></td>
  437. </tr>
  438. </table>
  439. </div><div class="memdoc">
  440. <p>Sets the hash algorithm to be used by a member. </p>
  441. <dl class="params"><dt>Parameters</dt><dd>
  442. <table class="params">
  443. <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The member context. </td></tr>
  444. <tr><td class="paramdir">[in]</td><td class="paramname">hash_alg</td><td>The hash algorithm to use.</td></tr>
  445. </table>
  446. </dd>
  447. </dl>
  448. <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>
  449. <dl class="section note"><dt>Note</dt><dd>If the result is not <a class="el" href="group___error_codes.html#ggafdb27c77c2c4b32c807e326a8a0da360a8a6861e14322ca9193498ffc955537f9" title="no error ">kEpidNoErr</a>, the hash algorithm used by the member is undefined.</dd></dl>
  450. <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_member_module.html#ga561c4d544a78ee1bf59c3f4f919aa7bb" title="Creates a new member context. ">EpidMemberCreate</a> </dd>
  451. <dd>
  452. <a class="el" href="group___epid_types.html#ga5e450438f6f9a5eacd0cf5ce354ec890" title="Recognized hash algorithms. ">HashAlg</a> </dd></dl>
  453. </div>
  454. </div>
  455. <a class="anchor" id="ga5c35798d62cf81c4ca62b22c38809721"></a>
  456. <div class="memitem">
  457. <div class="memproto">
  458. <table class="memname">
  459. <tr>
  460. <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidMemberWritePrecomp </td>
  461. <td>(</td>
  462. <td class="paramtype"><a class="el" href="group___epid_member_module.html#gadfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> const *&#160;</td>
  463. <td class="paramname"><em>ctx</em>, </td>
  464. </tr>
  465. <tr>
  466. <td class="paramkey"></td>
  467. <td></td>
  468. <td class="paramtype"><a class="el" href="struct_member_precomp.html">MemberPrecomp</a> *&#160;</td>
  469. <td class="paramname"><em>precomp</em>&#160;</td>
  470. </tr>
  471. <tr>
  472. <td></td>
  473. <td>)</td>
  474. <td></td><td></td>
  475. </tr>
  476. </table>
  477. </div><div class="memdoc">
  478. <p>Serializes the pre-computed member settings. </p>
  479. <dl class="params"><dt>Parameters</dt><dd>
  480. <table class="params">
  481. <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The member context. </td></tr>
  482. <tr><td class="paramdir">[out]</td><td class="paramname">precomp</td><td>The Serialized pre-computed member settings.</td></tr>
  483. </table>
  484. </dd>
  485. </dl>
  486. <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>
  487. <dl class="section note"><dt>Note</dt><dd>If the result is not <a class="el" href="group___error_codes.html#ggafdb27c77c2c4b32c807e326a8a0da360a8a6861e14322ca9193498ffc955537f9" title="no error ">kEpidNoErr</a>, the content of precomp is undefined. </dd></dl>
  488. </div>
  489. </div>
  490. <a class="anchor" id="gac8e2c6c1fead8030785a40427905a2cc"></a>
  491. <div class="memitem">
  492. <div class="memproto">
  493. <table class="memname">
  494. <tr>
  495. <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidNrProve </td>
  496. <td>(</td>
  497. <td class="paramtype"><a class="el" href="group___epid_member_module.html#gadfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> const *&#160;</td>
  498. <td class="paramname"><em>ctx</em>, </td>
  499. </tr>
  500. <tr>
  501. <td class="paramkey"></td>
  502. <td></td>
  503. <td class="paramtype">void const *&#160;</td>
  504. <td class="paramname"><em>msg</em>, </td>
  505. </tr>
  506. <tr>
  507. <td class="paramkey"></td>
  508. <td></td>
  509. <td class="paramtype">size_t&#160;</td>
  510. <td class="paramname"><em>msg_len</em>, </td>
  511. </tr>
  512. <tr>
  513. <td class="paramkey"></td>
  514. <td></td>
  515. <td class="paramtype"><a class="el" href="struct_basic_signature.html">BasicSignature</a> const *&#160;</td>
  516. <td class="paramname"><em>sig</em>, </td>
  517. </tr>
  518. <tr>
  519. <td class="paramkey"></td>
  520. <td></td>
  521. <td class="paramtype"><a class="el" href="struct_sig_rl_entry.html">SigRlEntry</a> const *&#160;</td>
  522. <td class="paramname"><em>sigrl_entry</em>, </td>
  523. </tr>
  524. <tr>
  525. <td class="paramkey"></td>
  526. <td></td>
  527. <td class="paramtype"><a class="el" href="struct_nr_proof.html">NrProof</a> *&#160;</td>
  528. <td class="paramname"><em>proof</em>&#160;</td>
  529. </tr>
  530. <tr>
  531. <td></td>
  532. <td>)</td>
  533. <td></td><td></td>
  534. </tr>
  535. </table>
  536. </div><div class="memdoc">
  537. <p>Calculates a non-revoked proof for a single signature based revocation list entry. </p>
  538. <p>Used in constrained environments where, due to limited memory, it may not be possible to process through a large and potentially unbounded revocation list.</p>
  539. <dl class="params"><dt>Parameters</dt><dd>
  540. <table class="params">
  541. <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The member context. </td></tr>
  542. <tr><td class="paramdir">[in]</td><td class="paramname">msg</td><td>The message. </td></tr>
  543. <tr><td class="paramdir">[in]</td><td class="paramname">msg_len</td><td>The length of message in bytes. </td></tr>
  544. <tr><td class="paramdir">[in]</td><td class="paramname">sig</td><td>The basic signature. </td></tr>
  545. <tr><td class="paramdir">[in]</td><td class="paramname">sigrl_entry</td><td>The signature based revocation list entry. </td></tr>
  546. <tr><td class="paramdir">[out]</td><td class="paramname">proof</td><td>The generated non-revoked proof.</td></tr>
  547. </table>
  548. </dd>
  549. </dl>
  550. <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>
  551. <dl class="section note"><dt>Note</dt><dd>This function should be used in conjunction with <a class="el" href="group___epid_member_module.html#gae04a250d5981fcf9bd6f9f57e0468faa" title="Creates a basic signature for use in constrained environment. ">EpidSignBasic()</a>.</dd>
  552. <dd>
  553. If the result is not <a class="el" href="group___error_codes.html#ggafdb27c77c2c4b32c807e326a8a0da360a8a6861e14322ca9193498ffc955537f9" title="no error ">kEpidNoErr</a>, the content of proof is undefined.</dd></dl>
  554. <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_member_module.html#ga561c4d544a78ee1bf59c3f4f919aa7bb" title="Creates a new member context. ">EpidMemberCreate</a> </dd>
  555. <dd>
  556. <a class="el" href="group___epid_member_module.html#gae04a250d5981fcf9bd6f9f57e0468faa" title="Creates a basic signature for use in constrained environment. ">EpidSignBasic</a> </dd></dl>
  557. </div>
  558. </div>
  559. <a class="anchor" id="gad92d3c3266ae1833ffb1dba9ad76035d"></a>
  560. <div class="memitem">
  561. <div class="memproto">
  562. <table class="memname">
  563. <tr>
  564. <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidRegisterBaseName </td>
  565. <td>(</td>
  566. <td class="paramtype"><a class="el" href="group___epid_member_module.html#gadfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> *&#160;</td>
  567. <td class="paramname"><em>ctx</em>, </td>
  568. </tr>
  569. <tr>
  570. <td class="paramkey"></td>
  571. <td></td>
  572. <td class="paramtype">void const *&#160;</td>
  573. <td class="paramname"><em>basename</em>, </td>
  574. </tr>
  575. <tr>
  576. <td class="paramkey"></td>
  577. <td></td>
  578. <td class="paramtype">size_t&#160;</td>
  579. <td class="paramname"><em>basename_len</em>&#160;</td>
  580. </tr>
  581. <tr>
  582. <td></td>
  583. <td>)</td>
  584. <td></td><td></td>
  585. </tr>
  586. </table>
  587. </div><div class="memdoc">
  588. <p>Registers a basename with a member. </p>
  589. <p>To prevent loss of privacy, the member keeps a list of basenames (corresponding to authorized verifiers). The member signs a message with a basename only if the basename is in the member's basename list.</p>
  590. <dl class="section warning"><dt>Warning</dt><dd>The use of a name-based signature creates a platform unique pseudonymous identifier. Because it reduces the member's privacy, the user should be notified when it is used and should have control over its use.</dd></dl>
  591. <dl class="params"><dt>Parameters</dt><dd>
  592. <table class="params">
  593. <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The member context. </td></tr>
  594. <tr><td class="paramdir">[in]</td><td class="paramname">basename</td><td>The basename. </td></tr>
  595. <tr><td class="paramdir">[in]</td><td class="paramname">basename_len</td><td>Length of the basename.</td></tr>
  596. </table>
  597. </dd>
  598. </dl>
  599. <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>
  600. <dl class="retval"><dt>Return values</dt><dd>
  601. <table class="retval">
  602. <tr><td class="paramname"><a class="el" href="group___error_codes.html#ggafdb27c77c2c4b32c807e326a8a0da360a3706f895a660260033b5b91890516c0f" title="argument would add duplicate entry ">kEpidDuplicateErr</a></td><td>The basename was already registered.</td></tr>
  603. </table>
  604. </dd>
  605. </dl>
  606. <dl class="section note"><dt>Note</dt><dd>If the result is not <a class="el" href="group___error_codes.html#ggafdb27c77c2c4b32c807e326a8a0da360a8a6861e14322ca9193498ffc955537f9" title="no error ">kEpidNoErr</a> or <a class="el" href="group___error_codes.html#ggafdb27c77c2c4b32c807e326a8a0da360a3706f895a660260033b5b91890516c0f" title="argument would add duplicate entry ">kEpidDuplicateErr</a> it is undefined if the basename is registered. </dd></dl>
  607. </div>
  608. </div>
  609. <a class="anchor" id="ga13dd0d72be9babf8194d472d7712a361"></a>
  610. <div class="memitem">
  611. <div class="memproto">
  612. <table class="memname">
  613. <tr>
  614. <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidRequestJoin </td>
  615. <td>(</td>
  616. <td class="paramtype"><a class="el" href="struct_group_pub_key.html">GroupPubKey</a> const *&#160;</td>
  617. <td class="paramname"><em>pub_key</em>, </td>
  618. </tr>
  619. <tr>
  620. <td class="paramkey"></td>
  621. <td></td>
  622. <td class="paramtype"><a class="el" href="group___epid_types.html#ga55eb2193045bde31af3f551565126042">IssuerNonce</a> const *&#160;</td>
  623. <td class="paramname"><em>ni</em>, </td>
  624. </tr>
  625. <tr>
  626. <td class="paramkey"></td>
  627. <td></td>
  628. <td class="paramtype"><a class="el" href="struct_fp_elem_str.html">FpElemStr</a> const *&#160;</td>
  629. <td class="paramname"><em>f</em>, </td>
  630. </tr>
  631. <tr>
  632. <td class="paramkey"></td>
  633. <td></td>
  634. <td class="paramtype"><a class="el" href="group___epid_common.html#ga6119a2c0323a3fca9e502b24bc378c2c">BitSupplier</a>&#160;</td>
  635. <td class="paramname"><em>rnd_func</em>, </td>
  636. </tr>
  637. <tr>
  638. <td class="paramkey"></td>
  639. <td></td>
  640. <td class="paramtype">void *&#160;</td>
  641. <td class="paramname"><em>rnd_param</em>, </td>
  642. </tr>
  643. <tr>
  644. <td class="paramkey"></td>
  645. <td></td>
  646. <td class="paramtype"><a class="el" href="group___epid_types.html#ga5e450438f6f9a5eacd0cf5ce354ec890">HashAlg</a>&#160;</td>
  647. <td class="paramname"><em>hash_alg</em>, </td>
  648. </tr>
  649. <tr>
  650. <td class="paramkey"></td>
  651. <td></td>
  652. <td class="paramtype"><a class="el" href="struct_join_request.html">JoinRequest</a> *&#160;</td>
  653. <td class="paramname"><em>join_request</em>&#160;</td>
  654. </tr>
  655. <tr>
  656. <td></td>
  657. <td>)</td>
  658. <td></td><td></td>
  659. </tr>
  660. </table>
  661. </div><div class="memdoc">
  662. <p>Creates a request to join a group. </p>
  663. <p>The created request is part of the interaction with an issuer needed to join a group. This interaction with the issuer is outside the scope of this API.</p>
  664. <dl class="params"><dt>Parameters</dt><dd>
  665. <table class="params">
  666. <tr><td class="paramdir">[in]</td><td class="paramname">pub_key</td><td>The group certificate of group to join. </td></tr>
  667. <tr><td class="paramdir">[in]</td><td class="paramname">ni</td><td>The nonce chosen by issuer as part of join protocol. </td></tr>
  668. <tr><td class="paramdir">[in]</td><td class="paramname">f</td><td>A randomly selected integer in [1, p-1]. </td></tr>
  669. <tr><td class="paramdir">[in]</td><td class="paramname">rnd_func</td><td>Random number generator. </td></tr>
  670. <tr><td class="paramdir">[in]</td><td class="paramname">rnd_param</td><td>Pass through context data for rnd_func. </td></tr>
  671. <tr><td class="paramdir">[in]</td><td class="paramname">hash_alg</td><td>The hash algorithm to be used. </td></tr>
  672. <tr><td class="paramdir">[out]</td><td class="paramname">join_request</td><td>The join request.</td></tr>
  673. </table>
  674. </dd>
  675. </dl>
  676. <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>
  677. <dl class="section warning"><dt>Warning</dt><dd>For security rnd_func should be a cryptographically secure random number generator.</dd></dl>
  678. <dl class="section note"><dt>Note</dt><dd>The default hash algorithm in Member is SHA-512. This is the recommended option if you do not override the hash algorithm elsewhere.</dd>
  679. <dd>
  680. If the result is not <a class="el" href="group___error_codes.html#ggafdb27c77c2c4b32c807e326a8a0da360a8a6861e14322ca9193498ffc955537f9" title="no error ">kEpidNoErr</a>, the content of join_request is undefined.</dd></dl>
  681. <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_types.html#ga5e450438f6f9a5eacd0cf5ce354ec890" title="Recognized hash algorithms. ">HashAlg</a> </dd></dl>
  682. </div>
  683. </div>
  684. <a class="anchor" id="ga759155a719254f734157722716dac640"></a>
  685. <div class="memitem">
  686. <div class="memproto">
  687. <table class="memname">
  688. <tr>
  689. <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidSign </td>
  690. <td>(</td>
  691. <td class="paramtype"><a class="el" href="group___epid_member_module.html#gadfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> const *&#160;</td>
  692. <td class="paramname"><em>ctx</em>, </td>
  693. </tr>
  694. <tr>
  695. <td class="paramkey"></td>
  696. <td></td>
  697. <td class="paramtype">void const *&#160;</td>
  698. <td class="paramname"><em>msg</em>, </td>
  699. </tr>
  700. <tr>
  701. <td class="paramkey"></td>
  702. <td></td>
  703. <td class="paramtype">size_t&#160;</td>
  704. <td class="paramname"><em>msg_len</em>, </td>
  705. </tr>
  706. <tr>
  707. <td class="paramkey"></td>
  708. <td></td>
  709. <td class="paramtype">void const *&#160;</td>
  710. <td class="paramname"><em>basename</em>, </td>
  711. </tr>
  712. <tr>
  713. <td class="paramkey"></td>
  714. <td></td>
  715. <td class="paramtype">size_t&#160;</td>
  716. <td class="paramname"><em>basename_len</em>, </td>
  717. </tr>
  718. <tr>
  719. <td class="paramkey"></td>
  720. <td></td>
  721. <td class="paramtype"><a class="el" href="struct_sig_rl.html">SigRl</a> const *&#160;</td>
  722. <td class="paramname"><em>sig_rl</em>, </td>
  723. </tr>
  724. <tr>
  725. <td class="paramkey"></td>
  726. <td></td>
  727. <td class="paramtype">size_t&#160;</td>
  728. <td class="paramname"><em>sig_rl_size</em>, </td>
  729. </tr>
  730. <tr>
  731. <td class="paramkey"></td>
  732. <td></td>
  733. <td class="paramtype"><a class="el" href="struct_epid_signature.html">EpidSignature</a> *&#160;</td>
  734. <td class="paramname"><em>sig</em>, </td>
  735. </tr>
  736. <tr>
  737. <td class="paramkey"></td>
  738. <td></td>
  739. <td class="paramtype">size_t&#160;</td>
  740. <td class="paramname"><em>sig_len</em>&#160;</td>
  741. </tr>
  742. <tr>
  743. <td></td>
  744. <td>)</td>
  745. <td></td><td></td>
  746. </tr>
  747. </table>
  748. </div><div class="memdoc">
  749. <p>Writes an Intel(R) EPID signature. </p>
  750. <dl class="params"><dt>Parameters</dt><dd>
  751. <table class="params">
  752. <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The member context. </td></tr>
  753. <tr><td class="paramdir">[in]</td><td class="paramname">msg</td><td>The message to sign. </td></tr>
  754. <tr><td class="paramdir">[in]</td><td class="paramname">msg_len</td><td>The length in bytes of message. </td></tr>
  755. <tr><td class="paramdir">[in]</td><td class="paramname">basename</td><td>Optional basename. If basename is NULL a random basename is used. Signatures generated using random basenames are anonymous. Signatures generated using the same basename are linkable by the verifier. If a basename is provided, it must already be registered, or <a class="el" href="group___error_codes.html#ggafdb27c77c2c4b32c807e326a8a0da360ad134d6cc95a9dcb1b1a9f9c358047cbf" title="incorrect arg to function ">kEpidBadArgErr</a> is returned. </td></tr>
  756. <tr><td class="paramdir">[in]</td><td class="paramname">basename_len</td><td>The size of basename in bytes. Must be 0 basename is NULL. </td></tr>
  757. <tr><td class="paramdir">[in]</td><td class="paramname">sig_rl</td><td>The signature based revocation list. </td></tr>
  758. <tr><td class="paramdir">[in]</td><td class="paramname">sig_rl_size</td><td>The size in bytes of the signature based revocation list. </td></tr>
  759. <tr><td class="paramdir">[out]</td><td class="paramname">sig</td><td>The generated signature </td></tr>
  760. <tr><td class="paramdir">[in]</td><td class="paramname">sig_len</td><td>The size of signature in bytes. Must be equal to value returned by <a class="el" href="group___epid_member_module.html#ga76e535722467af7c16809b5b521e0000" title="Computes the size in bytes required for an Intel(R) EPID signature. ">EpidGetSigSize()</a>.</td></tr>
  761. </table>
  762. </dd>
  763. </dl>
  764. <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>
  765. <dl class="section note"><dt>Note</dt><dd>If the result is not <a class="el" href="group___error_codes.html#ggafdb27c77c2c4b32c807e326a8a0da360a8a6861e14322ca9193498ffc955537f9" title="no error ">kEpidNoErr</a> the content of sig is undefined.</dd></dl>
  766. <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_member_module.html#ga561c4d544a78ee1bf59c3f4f919aa7bb" title="Creates a new member context. ">EpidMemberCreate</a> </dd>
  767. <dd>
  768. <a class="el" href="group___epid_member_module.html#ga9998eb454838ff5d232ff22ecbab31bf" title="Sets the hash algorithm to be used by a member. ">EpidMemberSetHashAlg</a> </dd>
  769. <dd>
  770. <a class="el" href="group___epid_member_module.html#ga76e535722467af7c16809b5b521e0000" title="Computes the size in bytes required for an Intel(R) EPID signature. ">EpidGetSigSize</a> </dd></dl>
  771. </div>
  772. </div>
  773. <a class="anchor" id="gae04a250d5981fcf9bd6f9f57e0468faa"></a>
  774. <div class="memitem">
  775. <div class="memproto">
  776. <table class="memname">
  777. <tr>
  778. <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidSignBasic </td>
  779. <td>(</td>
  780. <td class="paramtype"><a class="el" href="group___epid_member_module.html#gadfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> const *&#160;</td>
  781. <td class="paramname"><em>ctx</em>, </td>
  782. </tr>
  783. <tr>
  784. <td class="paramkey"></td>
  785. <td></td>
  786. <td class="paramtype">void const *&#160;</td>
  787. <td class="paramname"><em>msg</em>, </td>
  788. </tr>
  789. <tr>
  790. <td class="paramkey"></td>
  791. <td></td>
  792. <td class="paramtype">size_t&#160;</td>
  793. <td class="paramname"><em>msg_len</em>, </td>
  794. </tr>
  795. <tr>
  796. <td class="paramkey"></td>
  797. <td></td>
  798. <td class="paramtype">void const *&#160;</td>
  799. <td class="paramname"><em>basename</em>, </td>
  800. </tr>
  801. <tr>
  802. <td class="paramkey"></td>
  803. <td></td>
  804. <td class="paramtype">size_t&#160;</td>
  805. <td class="paramname"><em>basename_len</em>, </td>
  806. </tr>
  807. <tr>
  808. <td class="paramkey"></td>
  809. <td></td>
  810. <td class="paramtype"><a class="el" href="struct_basic_signature.html">BasicSignature</a> *&#160;</td>
  811. <td class="paramname"><em>sig</em>&#160;</td>
  812. </tr>
  813. <tr>
  814. <td></td>
  815. <td>)</td>
  816. <td></td><td></td>
  817. </tr>
  818. </table>
  819. </div><div class="memdoc">
  820. <p>Creates a basic signature for use in constrained environment. </p>
  821. <p>Used in constrained environments where, due to limited memory, it may not be possible to process through a large and potentially unbounded revocation list.</p>
  822. <dl class="params"><dt>Parameters</dt><dd>
  823. <table class="params">
  824. <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The member context. </td></tr>
  825. <tr><td class="paramdir">[in]</td><td class="paramname">msg</td><td>The message. </td></tr>
  826. <tr><td class="paramdir">[in]</td><td class="paramname">msg_len</td><td>The length of message in bytes. </td></tr>
  827. <tr><td class="paramdir">[in]</td><td class="paramname">basename</td><td>Optional basename. If basename is NULL a random basename is used. Signatures generated using random basenames are anonymous. Signatures generated using the same basename are linkable by the verifier. If a basename is provided it must already be registered or <a class="el" href="group___error_codes.html#ggafdb27c77c2c4b32c807e326a8a0da360ad134d6cc95a9dcb1b1a9f9c358047cbf" title="incorrect arg to function ">kEpidBadArgErr</a> is returned. </td></tr>
  828. <tr><td class="paramdir">[in]</td><td class="paramname">basename_len</td><td>The size of basename in bytes. Must be 0 basename is NULL. </td></tr>
  829. <tr><td class="paramdir">[out]</td><td class="paramname">sig</td><td>The generated basic signature</td></tr>
  830. </table>
  831. </dd>
  832. </dl>
  833. <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>
  834. <dl class="section note"><dt>Note</dt><dd>This function should be used in conjunction with <a class="el" href="group___epid_member_module.html#gac8e2c6c1fead8030785a40427905a2cc" title="Calculates a non-revoked proof for a single signature based revocation list entry. ">EpidNrProve()</a></dd>
  835. <dd>
  836. If the result is not <a class="el" href="group___error_codes.html#ggafdb27c77c2c4b32c807e326a8a0da360a8a6861e14322ca9193498ffc955537f9" title="no error ">kEpidNoErr</a> the content of sig, is undefined.</dd></dl>
  837. <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_member_module.html#ga561c4d544a78ee1bf59c3f4f919aa7bb" title="Creates a new member context. ">EpidMemberCreate</a> </dd>
  838. <dd>
  839. <a class="el" href="group___epid_member_module.html#gac8e2c6c1fead8030785a40427905a2cc" title="Calculates a non-revoked proof for a single signature based revocation list entry. ">EpidNrProve</a> </dd></dl>
  840. </div>
  841. </div>
  842. <a class="anchor" id="ga9e12c7cec8d0c4e07b12c0e26a278c9d"></a>
  843. <div class="memitem">
  844. <div class="memproto">
  845. <table class="memname">
  846. <tr>
  847. <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidWritePreSigs </td>
  848. <td>(</td>
  849. <td class="paramtype"><a class="el" href="group___epid_member_module.html#gadfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> *&#160;</td>
  850. <td class="paramname"><em>ctx</em>, </td>
  851. </tr>
  852. <tr>
  853. <td class="paramkey"></td>
  854. <td></td>
  855. <td class="paramtype"><a class="el" href="struct_pre_computed_signature.html">PreComputedSignature</a> *&#160;</td>
  856. <td class="paramname"><em>presigs</em>, </td>
  857. </tr>
  858. <tr>
  859. <td class="paramkey"></td>
  860. <td></td>
  861. <td class="paramtype">size_t&#160;</td>
  862. <td class="paramname"><em>number_presigs</em>&#160;</td>
  863. </tr>
  864. <tr>
  865. <td></td>
  866. <td>)</td>
  867. <td></td><td></td>
  868. </tr>
  869. </table>
  870. </div><div class="memdoc">
  871. <p>Serializes pre-computed signatures from the member's pool. </p>
  872. <p>Removes requested number of pre-computed signatures from member's pool and stores them in presigs array. Use <a class="el" href="group___epid_member_module.html#gad2e3de5c6ce641a318f8a46b61e75236" title="Extends the member&#39;s pool of pre-computed signatures. ">EpidAddPreSigs</a> to add pre-computed signatures to the pool.</p>
  873. <dl class="params"><dt>Parameters</dt><dd>
  874. <table class="params">
  875. <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The member context. </td></tr>
  876. <tr><td class="paramdir">[out]</td><td class="paramname">presigs</td><td>An existing buffer of pre-computed signatures. </td></tr>
  877. <tr><td class="paramdir">[in]</td><td class="paramname">number_presigs</td><td>Number of pre-computed signatures to read. Number_presigs must not be greater than the value returned by <a class="el" href="group___epid_member_module.html#gad78ca056dfea2565bbacd5734d9dc075" title="Gets the number of pre-computed signatures in the member&#39;s pool. ">EpidGetNumPreSigs</a>.</td></tr>
  878. </table>
  879. </dd>
  880. </dl>
  881. <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>
  882. <dl class="section note"><dt>Note</dt><dd>If the result is not <a class="el" href="group___error_codes.html#ggafdb27c77c2c4b32c807e326a8a0da360a8a6861e14322ca9193498ffc955537f9" title="no error ">kEpidNoErr</a> the state of the pre-computed signature pool, and of presigs, is undefined.</dd></dl>
  883. <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_member_module.html#ga561c4d544a78ee1bf59c3f4f919aa7bb" title="Creates a new member context. ">EpidMemberCreate</a> </dd>
  884. <dd>
  885. <a class="el" href="group___epid_member_module.html#gad78ca056dfea2565bbacd5734d9dc075" title="Gets the number of pre-computed signatures in the member&#39;s pool. ">EpidGetNumPreSigs</a> </dd>
  886. <dd>
  887. <a class="el" href="group___epid_member_module.html#gad2e3de5c6ce641a318f8a46b61e75236" title="Extends the member&#39;s pool of pre-computed signatures. ">EpidAddPreSigs</a> </dd></dl>
  888. </div>
  889. </div>
  890. </div><!-- contents -->
  891. </div><!-- doc-content -->
  892. <!-- HTML footer for doxygen 1.8.10-->
  893. <!-- start footer part -->
  894. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  895. <ul>
  896. <li class="footer">
  897. &copy; 2016 Intel Corporation
  898. </li>
  899. </ul>
  900. </div>
  901. </body>
  902. </html>