group___epid_member_module.html 61 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">2.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="#func-members">Functions</a> </div>
  63. <div class="headertitle">
  64. <div class="title">member<div class="ingroups"><a class="el" href="group___epid_module.html">epid</a></div></div> </div>
  65. </div><!--header-->
  66. <div class="contents">
  67. <p>Member functionality.
  68. <a href="#details">More...</a></p>
  69. <table class="memberdecls">
  70. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
  71. Data Structures</h2></td></tr>
  72. <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>
  73. <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>
  74. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  75. <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>
  76. <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>
  77. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  78. </table><table class="memberdecls">
  79. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
  80. Functions</h2></td></tr>
  81. <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="struct_member_ctx.html">MemberCtx</a> **ctx)</td></tr>
  82. <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>
  83. <tr class="separator:ga561c4d544a78ee1bf59c3f4f919aa7bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
  84. <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="struct_member_ctx.html">MemberCtx</a> **ctx)</td></tr>
  85. <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>
  86. <tr class="separator:ga3824589c683c5e0e59d483462fce65d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
  87. <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="struct_member_ctx.html">MemberCtx</a> const *ctx, <a class="el" href="struct_member_precomp.html">MemberPrecomp</a> *precomp)</td></tr>
  88. <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>
  89. <tr class="separator:ga5c35798d62cf81c4ca62b22c38809721"><td class="memSeparator" colspan="2">&#160;</td></tr>
  90. <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="struct_member_ctx.html">MemberCtx</a> *ctx, <a class="el" href="group___epid_types.html#ga5e450438f6f9a5eacd0cf5ce354ec890">HashAlg</a> hash_alg)</td></tr>
  91. <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>
  92. <tr class="separator:ga9998eb454838ff5d232ff22ecbab31bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
  93. <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>
  94. <tr class="memdesc:ga76e535722467af7c16809b5b521e0000"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the size in bytes required for a Intel(R) EPID signature. <a href="#ga76e535722467af7c16809b5b521e0000">More...</a><br /></td></tr>
  95. <tr class="separator:ga76e535722467af7c16809b5b521e0000"><td class="memSeparator" colspan="2">&#160;</td></tr>
  96. <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="struct_member_ctx.html">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>
  97. <tr class="memdesc:ga759155a719254f734157722716dac640"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a Intel(R) EPID signature. <a href="#ga759155a719254f734157722716dac640">More...</a><br /></td></tr>
  98. <tr class="separator:ga759155a719254f734157722716dac640"><td class="memSeparator" colspan="2">&#160;</td></tr>
  99. <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="struct_member_ctx.html">MemberCtx</a> *ctx, void const *basename, size_t basename_len)</td></tr>
  100. <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>
  101. <tr class="separator:gad92d3c3266ae1833ffb1dba9ad76035d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  102. <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="struct_member_ctx.html">MemberCtx</a> *ctx, size_t number_presigs, <a class="el" href="struct_pre_computed_signature.html">PreComputedSignature</a> *presigs)</td></tr>
  103. <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>
  104. <tr class="separator:gad2e3de5c6ce641a318f8a46b61e75236"><td class="memSeparator" colspan="2">&#160;</td></tr>
  105. <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="struct_member_ctx.html">MemberCtx</a> const *ctx)</td></tr>
  106. <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>
  107. <tr class="separator:gad78ca056dfea2565bbacd5734d9dc075"><td class="memSeparator" colspan="2">&#160;</td></tr>
  108. <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="struct_member_ctx.html">MemberCtx</a> *ctx, <a class="el" href="struct_pre_computed_signature.html">PreComputedSignature</a> *presigs, size_t number_presigs)</td></tr>
  109. <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>
  110. <tr class="separator:ga9e12c7cec8d0c4e07b12c0e26a278c9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  111. <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>
  112. <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>
  113. <tr class="separator:ga13dd0d72be9babf8194d472d7712a361"><td class="memSeparator" colspan="2">&#160;</td></tr>
  114. <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="struct_member_ctx.html">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>
  115. <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>
  116. <tr class="separator:gae04a250d5981fcf9bd6f9f57e0468faa"><td class="memSeparator" colspan="2">&#160;</td></tr>
  117. <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="struct_member_ctx.html">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>
  118. <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>
  119. <tr class="separator:gac8e2c6c1fead8030785a40427905a2cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
  120. <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>
  121. <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>
  122. <tr class="separator:ga8e3f201d1e9dc668659e08a3bdf543b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
  123. <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>
  124. <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>
  125. <tr class="separator:gaf8cd05388f017486f14da2ee48d067ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
  126. </table>
  127. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  128. <p>Member functionality. </p>
  129. <p>Defines the APIs needed by Intel(R) EPID members. Each member context (<a class="el" href="struct_member_ctx.html" title="Member context definition. ">MemberCtx</a>) represents membership in a single group. </p>
  130. <h2 class="groupheader">Function Documentation</h2>
  131. <a class="anchor" id="gad2e3de5c6ce641a318f8a46b61e75236"></a>
  132. <div class="memitem">
  133. <div class="memproto">
  134. <table class="memname">
  135. <tr>
  136. <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidAddPreSigs </td>
  137. <td>(</td>
  138. <td class="paramtype"><a class="el" href="struct_member_ctx.html">MemberCtx</a> *&#160;</td>
  139. <td class="paramname"><em>ctx</em>, </td>
  140. </tr>
  141. <tr>
  142. <td class="paramkey"></td>
  143. <td></td>
  144. <td class="paramtype">size_t&#160;</td>
  145. <td class="paramname"><em>number_presigs</em>, </td>
  146. </tr>
  147. <tr>
  148. <td class="paramkey"></td>
  149. <td></td>
  150. <td class="paramtype"><a class="el" href="struct_pre_computed_signature.html">PreComputedSignature</a> *&#160;</td>
  151. <td class="paramname"><em>presigs</em>&#160;</td>
  152. </tr>
  153. <tr>
  154. <td></td>
  155. <td>)</td>
  156. <td></td><td></td>
  157. </tr>
  158. </table>
  159. </div><div class="memdoc">
  160. <p>Extends the member's pool of pre-computed signatures. </p>
  161. <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>
  162. <dl class="params"><dt>Parameters</dt><dd>
  163. <table class="params">
  164. <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The member context. </td></tr>
  165. <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>
  166. <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>
  167. </table>
  168. </dd>
  169. </dl>
  170. <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>
  171. <dl class="section note"><dt>Note</dt><dd>presigs buffer is zeroed out before return to prevent pre-computed signatures from being reused.</dd>
  172. <dd>
  173. 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>
  174. <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>
  175. <dd>
  176. <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>
  177. </div>
  178. </div>
  179. <a class="anchor" id="gaf8cd05388f017486f14da2ee48d067ef"></a>
  180. <div class="memitem">
  181. <div class="memproto">
  182. <table class="memname">
  183. <tr>
  184. <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidDecompressPrivKey </td>
  185. <td>(</td>
  186. <td class="paramtype"><a class="el" href="struct_group_pub_key.html">GroupPubKey</a> const *&#160;</td>
  187. <td class="paramname"><em>pub_key</em>, </td>
  188. </tr>
  189. <tr>
  190. <td class="paramkey"></td>
  191. <td></td>
  192. <td class="paramtype"><a class="el" href="struct_compressed_priv_key.html">CompressedPrivKey</a> const *&#160;</td>
  193. <td class="paramname"><em>compressed_privkey</em>, </td>
  194. </tr>
  195. <tr>
  196. <td class="paramkey"></td>
  197. <td></td>
  198. <td class="paramtype"><a class="el" href="struct_priv_key.html">PrivKey</a> *&#160;</td>
  199. <td class="paramname"><em>priv_key</em>&#160;</td>
  200. </tr>
  201. <tr>
  202. <td></td>
  203. <td>)</td>
  204. <td></td><td></td>
  205. </tr>
  206. </table>
  207. </div><div class="memdoc">
  208. <p>Decompresses compressed member private key. </p>
  209. <p>Converts a compressed member private key into a member private key for use by other member APIs.</p>
  210. <dl class="params"><dt>Parameters</dt><dd>
  211. <table class="params">
  212. <tr><td class="paramdir">[in]</td><td class="paramname">pub_key</td><td>The public key of the group. </td></tr>
  213. <tr><td class="paramdir">[in]</td><td class="paramname">compressed_privkey</td><td>The compressed member private key to be decompressed. </td></tr>
  214. <tr><td class="paramdir">[out]</td><td class="paramname">priv_key</td><td>The member private key.</td></tr>
  215. </table>
  216. </dd>
  217. </dl>
  218. <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>
  219. <dl><dt><b>Examples: </b></dt><dd><a class="el" href="signmsg_8c-example.html#a15">signmsg.c</a>.</dd>
  220. </dl>
  221. </div>
  222. </div>
  223. <a class="anchor" id="gad78ca056dfea2565bbacd5734d9dc075"></a>
  224. <div class="memitem">
  225. <div class="memproto">
  226. <table class="memname">
  227. <tr>
  228. <td class="memname">size_t EpidGetNumPreSigs </td>
  229. <td>(</td>
  230. <td class="paramtype"><a class="el" href="struct_member_ctx.html">MemberCtx</a> const *&#160;</td>
  231. <td class="paramname"><em>ctx</em></td><td>)</td>
  232. <td></td>
  233. </tr>
  234. </table>
  235. </div><div class="memdoc">
  236. <p>Gets the number of pre-computed signatures in the member's pool. </p>
  237. <dl class="params"><dt>Parameters</dt><dd>
  238. <table class="params">
  239. <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The member context.</td></tr>
  240. </table>
  241. </dd>
  242. </dl>
  243. <dl class="section return"><dt>Returns</dt><dd>Number of remaining pre-computed signatures. Returns 0 if ctx is NULL.</dd></dl>
  244. <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>
  245. <dd>
  246. <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>
  247. </div>
  248. </div>
  249. <a class="anchor" id="ga76e535722467af7c16809b5b521e0000"></a>
  250. <div class="memitem">
  251. <div class="memproto">
  252. <table class="memname">
  253. <tr>
  254. <td class="memname">size_t EpidGetSigSize </td>
  255. <td>(</td>
  256. <td class="paramtype"><a class="el" href="struct_sig_rl.html">SigRl</a> const *&#160;</td>
  257. <td class="paramname"><em>sig_rl</em></td><td>)</td>
  258. <td></td>
  259. </tr>
  260. </table>
  261. </div><div class="memdoc">
  262. <p>Computes the size in bytes required for a Intel(R) EPID signature. </p>
  263. <dl class="params"><dt>Parameters</dt><dd>
  264. <table class="params">
  265. <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>
  266. </table>
  267. </dd>
  268. </dl>
  269. <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>
  270. <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>
  271. <dl><dt><b>Examples: </b></dt><dd><a class="el" href="signmsg_8c-example.html#a20">signmsg.c</a>.</dd>
  272. </dl>
  273. </div>
  274. </div>
  275. <a class="anchor" id="ga8e3f201d1e9dc668659e08a3bdf543b6"></a>
  276. <div class="memitem">
  277. <div class="memproto">
  278. <table class="memname">
  279. <tr>
  280. <td class="memname"><a class="el" href="stdtypes_8h.html#ad5c9d4ba3dc37783a528b0925dc981a0">bool</a> EpidIsPrivKeyInGroup </td>
  281. <td>(</td>
  282. <td class="paramtype"><a class="el" href="struct_group_pub_key.html">GroupPubKey</a> const *&#160;</td>
  283. <td class="paramname"><em>pub_key</em>, </td>
  284. </tr>
  285. <tr>
  286. <td class="paramkey"></td>
  287. <td></td>
  288. <td class="paramtype"><a class="el" href="struct_priv_key.html">PrivKey</a> const *&#160;</td>
  289. <td class="paramname"><em>priv_key</em>&#160;</td>
  290. </tr>
  291. <tr>
  292. <td></td>
  293. <td>)</td>
  294. <td></td><td></td>
  295. </tr>
  296. </table>
  297. </div><div class="memdoc">
  298. <p>Tests if a member private key is valid without checking revocation. </p>
  299. <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>
  300. <dl class="params"><dt>Parameters</dt><dd>
  301. <table class="params">
  302. <tr><td class="paramdir">[in]</td><td class="paramname">pub_key</td><td>The public key of the group. </td></tr>
  303. <tr><td class="paramdir">[in]</td><td class="paramname">priv_key</td><td>The private key to check.</td></tr>
  304. </table>
  305. </dd>
  306. </dl>
  307. <dl class="section return"><dt>Returns</dt><dd>bool</dd></dl>
  308. <dl class="retval"><dt>Return values</dt><dd>
  309. <table class="retval">
  310. <tr><td class="paramname">true</td><td>if the private key is valid for the group of the public key </td></tr>
  311. <tr><td class="paramname">false</td><td>if the private key is not valid for the group of the public key</td></tr>
  312. </table>
  313. </dd>
  314. </dl>
  315. <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>
  316. </div>
  317. </div>
  318. <a class="anchor" id="ga561c4d544a78ee1bf59c3f4f919aa7bb"></a>
  319. <div class="memitem">
  320. <div class="memproto">
  321. <table class="memname">
  322. <tr>
  323. <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidMemberCreate </td>
  324. <td>(</td>
  325. <td class="paramtype"><a class="el" href="struct_group_pub_key.html">GroupPubKey</a> const *&#160;</td>
  326. <td class="paramname"><em>pub_key</em>, </td>
  327. </tr>
  328. <tr>
  329. <td class="paramkey"></td>
  330. <td></td>
  331. <td class="paramtype"><a class="el" href="struct_priv_key.html">PrivKey</a> const *&#160;</td>
  332. <td class="paramname"><em>priv_key</em>, </td>
  333. </tr>
  334. <tr>
  335. <td class="paramkey"></td>
  336. <td></td>
  337. <td class="paramtype"><a class="el" href="struct_member_precomp.html">MemberPrecomp</a> const *&#160;</td>
  338. <td class="paramname"><em>precomp</em>, </td>
  339. </tr>
  340. <tr>
  341. <td class="paramkey"></td>
  342. <td></td>
  343. <td class="paramtype"><a class="el" href="group___epid_common.html#ga6119a2c0323a3fca9e502b24bc378c2c">BitSupplier</a>&#160;</td>
  344. <td class="paramname"><em>rnd_func</em>, </td>
  345. </tr>
  346. <tr>
  347. <td class="paramkey"></td>
  348. <td></td>
  349. <td class="paramtype">void *&#160;</td>
  350. <td class="paramname"><em>rnd_param</em>, </td>
  351. </tr>
  352. <tr>
  353. <td class="paramkey"></td>
  354. <td></td>
  355. <td class="paramtype"><a class="el" href="struct_member_ctx.html">MemberCtx</a> **&#160;</td>
  356. <td class="paramname"><em>ctx</em>&#160;</td>
  357. </tr>
  358. <tr>
  359. <td></td>
  360. <td>)</td>
  361. <td></td><td></td>
  362. </tr>
  363. </table>
  364. </div><div class="memdoc">
  365. <p>Creates a new member context. </p>
  366. <p>Must be called to create the member context that is used by other "Member" APIs.</p>
  367. <p>Allocates memory for the context, then initializes it.</p>
  368. <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>
  369. <dl class="params"><dt>Parameters</dt><dd>
  370. <table class="params">
  371. <tr><td class="paramdir">[in]</td><td class="paramname">pub_key</td><td>The group certificate. </td></tr>
  372. <tr><td class="paramdir">[in]</td><td class="paramname">priv_key</td><td>The member private key. </td></tr>
  373. <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>
  374. <tr><td class="paramdir">[in]</td><td class="paramname">rnd_func</td><td>Random number generator. </td></tr>
  375. <tr><td class="paramdir">[in]</td><td class="paramname">rnd_param</td><td>Pass through context data for rnd_func. </td></tr>
  376. <tr><td class="paramdir">[out]</td><td class="paramname">ctx</td><td>Newly constructed member context.</td></tr>
  377. </table>
  378. </dd>
  379. </dl>
  380. <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>
  381. <dl class="section warning"><dt>Warning</dt><dd>For security rnd_func should be a cryptographically secure random number generator.</dd></dl>
  382. <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>
  383. <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>
  384. <dd>
  385. <a class="el" href="group___epid_member_module.html#ga5c35798d62cf81c4ca62b22c38809721" title="Serializes the pre-computed member settings. ">EpidMemberWritePrecomp</a> </dd></dl>
  386. <dl><dt><b>Examples: </b></dt><dd><a class="el" href="signmsg_8c-example.html#a16">signmsg.c</a>.</dd>
  387. </dl>
  388. </div>
  389. </div>
  390. <a class="anchor" id="ga3824589c683c5e0e59d483462fce65d6"></a>
  391. <div class="memitem">
  392. <div class="memproto">
  393. <table class="memname">
  394. <tr>
  395. <td class="memname">void EpidMemberDelete </td>
  396. <td>(</td>
  397. <td class="paramtype"><a class="el" href="struct_member_ctx.html">MemberCtx</a> **&#160;</td>
  398. <td class="paramname"><em>ctx</em></td><td>)</td>
  399. <td></td>
  400. </tr>
  401. </table>
  402. </div><div class="memdoc">
  403. <p>Deletes an existing member context. </p>
  404. <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>
  405. <p>De-initializes the context, frees memory used by the context, and sets the context pointer to NULL.</p>
  406. <dl class="params"><dt>Parameters</dt><dd>
  407. <table class="params">
  408. <tr><td class="paramdir">[in,out]</td><td class="paramname">ctx</td><td>The member context. Can be NULL.</td></tr>
  409. </table>
  410. </dd>
  411. </dl>
  412. <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>
  413. <dl><dt><b>Examples: </b></dt><dd><a class="el" href="signmsg_8c-example.html#a22">signmsg.c</a>.</dd>
  414. </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="struct_member_ctx.html">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. <dl><dt><b>Examples: </b></dt><dd><a class="el" href="signmsg_8c-example.html#a19">signmsg.c</a>.</dd>
  454. </dl>
  455. </div>
  456. </div>
  457. <a class="anchor" id="ga5c35798d62cf81c4ca62b22c38809721"></a>
  458. <div class="memitem">
  459. <div class="memproto">
  460. <table class="memname">
  461. <tr>
  462. <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidMemberWritePrecomp </td>
  463. <td>(</td>
  464. <td class="paramtype"><a class="el" href="struct_member_ctx.html">MemberCtx</a> const *&#160;</td>
  465. <td class="paramname"><em>ctx</em>, </td>
  466. </tr>
  467. <tr>
  468. <td class="paramkey"></td>
  469. <td></td>
  470. <td class="paramtype"><a class="el" href="struct_member_precomp.html">MemberPrecomp</a> *&#160;</td>
  471. <td class="paramname"><em>precomp</em>&#160;</td>
  472. </tr>
  473. <tr>
  474. <td></td>
  475. <td>)</td>
  476. <td></td><td></td>
  477. </tr>
  478. </table>
  479. </div><div class="memdoc">
  480. <p>Serializes the pre-computed member settings. </p>
  481. <dl class="params"><dt>Parameters</dt><dd>
  482. <table class="params">
  483. <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The member context. </td></tr>
  484. <tr><td class="paramdir">[out]</td><td class="paramname">precomp</td><td>The Serialized pre-computed member settings.</td></tr>
  485. </table>
  486. </dd>
  487. </dl>
  488. <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>
  489. <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>
  490. <dl><dt><b>Examples: </b></dt><dd><a class="el" href="signmsg_8c-example.html#a17">signmsg.c</a>.</dd>
  491. </dl>
  492. </div>
  493. </div>
  494. <a class="anchor" id="gac8e2c6c1fead8030785a40427905a2cc"></a>
  495. <div class="memitem">
  496. <div class="memproto">
  497. <table class="memname">
  498. <tr>
  499. <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidNrProve </td>
  500. <td>(</td>
  501. <td class="paramtype"><a class="el" href="struct_member_ctx.html">MemberCtx</a> const *&#160;</td>
  502. <td class="paramname"><em>ctx</em>, </td>
  503. </tr>
  504. <tr>
  505. <td class="paramkey"></td>
  506. <td></td>
  507. <td class="paramtype">void const *&#160;</td>
  508. <td class="paramname"><em>msg</em>, </td>
  509. </tr>
  510. <tr>
  511. <td class="paramkey"></td>
  512. <td></td>
  513. <td class="paramtype">size_t&#160;</td>
  514. <td class="paramname"><em>msg_len</em>, </td>
  515. </tr>
  516. <tr>
  517. <td class="paramkey"></td>
  518. <td></td>
  519. <td class="paramtype"><a class="el" href="struct_basic_signature.html">BasicSignature</a> const *&#160;</td>
  520. <td class="paramname"><em>sig</em>, </td>
  521. </tr>
  522. <tr>
  523. <td class="paramkey"></td>
  524. <td></td>
  525. <td class="paramtype"><a class="el" href="struct_sig_rl_entry.html">SigRlEntry</a> const *&#160;</td>
  526. <td class="paramname"><em>sigrl_entry</em>, </td>
  527. </tr>
  528. <tr>
  529. <td class="paramkey"></td>
  530. <td></td>
  531. <td class="paramtype"><a class="el" href="struct_nr_proof.html">NrProof</a> *&#160;</td>
  532. <td class="paramname"><em>proof</em>&#160;</td>
  533. </tr>
  534. <tr>
  535. <td></td>
  536. <td>)</td>
  537. <td></td><td></td>
  538. </tr>
  539. </table>
  540. </div><div class="memdoc">
  541. <p>Calculates a non-revoked proof for a single signature based revocation list entry. </p>
  542. <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>
  543. <dl class="params"><dt>Parameters</dt><dd>
  544. <table class="params">
  545. <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The member context. </td></tr>
  546. <tr><td class="paramdir">[in]</td><td class="paramname">msg</td><td>The message. </td></tr>
  547. <tr><td class="paramdir">[in]</td><td class="paramname">msg_len</td><td>The length of message in bytes. </td></tr>
  548. <tr><td class="paramdir">[in]</td><td class="paramname">sig</td><td>The basic signature. </td></tr>
  549. <tr><td class="paramdir">[in]</td><td class="paramname">sigrl_entry</td><td>The signature based revocation list entry. </td></tr>
  550. <tr><td class="paramdir">[out]</td><td class="paramname">proof</td><td>The generated non-revoked proof.</td></tr>
  551. </table>
  552. </dd>
  553. </dl>
  554. <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>
  555. <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>
  556. <dd>
  557. 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>
  558. <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>
  559. <dd>
  560. <a class="el" href="group___epid_member_module.html#gae04a250d5981fcf9bd6f9f57e0468faa" title="Creates a basic signature for use in constrained environment. ">EpidSignBasic</a> </dd></dl>
  561. </div>
  562. </div>
  563. <a class="anchor" id="gad92d3c3266ae1833ffb1dba9ad76035d"></a>
  564. <div class="memitem">
  565. <div class="memproto">
  566. <table class="memname">
  567. <tr>
  568. <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidRegisterBaseName </td>
  569. <td>(</td>
  570. <td class="paramtype"><a class="el" href="struct_member_ctx.html">MemberCtx</a> *&#160;</td>
  571. <td class="paramname"><em>ctx</em>, </td>
  572. </tr>
  573. <tr>
  574. <td class="paramkey"></td>
  575. <td></td>
  576. <td class="paramtype">void const *&#160;</td>
  577. <td class="paramname"><em>basename</em>, </td>
  578. </tr>
  579. <tr>
  580. <td class="paramkey"></td>
  581. <td></td>
  582. <td class="paramtype">size_t&#160;</td>
  583. <td class="paramname"><em>basename_len</em>&#160;</td>
  584. </tr>
  585. <tr>
  586. <td></td>
  587. <td>)</td>
  588. <td></td><td></td>
  589. </tr>
  590. </table>
  591. </div><div class="memdoc">
  592. <p>Registers a basename with a member. </p>
  593. <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>
  594. <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>
  595. <dl class="params"><dt>Parameters</dt><dd>
  596. <table class="params">
  597. <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The member context. </td></tr>
  598. <tr><td class="paramdir">[in]</td><td class="paramname">basename</td><td>The basename. </td></tr>
  599. <tr><td class="paramdir">[in]</td><td class="paramname">basename_len</td><td>Length of the basename.</td></tr>
  600. </table>
  601. </dd>
  602. </dl>
  603. <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>
  604. <dl class="retval"><dt>Return values</dt><dd>
  605. <table class="retval">
  606. <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>
  607. </table>
  608. </dd>
  609. </dl>
  610. <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>
  611. <dl><dt><b>Examples: </b></dt><dd><a class="el" href="signmsg_8c-example.html#a18">signmsg.c</a>.</dd>
  612. </dl>
  613. </div>
  614. </div>
  615. <a class="anchor" id="ga13dd0d72be9babf8194d472d7712a361"></a>
  616. <div class="memitem">
  617. <div class="memproto">
  618. <table class="memname">
  619. <tr>
  620. <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidRequestJoin </td>
  621. <td>(</td>
  622. <td class="paramtype"><a class="el" href="struct_group_pub_key.html">GroupPubKey</a> const *&#160;</td>
  623. <td class="paramname"><em>pub_key</em>, </td>
  624. </tr>
  625. <tr>
  626. <td class="paramkey"></td>
  627. <td></td>
  628. <td class="paramtype"><a class="el" href="group___epid_types.html#ga55eb2193045bde31af3f551565126042">IssuerNonce</a> const *&#160;</td>
  629. <td class="paramname"><em>ni</em>, </td>
  630. </tr>
  631. <tr>
  632. <td class="paramkey"></td>
  633. <td></td>
  634. <td class="paramtype"><a class="el" href="struct_fp_elem_str.html">FpElemStr</a> const *&#160;</td>
  635. <td class="paramname"><em>f</em>, </td>
  636. </tr>
  637. <tr>
  638. <td class="paramkey"></td>
  639. <td></td>
  640. <td class="paramtype"><a class="el" href="group___epid_common.html#ga6119a2c0323a3fca9e502b24bc378c2c">BitSupplier</a>&#160;</td>
  641. <td class="paramname"><em>rnd_func</em>, </td>
  642. </tr>
  643. <tr>
  644. <td class="paramkey"></td>
  645. <td></td>
  646. <td class="paramtype">void *&#160;</td>
  647. <td class="paramname"><em>rnd_param</em>, </td>
  648. </tr>
  649. <tr>
  650. <td class="paramkey"></td>
  651. <td></td>
  652. <td class="paramtype"><a class="el" href="group___epid_types.html#ga5e450438f6f9a5eacd0cf5ce354ec890">HashAlg</a>&#160;</td>
  653. <td class="paramname"><em>hash_alg</em>, </td>
  654. </tr>
  655. <tr>
  656. <td class="paramkey"></td>
  657. <td></td>
  658. <td class="paramtype"><a class="el" href="struct_join_request.html">JoinRequest</a> *&#160;</td>
  659. <td class="paramname"><em>join_request</em>&#160;</td>
  660. </tr>
  661. <tr>
  662. <td></td>
  663. <td>)</td>
  664. <td></td><td></td>
  665. </tr>
  666. </table>
  667. </div><div class="memdoc">
  668. <p>Creates a request to join a group. </p>
  669. <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>
  670. <dl class="params"><dt>Parameters</dt><dd>
  671. <table class="params">
  672. <tr><td class="paramdir">[in]</td><td class="paramname">pub_key</td><td>The group certificate of group to join. </td></tr>
  673. <tr><td class="paramdir">[in]</td><td class="paramname">ni</td><td>The nonce chosen by issuer as part of join protocol. </td></tr>
  674. <tr><td class="paramdir">[in]</td><td class="paramname">f</td><td>A randomly selected integer in [1, p-1]. </td></tr>
  675. <tr><td class="paramdir">[in]</td><td class="paramname">rnd_func</td><td>Random number generator. </td></tr>
  676. <tr><td class="paramdir">[in]</td><td class="paramname">rnd_param</td><td>Pass through context data for rnd_func. </td></tr>
  677. <tr><td class="paramdir">[in]</td><td class="paramname">hash_alg</td><td>The hash algorithm to be used. </td></tr>
  678. <tr><td class="paramdir">[out]</td><td class="paramname">join_request</td><td>The join request.</td></tr>
  679. </table>
  680. </dd>
  681. </dl>
  682. <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>
  683. <dl class="section warning"><dt>Warning</dt><dd>For security rnd_func should be a cryptographically secure random number generator.</dd></dl>
  684. <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>
  685. <dd>
  686. 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>
  687. <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>
  688. </div>
  689. </div>
  690. <a class="anchor" id="ga759155a719254f734157722716dac640"></a>
  691. <div class="memitem">
  692. <div class="memproto">
  693. <table class="memname">
  694. <tr>
  695. <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidSign </td>
  696. <td>(</td>
  697. <td class="paramtype"><a class="el" href="struct_member_ctx.html">MemberCtx</a> const *&#160;</td>
  698. <td class="paramname"><em>ctx</em>, </td>
  699. </tr>
  700. <tr>
  701. <td class="paramkey"></td>
  702. <td></td>
  703. <td class="paramtype">void const *&#160;</td>
  704. <td class="paramname"><em>msg</em>, </td>
  705. </tr>
  706. <tr>
  707. <td class="paramkey"></td>
  708. <td></td>
  709. <td class="paramtype">size_t&#160;</td>
  710. <td class="paramname"><em>msg_len</em>, </td>
  711. </tr>
  712. <tr>
  713. <td class="paramkey"></td>
  714. <td></td>
  715. <td class="paramtype">void const *&#160;</td>
  716. <td class="paramname"><em>basename</em>, </td>
  717. </tr>
  718. <tr>
  719. <td class="paramkey"></td>
  720. <td></td>
  721. <td class="paramtype">size_t&#160;</td>
  722. <td class="paramname"><em>basename_len</em>, </td>
  723. </tr>
  724. <tr>
  725. <td class="paramkey"></td>
  726. <td></td>
  727. <td class="paramtype"><a class="el" href="struct_sig_rl.html">SigRl</a> const *&#160;</td>
  728. <td class="paramname"><em>sig_rl</em>, </td>
  729. </tr>
  730. <tr>
  731. <td class="paramkey"></td>
  732. <td></td>
  733. <td class="paramtype">size_t&#160;</td>
  734. <td class="paramname"><em>sig_rl_size</em>, </td>
  735. </tr>
  736. <tr>
  737. <td class="paramkey"></td>
  738. <td></td>
  739. <td class="paramtype"><a class="el" href="struct_epid_signature.html">EpidSignature</a> *&#160;</td>
  740. <td class="paramname"><em>sig</em>, </td>
  741. </tr>
  742. <tr>
  743. <td class="paramkey"></td>
  744. <td></td>
  745. <td class="paramtype">size_t&#160;</td>
  746. <td class="paramname"><em>sig_len</em>&#160;</td>
  747. </tr>
  748. <tr>
  749. <td></td>
  750. <td>)</td>
  751. <td></td><td></td>
  752. </tr>
  753. </table>
  754. </div><div class="memdoc">
  755. <p>Writes a Intel(R) EPID signature. </p>
  756. <dl class="params"><dt>Parameters</dt><dd>
  757. <table class="params">
  758. <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The member context. </td></tr>
  759. <tr><td class="paramdir">[in]</td><td class="paramname">msg</td><td>The message to sign. </td></tr>
  760. <tr><td class="paramdir">[in]</td><td class="paramname">msg_len</td><td>The length in bytes of message. </td></tr>
  761. <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>
  762. <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>
  763. <tr><td class="paramdir">[in]</td><td class="paramname">sig_rl</td><td>The signature based revocation list. </td></tr>
  764. <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>
  765. <tr><td class="paramdir">[out]</td><td class="paramname">sig</td><td>The generated signature </td></tr>
  766. <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 a Intel(R) EPID signature. ">EpidGetSigSize()</a>.</td></tr>
  767. </table>
  768. </dd>
  769. </dl>
  770. <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>
  771. <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>
  772. <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>
  773. <dd>
  774. <a class="el" href="group___epid_member_module.html#ga9998eb454838ff5d232ff22ecbab31bf" title="Sets the hash algorithm to be used by a member. ">EpidMemberSetHashAlg</a> </dd>
  775. <dd>
  776. <a class="el" href="group___epid_member_module.html#ga76e535722467af7c16809b5b521e0000" title="Computes the size in bytes required for a Intel(R) EPID signature. ">EpidGetSigSize</a> </dd></dl>
  777. <dl><dt><b>Examples: </b></dt><dd><a class="el" href="signmsg_8c-example.html#a21">signmsg.c</a>.</dd>
  778. </dl>
  779. </div>
  780. </div>
  781. <a class="anchor" id="gae04a250d5981fcf9bd6f9f57e0468faa"></a>
  782. <div class="memitem">
  783. <div class="memproto">
  784. <table class="memname">
  785. <tr>
  786. <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidSignBasic </td>
  787. <td>(</td>
  788. <td class="paramtype"><a class="el" href="struct_member_ctx.html">MemberCtx</a> const *&#160;</td>
  789. <td class="paramname"><em>ctx</em>, </td>
  790. </tr>
  791. <tr>
  792. <td class="paramkey"></td>
  793. <td></td>
  794. <td class="paramtype">void const *&#160;</td>
  795. <td class="paramname"><em>msg</em>, </td>
  796. </tr>
  797. <tr>
  798. <td class="paramkey"></td>
  799. <td></td>
  800. <td class="paramtype">size_t&#160;</td>
  801. <td class="paramname"><em>msg_len</em>, </td>
  802. </tr>
  803. <tr>
  804. <td class="paramkey"></td>
  805. <td></td>
  806. <td class="paramtype">void const *&#160;</td>
  807. <td class="paramname"><em>basename</em>, </td>
  808. </tr>
  809. <tr>
  810. <td class="paramkey"></td>
  811. <td></td>
  812. <td class="paramtype">size_t&#160;</td>
  813. <td class="paramname"><em>basename_len</em>, </td>
  814. </tr>
  815. <tr>
  816. <td class="paramkey"></td>
  817. <td></td>
  818. <td class="paramtype"><a class="el" href="struct_basic_signature.html">BasicSignature</a> *&#160;</td>
  819. <td class="paramname"><em>sig</em>&#160;</td>
  820. </tr>
  821. <tr>
  822. <td></td>
  823. <td>)</td>
  824. <td></td><td></td>
  825. </tr>
  826. </table>
  827. </div><div class="memdoc">
  828. <p>Creates a basic signature for use in constrained environment. </p>
  829. <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>
  830. <dl class="params"><dt>Parameters</dt><dd>
  831. <table class="params">
  832. <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The member context. </td></tr>
  833. <tr><td class="paramdir">[in]</td><td class="paramname">msg</td><td>The message. </td></tr>
  834. <tr><td class="paramdir">[in]</td><td class="paramname">msg_len</td><td>The length of message in bytes. </td></tr>
  835. <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>
  836. <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>
  837. <tr><td class="paramdir">[out]</td><td class="paramname">sig</td><td>The generated basic signature</td></tr>
  838. </table>
  839. </dd>
  840. </dl>
  841. <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>
  842. <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>
  843. <dd>
  844. 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>
  845. <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>
  846. <dd>
  847. <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>
  848. </div>
  849. </div>
  850. <a class="anchor" id="ga9e12c7cec8d0c4e07b12c0e26a278c9d"></a>
  851. <div class="memitem">
  852. <div class="memproto">
  853. <table class="memname">
  854. <tr>
  855. <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidWritePreSigs </td>
  856. <td>(</td>
  857. <td class="paramtype"><a class="el" href="struct_member_ctx.html">MemberCtx</a> *&#160;</td>
  858. <td class="paramname"><em>ctx</em>, </td>
  859. </tr>
  860. <tr>
  861. <td class="paramkey"></td>
  862. <td></td>
  863. <td class="paramtype"><a class="el" href="struct_pre_computed_signature.html">PreComputedSignature</a> *&#160;</td>
  864. <td class="paramname"><em>presigs</em>, </td>
  865. </tr>
  866. <tr>
  867. <td class="paramkey"></td>
  868. <td></td>
  869. <td class="paramtype">size_t&#160;</td>
  870. <td class="paramname"><em>number_presigs</em>&#160;</td>
  871. </tr>
  872. <tr>
  873. <td></td>
  874. <td>)</td>
  875. <td></td><td></td>
  876. </tr>
  877. </table>
  878. </div><div class="memdoc">
  879. <p>Serializes pre-computed signatures from the member's pool. </p>
  880. <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>
  881. <dl class="params"><dt>Parameters</dt><dd>
  882. <table class="params">
  883. <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The member context. </td></tr>
  884. <tr><td class="paramdir">[out]</td><td class="paramname">presigs</td><td>An existing buffer of pre-computed signatures. </td></tr>
  885. <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>
  886. </table>
  887. </dd>
  888. </dl>
  889. <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>
  890. <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>
  891. <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>
  892. <dd>
  893. <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>
  894. <dd>
  895. <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>
  896. </div>
  897. </div>
  898. </div><!-- contents -->
  899. </div><!-- doc-content -->
  900. <!-- HTML footer for doxygen 1.8.10-->
  901. <!-- start footer part -->
  902. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  903. <ul>
  904. <li class="footer">
  905. &copy; 2016 Intel Corporation
  906. </li>
  907. </ul>
  908. </div>
  909. </body>
  910. </html>