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.14"/> 8<title>Intel® 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/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ 18 $(document).ready(initResizable); 19/* @license-end */</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® Enhanced Privacy ID SDK</a> 35 <span id="projectnumber">6.0.1</span> 36</div> 37 </td> 38 </tr> 39 </tbody> 40</table> 41</div> 42<!-- end header part --> 43<!-- Generated by Doxygen 1.8.14 --> 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/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ 57$(document).ready(function(){initNavTree('group___epid_member_module.html','');}); 58/* @license-end */ 59</script> 60<div id="doc-content"> 61<div class="header"> 62 <div class="summary"> 63<a href="#groups">Modules</a> | 64<a href="#nested-classes">Data Structures</a> | 65<a href="#func-members">Functions</a> </div> 66 <div class="headertitle"> 67<div class="title">member<div class="ingroups"><a class="el" href="group___epid_module.html">epid&nbsp;</a></div></div> </div> 68</div><!--header--> 69<div class="contents"> 70 71<p>Member functionality. 72<a href="#details">More...</a></p> 73<table class="memberdecls"> 74<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a> 75Modules</h2></td></tr> 76<tr class="memitem:group___tpm2_module"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___tpm2_module.html">tpm2</a></td></tr> 77<tr class="memdesc:group___tpm2_module"><td class="mdescLeft"> </td><td class="mdescRight">Internal interface that models TPM 2.0 interfaces. <br /></td></tr> 78<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> 79</table><table class="memberdecls"> 80<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> 81Data Structures</h2></td></tr> 82<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_member_params.html">MemberParams</a></td></tr> 83<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Software only specific member parameters. <a href="struct_member_params.html#details">More...</a><br /></td></tr> 84<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> 85</table><table class="memberdecls"> 86<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> 87Functions</h2></td></tr> 88<tr class="memitem:gae7a7b01bc0a84c44c9d14e6c311c1ba7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#gae7a7b01bc0a84c44c9d14e6c311c1ba7">EpidMemberCreate</a> (<a class="el" href="struct_member_params.html">MemberParams</a> const *params, <a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> **ctx)</td></tr> 89<tr class="memdesc:gae7a7b01bc0a84c44c9d14e6c311c1ba7"><td class="mdescLeft"> </td><td class="mdescRight">Allocates and initializes a new member context. <a href="#gae7a7b01bc0a84c44c9d14e6c311c1ba7">More...</a><br /></td></tr> 90<tr class="separator:gae7a7b01bc0a84c44c9d14e6c311c1ba7"><td class="memSeparator" colspan="2"> </td></tr> 91<tr class="memitem:ga2b3c0cc1d8d4e50190ca94656fa36e24"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#ga2b3c0cc1d8d4e50190ca94656fa36e24">EpidMemberGetSize</a> (<a class="el" href="struct_member_params.html">MemberParams</a> const *params, size_t *context_size)</td></tr> 92<tr class="memdesc:ga2b3c0cc1d8d4e50190ca94656fa36e24"><td class="mdescLeft"> </td><td class="mdescRight">Computes the size in bytes required for a member context. <a href="#ga2b3c0cc1d8d4e50190ca94656fa36e24">More...</a><br /></td></tr> 93<tr class="separator:ga2b3c0cc1d8d4e50190ca94656fa36e24"><td class="memSeparator" colspan="2"> </td></tr> 94<tr class="memitem:ga35273b8e75d51e312f0d2fd3aa094efb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#ga35273b8e75d51e312f0d2fd3aa094efb">EpidMemberInit</a> (<a class="el" href="struct_member_params.html">MemberParams</a> const *params, <a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> *ctx)</td></tr> 95<tr class="memdesc:ga35273b8e75d51e312f0d2fd3aa094efb"><td class="mdescLeft"> </td><td class="mdescRight">Initializes a new member context. <a href="#ga35273b8e75d51e312f0d2fd3aa094efb">More...</a><br /></td></tr> 96<tr class="separator:ga35273b8e75d51e312f0d2fd3aa094efb"><td class="memSeparator" colspan="2"> </td></tr> 97<tr class="memitem:gac10008d8c9ba7bc5e5be899ed03c61c3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#gac10008d8c9ba7bc5e5be899ed03c61c3">EpidCreateJoinRequest</a> (<a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> *ctx, <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_join_request.html">JoinRequest</a> *join_request)</td></tr> 98<tr class="memdesc:gac10008d8c9ba7bc5e5be899ed03c61c3"><td class="mdescLeft"> </td><td class="mdescRight">Creates a request to join a group. <a href="#gac10008d8c9ba7bc5e5be899ed03c61c3">More...</a><br /></td></tr> 99<tr class="separator:gac10008d8c9ba7bc5e5be899ed03c61c3"><td class="memSeparator" colspan="2"> </td></tr> 100<tr class="memitem:ga788ebc9d1ba6153c637b762484ca1140"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#ga788ebc9d1ba6153c637b762484ca1140">EpidProvisionCredential</a> (<a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> *ctx, <a class="el" href="struct_group_pub_key.html">GroupPubKey</a> const *pub_key, <a class="el" href="struct_membership_credential.html">MembershipCredential</a> const *credential, <a class="el" href="struct_member_precomp.html">MemberPrecomp</a> const *precomp_str)</td></tr> 101<tr class="memdesc:ga788ebc9d1ba6153c637b762484ca1140"><td class="mdescLeft"> </td><td class="mdescRight">Provisions a member context from a membership credential. <a href="#ga788ebc9d1ba6153c637b762484ca1140">More...</a><br /></td></tr> 102<tr class="separator:ga788ebc9d1ba6153c637b762484ca1140"><td class="memSeparator" colspan="2"> </td></tr> 103<tr class="memitem:ga76cddb8e20afc43de2c30d5e4addb2ea"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#ga76cddb8e20afc43de2c30d5e4addb2ea">EpidProvisionCompressed</a> (<a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> *ctx, <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_member_precomp.html">MemberPrecomp</a> const *precomp_str)</td></tr> 104<tr class="memdesc:ga76cddb8e20afc43de2c30d5e4addb2ea"><td class="mdescLeft"> </td><td class="mdescRight">Provisions a member context from a compressed private key. <a href="#ga76cddb8e20afc43de2c30d5e4addb2ea">More...</a><br /></td></tr> 105<tr class="separator:ga76cddb8e20afc43de2c30d5e4addb2ea"><td class="memSeparator" colspan="2"> </td></tr> 106<tr class="memitem:ga07094399c1e040b95ae3e58a74e7c302"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#ga07094399c1e040b95ae3e58a74e7c302">EpidProvisionKey</a> (<a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> *ctx, <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_str)</td></tr> 107<tr class="memdesc:ga07094399c1e040b95ae3e58a74e7c302"><td class="mdescLeft"> </td><td class="mdescRight">Provisions a member context from a private key. <a href="#ga07094399c1e040b95ae3e58a74e7c302">More...</a><br /></td></tr> 108<tr class="separator:ga07094399c1e040b95ae3e58a74e7c302"><td class="memSeparator" colspan="2"> </td></tr> 109<tr class="memitem:gaa2c85b1f0ea17a11ac5d297b21aa30f6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#gaa2c85b1f0ea17a11ac5d297b21aa30f6">EpidMemberStartup</a> (<a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> *ctx)</td></tr> 110<tr class="memdesc:gaa2c85b1f0ea17a11ac5d297b21aa30f6"><td class="mdescLeft"> </td><td class="mdescRight">Change member from setup state to normal operation. <a href="#gaa2c85b1f0ea17a11ac5d297b21aa30f6">More...</a><br /></td></tr> 111<tr class="separator:gaa2c85b1f0ea17a11ac5d297b21aa30f6"><td class="memSeparator" colspan="2"> </td></tr> 112<tr class="memitem:ga98b4d990a885339b83cd0513fedcc76d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#ga98b4d990a885339b83cd0513fedcc76d">EpidMemberDeinit</a> (<a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> *ctx)</td></tr> 113<tr class="memdesc:ga98b4d990a885339b83cd0513fedcc76d"><td class="mdescLeft"> </td><td class="mdescRight">De-initializes an existing member context buffer. <a href="#ga98b4d990a885339b83cd0513fedcc76d">More...</a><br /></td></tr> 114<tr class="separator:ga98b4d990a885339b83cd0513fedcc76d"><td class="memSeparator" colspan="2"> </td></tr> 115<tr class="memitem:ga3824589c683c5e0e59d483462fce65d6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#ga3824589c683c5e0e59d483462fce65d6">EpidMemberDelete</a> (<a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> **ctx)</td></tr> 116<tr class="memdesc:ga3824589c683c5e0e59d483462fce65d6"><td class="mdescLeft"> </td><td class="mdescRight">Deletes an existing member context. <a href="#ga3824589c683c5e0e59d483462fce65d6">More...</a><br /></td></tr> 117<tr class="separator:ga3824589c683c5e0e59d483462fce65d6"><td class="memSeparator" colspan="2"> </td></tr> 118<tr class="memitem:ga9998eb454838ff5d232ff22ecbab31bf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#ga9998eb454838ff5d232ff22ecbab31bf">EpidMemberSetHashAlg</a> (<a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> *ctx, <a class="el" href="group___epid_types.html#ga5e450438f6f9a5eacd0cf5ce354ec890">HashAlg</a> hash_alg)</td></tr> 119<tr class="memdesc:ga9998eb454838ff5d232ff22ecbab31bf"><td class="mdescLeft"> </td><td class="mdescRight">Sets the hash algorithm to be used by a member. <a href="#ga9998eb454838ff5d232ff22ecbab31bf">More...</a><br /></td></tr> 120<tr class="separator:ga9998eb454838ff5d232ff22ecbab31bf"><td class="memSeparator" colspan="2"> </td></tr> 121<tr class="memitem:gaaae6f21f58c22fce58076f10d68159f4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#gaaae6f21f58c22fce58076f10d68159f4">EpidMemberSetSigRl</a> (<a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> *ctx, <a class="el" href="struct_sig_rl.html">SigRl</a> const *sig_rl, size_t sig_rl_size)</td></tr> 122<tr class="memdesc:gaaae6f21f58c22fce58076f10d68159f4"><td class="mdescLeft"> </td><td class="mdescRight">Sets the signature based revocation list to be used by a member. <a href="#gaaae6f21f58c22fce58076f10d68159f4">More...</a><br /></td></tr> 123<tr class="separator:gaaae6f21f58c22fce58076f10d68159f4"><td class="memSeparator" colspan="2"> </td></tr> 124<tr class="memitem:ga76e535722467af7c16809b5b521e0000"><td class="memItemLeft" align="right" valign="top">size_t </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> 125<tr class="memdesc:ga76e535722467af7c16809b5b521e0000"><td class="mdescLeft"> </td><td class="mdescRight">Computes the size in bytes required for an Intel(R) EPID signature. <a href="#ga76e535722467af7c16809b5b521e0000">More...</a><br /></td></tr> 126<tr class="separator:ga76e535722467af7c16809b5b521e0000"><td class="memSeparator" colspan="2"> </td></tr> 127<tr class="memitem:ga74d1409a816cb52633564b793072da5f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#ga74d1409a816cb52633564b793072da5f">EpidSign</a> (<a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> const *ctx, void const *msg, size_t msg_len, void const *basename, size_t basename_len, <a class="el" href="struct_epid_signature.html">EpidSignature</a> *sig, size_t sig_len)</td></tr> 128<tr class="memdesc:ga74d1409a816cb52633564b793072da5f"><td class="mdescLeft"> </td><td class="mdescRight">Writes an Intel(R) EPID signature. <a href="#ga74d1409a816cb52633564b793072da5f">More...</a><br /></td></tr> 129<tr class="separator:ga74d1409a816cb52633564b793072da5f"><td class="memSeparator" colspan="2"> </td></tr> 130<tr class="memitem:ga8c6f097ba89542664375bd5e0f205220"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#ga8c6f097ba89542664375bd5e0f205220">EpidRegisterBasename</a> (<a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> *ctx, void const *basename, size_t basename_len)</td></tr> 131<tr class="memdesc:ga8c6f097ba89542664375bd5e0f205220"><td class="mdescLeft"> </td><td class="mdescRight">Registers a basename with a member. <a href="#ga8c6f097ba89542664375bd5e0f205220">More...</a><br /></td></tr> 132<tr class="separator:ga8c6f097ba89542664375bd5e0f205220"><td class="memSeparator" colspan="2"> </td></tr> 133<tr class="memitem:ga4f3a464f14581ef3e5a50719cb4709c3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#ga4f3a464f14581ef3e5a50719cb4709c3">EpidClearRegisteredBasenames</a> (<a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> *ctx)</td></tr> 134<tr class="memdesc:ga4f3a464f14581ef3e5a50719cb4709c3"><td class="mdescLeft"> </td><td class="mdescRight">Clears registered basenames. <a href="#ga4f3a464f14581ef3e5a50719cb4709c3">More...</a><br /></td></tr> 135<tr class="separator:ga4f3a464f14581ef3e5a50719cb4709c3"><td class="memSeparator" colspan="2"> </td></tr> 136<tr class="memitem:gacb0547ec085a9ed324d323416bce4a78"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#gacb0547ec085a9ed324d323416bce4a78">EpidAddPreSigs</a> (<a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> *ctx, size_t number_presigs)</td></tr> 137<tr class="memdesc:gacb0547ec085a9ed324d323416bce4a78"><td class="mdescLeft"> </td><td class="mdescRight">Extends the member's pool of pre-computed signatures. <a href="#gacb0547ec085a9ed324d323416bce4a78">More...</a><br /></td></tr> 138<tr class="separator:gacb0547ec085a9ed324d323416bce4a78"><td class="memSeparator" colspan="2"> </td></tr> 139<tr class="memitem:gad78ca056dfea2565bbacd5734d9dc075"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_member_module.html#gad78ca056dfea2565bbacd5734d9dc075">EpidGetNumPreSigs</a> (<a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> const *ctx)</td></tr> 140<tr class="memdesc:gad78ca056dfea2565bbacd5734d9dc075"><td class="mdescLeft"> </td><td class="mdescRight">Gets the number of pre-computed signatures in the member's pool. <a href="#gad78ca056dfea2565bbacd5734d9dc075">More...</a><br /></td></tr> 141<tr class="separator:gad78ca056dfea2565bbacd5734d9dc075"><td class="memSeparator" colspan="2"> </td></tr> 142<tr class="memitem:gaf8cd05388f017486f14da2ee48d067ef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_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> 143<tr class="memdesc:gaf8cd05388f017486f14da2ee48d067ef"><td class="mdescLeft"> </td><td class="mdescRight">Decompresses compressed member private key. <a href="#gaf8cd05388f017486f14da2ee48d067ef">More...</a><br /></td></tr> 144<tr class="separator:gaf8cd05388f017486f14da2ee48d067ef"><td class="memSeparator" colspan="2"> </td></tr> 145</table> 146<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> 147<p>Member functionality. </p> 148<p>Defines the APIs needed by Intel(R) EPID members. Each member context (<a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817" title="Internal context of member. ">MemberCtx</a>) represents membership in a single group.</p> 149<p>To use this module, include the header <a class="el" href="member_2api_8h.html" title="Intel(R) EPID SDK member API. ">epid/member/api.h</a>. </p> 150<h2 class="groupheader">Function Documentation</h2> 151<a id="gacb0547ec085a9ed324d323416bce4a78"></a> 152<h2 class="memtitle"><span class="permalink"><a href="#gacb0547ec085a9ed324d323416bce4a78">◆ </a></span>EpidAddPreSigs()</h2> 153 154<div class="memitem"> 155<div class="memproto"> 156 <table class="memname"> 157 <tr> 158 <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidAddPreSigs </td> 159 <td>(</td> 160 <td class="paramtype"><a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> * </td> 161 <td class="paramname"><em>ctx</em>, </td> 162 </tr> 163 <tr> 164 <td class="paramkey"></td> 165 <td></td> 166 <td class="paramtype">size_t </td> 167 <td class="paramname"><em>number_presigs</em> </td> 168 </tr> 169 <tr> 170 <td></td> 171 <td>)</td> 172 <td></td><td></td> 173 </tr> 174 </table> 175</div><div class="memdoc"> 176 177<p>Extends the member's pool of pre-computed signatures. </p> 178<p>Generate new pre-computed signatures and add them to the internal pool.</p> 179<dl class="params"><dt>Parameters</dt><dd> 180 <table class="params"> 181 <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The member context. </td></tr> 182 <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> 183 </table> 184 </dd> 185</dl> 186<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> 187<dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_member_module.html#ga35273b8e75d51e312f0d2fd3aa094efb" title="Initializes a new member context. ">EpidMemberInit</a> </dd></dl> 188 189</div> 190</div> 191<a id="ga4f3a464f14581ef3e5a50719cb4709c3"></a> 192<h2 class="memtitle"><span class="permalink"><a href="#ga4f3a464f14581ef3e5a50719cb4709c3">◆ </a></span>EpidClearRegisteredBasenames()</h2> 193 194<div class="memitem"> 195<div class="memproto"> 196 <table class="memname"> 197 <tr> 198 <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidClearRegisteredBasenames </td> 199 <td>(</td> 200 <td class="paramtype"><a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> * </td> 201 <td class="paramname"><em>ctx</em></td><td>)</td> 202 <td></td> 203 </tr> 204 </table> 205</div><div class="memdoc"> 206 207<p>Clears registered basenames. </p> 208<p>Allows clearing registered basenames without recreating member.</p> 209<dl class="params"><dt>Parameters</dt><dd> 210 <table class="params"> 211 <tr><td class="paramdir">[in,out]</td><td class="paramname">ctx</td><td>The member context.</td></tr> 212 </table> 213 </dd> 214</dl> 215<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> 216<dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_member_module.html#ga8c6f097ba89542664375bd5e0f205220" title="Registers a basename with a member. ">EpidRegisterBasename</a> </dd></dl> 217 218</div> 219</div> 220<a id="gac10008d8c9ba7bc5e5be899ed03c61c3"></a> 221<h2 class="memtitle"><span class="permalink"><a href="#gac10008d8c9ba7bc5e5be899ed03c61c3">◆ </a></span>EpidCreateJoinRequest()</h2> 222 223<div class="memitem"> 224<div class="memproto"> 225 <table class="memname"> 226 <tr> 227 <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidCreateJoinRequest </td> 228 <td>(</td> 229 <td class="paramtype"><a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> * </td> 230 <td class="paramname"><em>ctx</em>, </td> 231 </tr> 232 <tr> 233 <td class="paramkey"></td> 234 <td></td> 235 <td class="paramtype"><a class="el" href="struct_group_pub_key.html">GroupPubKey</a> const * </td> 236 <td class="paramname"><em>pub_key</em>, </td> 237 </tr> 238 <tr> 239 <td class="paramkey"></td> 240 <td></td> 241 <td class="paramtype"><a class="el" href="group___epid_types.html#ga55eb2193045bde31af3f551565126042">IssuerNonce</a> const * </td> 242 <td class="paramname"><em>ni</em>, </td> 243 </tr> 244 <tr> 245 <td class="paramkey"></td> 246 <td></td> 247 <td class="paramtype"><a class="el" href="struct_join_request.html">JoinRequest</a> * </td> 248 <td class="paramname"><em>join_request</em> </td> 249 </tr> 250 <tr> 251 <td></td> 252 <td>)</td> 253 <td></td><td></td> 254 </tr> 255 </table> 256</div><div class="memdoc"> 257 258<p>Creates a request to join a group. </p> 259<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> 260<dl class="params"><dt>Parameters</dt><dd> 261 <table class="params"> 262 <tr><td class="paramdir">[in,out]</td><td class="paramname">ctx</td><td>The member context. </td></tr> 263 <tr><td class="paramdir">[in]</td><td class="paramname">pub_key</td><td>The group certificate of group to join. </td></tr> 264 <tr><td class="paramdir">[in]</td><td class="paramname">ni</td><td>The nonce chosen by issuer as part of join protocol. </td></tr> 265 <tr><td class="paramdir">[out]</td><td class="paramname">join_request</td><td>The join request.</td></tr> 266 </table> 267 </dd> 268</dl> 269<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> 270 271</div> 272</div> 273<a id="gaf8cd05388f017486f14da2ee48d067ef"></a> 274<h2 class="memtitle"><span class="permalink"><a href="#gaf8cd05388f017486f14da2ee48d067ef">◆ </a></span>EpidDecompressPrivKey()</h2> 275 276<div class="memitem"> 277<div class="memproto"> 278 <table class="memname"> 279 <tr> 280 <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidDecompressPrivKey </td> 281 <td>(</td> 282 <td class="paramtype"><a class="el" href="struct_group_pub_key.html">GroupPubKey</a> const * </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_compressed_priv_key.html">CompressedPrivKey</a> const * </td> 289 <td class="paramname"><em>compressed_privkey</em>, </td> 290 </tr> 291 <tr> 292 <td class="paramkey"></td> 293 <td></td> 294 <td class="paramtype"><a class="el" href="struct_priv_key.html">PrivKey</a> * </td> 295 <td class="paramname"><em>priv_key</em> </td> 296 </tr> 297 <tr> 298 <td></td> 299 <td>)</td> 300 <td></td><td></td> 301 </tr> 302 </table> 303</div><div class="memdoc"> 304 305<p>Decompresses compressed member private key. </p> 306<p>Converts a compressed member private key into a member private key for use by other member APIs.</p> 307<dl class="params"><dt>Parameters</dt><dd> 308 <table class="params"> 309 <tr><td class="paramdir">[in]</td><td class="paramname">pub_key</td><td>The public key of the group. </td></tr> 310 <tr><td class="paramdir">[in]</td><td class="paramname">compressed_privkey</td><td>The compressed member private key to be decompressed. </td></tr> 311 <tr><td class="paramdir">[out]</td><td class="paramname">priv_key</td><td>The member private key.</td></tr> 312 </table> 313 </dd> 314</dl> 315<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> 316<p><b>Example</b> </p> 317<p><a class="el" href="_user_manual__generating_an_intel_epid_signature.html">Generating an Intel® EPID Signature</a> </p> 318 319</div> 320</div> 321<a id="gad78ca056dfea2565bbacd5734d9dc075"></a> 322<h2 class="memtitle"><span class="permalink"><a href="#gad78ca056dfea2565bbacd5734d9dc075">◆ </a></span>EpidGetNumPreSigs()</h2> 323 324<div class="memitem"> 325<div class="memproto"> 326 <table class="memname"> 327 <tr> 328 <td class="memname">size_t EpidGetNumPreSigs </td> 329 <td>(</td> 330 <td class="paramtype"><a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> const * </td> 331 <td class="paramname"><em>ctx</em></td><td>)</td> 332 <td></td> 333 </tr> 334 </table> 335</div><div class="memdoc"> 336 337<p>Gets the number of pre-computed signatures in the member's pool. </p> 338<dl class="params"><dt>Parameters</dt><dd> 339 <table class="params"> 340 <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The member context.</td></tr> 341 </table> 342 </dd> 343</dl> 344<dl class="section return"><dt>Returns</dt><dd>Number of remaining pre-computed signatures. Returns 0 if ctx is NULL.</dd></dl> 345<dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_member_module.html#ga35273b8e75d51e312f0d2fd3aa094efb" title="Initializes a new member context. ">EpidMemberInit</a> </dd></dl> 346 347</div> 348</div> 349<a id="ga76e535722467af7c16809b5b521e0000"></a> 350<h2 class="memtitle"><span class="permalink"><a href="#ga76e535722467af7c16809b5b521e0000">◆ </a></span>EpidGetSigSize()</h2> 351 352<div class="memitem"> 353<div class="memproto"> 354 <table class="memname"> 355 <tr> 356 <td class="memname">size_t EpidGetSigSize </td> 357 <td>(</td> 358 <td class="paramtype"><a class="el" href="struct_sig_rl.html">SigRl</a> const * </td> 359 <td class="paramname"><em>sig_rl</em></td><td>)</td> 360 <td></td> 361 </tr> 362 </table> 363</div><div class="memdoc"> 364 365<p>Computes the size in bytes required for an Intel(R) EPID signature. </p> 366<dl class="params"><dt>Parameters</dt><dd> 367 <table class="params"> 368 <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> 369 </table> 370 </dd> 371</dl> 372<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> 373<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> 374<p><b>Example</b> </p> 375<p><a class="el" href="_user_manual__generating_an_intel_epid_signature.html">Generating an Intel® EPID Signature</a> </p> 376 377</div> 378</div> 379<a id="gae7a7b01bc0a84c44c9d14e6c311c1ba7"></a> 380<h2 class="memtitle"><span class="permalink"><a href="#gae7a7b01bc0a84c44c9d14e6c311c1ba7">◆ </a></span>EpidMemberCreate()</h2> 381 382<div class="memitem"> 383<div class="memproto"> 384 <table class="memname"> 385 <tr> 386 <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidMemberCreate </td> 387 <td>(</td> 388 <td class="paramtype"><a class="el" href="struct_member_params.html">MemberParams</a> const * </td> 389 <td class="paramname"><em>params</em>, </td> 390 </tr> 391 <tr> 392 <td class="paramkey"></td> 393 <td></td> 394 <td class="paramtype"><a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> ** </td> 395 <td class="paramname"><em>ctx</em> </td> 396 </tr> 397 <tr> 398 <td></td> 399 <td>)</td> 400 <td></td><td></td> 401 </tr> 402 </table> 403</div><div class="memdoc"> 404 405<p>Allocates and initializes a new member context. </p> 406<dl class="params"><dt>Parameters</dt><dd> 407 <table class="params"> 408 <tr><td class="paramdir">[in]</td><td class="paramname">params</td><td>Implementation specific configuration parameters. </td></tr> 409 <tr><td class="paramdir">[out]</td><td class="paramname">ctx</td><td>Newly constructed member context.</td></tr> 410 </table> 411 </dd> 412</dl> 413<dl class="section warning"><dt>Warning</dt><dd>buffers allocated using this function should not be initialized with <a class="el" href="group___epid_member_module.html#ga35273b8e75d51e312f0d2fd3aa094efb" title="Initializes a new member context. ">EpidMemberInit</a>.</dd></dl> 414<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd>This API has been superseded by <a class="el" href="group___epid_member_module.html#ga2b3c0cc1d8d4e50190ca94656fa36e24" title="Computes the size in bytes required for a member context. ">EpidMemberGetSize</a> and <a class="el" href="group___epid_member_module.html#ga35273b8e75d51e312f0d2fd3aa094efb" title="Initializes a new member context. ">EpidMemberInit</a>.</dd></dl> 415<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> 416 417</div> 418</div> 419<a id="ga98b4d990a885339b83cd0513fedcc76d"></a> 420<h2 class="memtitle"><span class="permalink"><a href="#ga98b4d990a885339b83cd0513fedcc76d">◆ </a></span>EpidMemberDeinit()</h2> 421 422<div class="memitem"> 423<div class="memproto"> 424 <table class="memname"> 425 <tr> 426 <td class="memname">void EpidMemberDeinit </td> 427 <td>(</td> 428 <td class="paramtype"><a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> * </td> 429 <td class="paramname"><em>ctx</em></td><td>)</td> 430 <td></td> 431 </tr> 432 </table> 433</div><div class="memdoc"> 434 435<p>De-initializes an existing member context buffer. </p> 436<p>Must be called to safely release a member context initialized using <a class="el" href="group___epid_member_module.html#ga35273b8e75d51e312f0d2fd3aa094efb" title="Initializes a new member context. ">EpidMemberInit</a>.</p> 437<p>De-initializes the context.</p> 438<dl class="params"><dt>Parameters</dt><dd> 439 <table class="params"> 440 <tr><td class="paramdir">[in,out]</td><td class="paramname">ctx</td><td>The member context. Can be NULL.</td></tr> 441 </table> 442 </dd> 443</dl> 444<dl class="section warning"><dt>Warning</dt><dd>This function should not be used on buffers allocated with <a class="el" href="group___epid_member_module.html#gae7a7b01bc0a84c44c9d14e6c311c1ba7" title="Allocates and initializes a new member context. ">EpidMemberCreate</a>. Those buffers should be released using <a class="el" href="group___epid_member_module.html#ga3824589c683c5e0e59d483462fce65d6" title="Deletes an existing member context. ">EpidMemberDelete</a></dd></dl> 445<dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_member_module.html#ga35273b8e75d51e312f0d2fd3aa094efb" title="Initializes a new member context. ">EpidMemberInit</a> </dd></dl> 446 447</div> 448</div> 449<a id="ga3824589c683c5e0e59d483462fce65d6"></a> 450<h2 class="memtitle"><span class="permalink"><a href="#ga3824589c683c5e0e59d483462fce65d6">◆ </a></span>EpidMemberDelete()</h2> 451 452<div class="memitem"> 453<div class="memproto"> 454 <table class="memname"> 455 <tr> 456 <td class="memname">void EpidMemberDelete </td> 457 <td>(</td> 458 <td class="paramtype"><a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> ** </td> 459 <td class="paramname"><em>ctx</em></td><td>)</td> 460 <td></td> 461 </tr> 462 </table> 463</div><div class="memdoc"> 464 465<p>Deletes an existing member context. </p> 466<p>Must be called to safely release a member context created using <a class="el" href="group___epid_member_module.html#gae7a7b01bc0a84c44c9d14e6c311c1ba7" title="Allocates and initializes a new member context. ">EpidMemberCreate</a>.</p> 467<p>De-initializes the context, frees memory used by the context, and sets the context pointer to NULL.</p> 468<dl class="params"><dt>Parameters</dt><dd> 469 <table class="params"> 470 <tr><td class="paramdir">[in,out]</td><td class="paramname">ctx</td><td>The member context. Can be NULL.</td></tr> 471 </table> 472 </dd> 473</dl> 474<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd>This API has been superseded by <a class="el" href="group___epid_member_module.html#ga98b4d990a885339b83cd0513fedcc76d" title="De-initializes an existing member context buffer. ">EpidMemberDeinit</a>.</dd></dl> 475<dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_member_module.html#gae7a7b01bc0a84c44c9d14e6c311c1ba7" title="Allocates and initializes a new member context. ">EpidMemberCreate</a></dd></dl> 476<p><b>Example</b> </p> 477<p><a class="el" href="_user_manual__generating_an_intel_epid_signature.html">Generating an Intel® EPID Signature</a> </p> 478 479</div> 480</div> 481<a id="ga2b3c0cc1d8d4e50190ca94656fa36e24"></a> 482<h2 class="memtitle"><span class="permalink"><a href="#ga2b3c0cc1d8d4e50190ca94656fa36e24">◆ </a></span>EpidMemberGetSize()</h2> 483 484<div class="memitem"> 485<div class="memproto"> 486 <table class="memname"> 487 <tr> 488 <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidMemberGetSize </td> 489 <td>(</td> 490 <td class="paramtype"><a class="el" href="struct_member_params.html">MemberParams</a> const * </td> 491 <td class="paramname"><em>params</em>, </td> 492 </tr> 493 <tr> 494 <td class="paramkey"></td> 495 <td></td> 496 <td class="paramtype">size_t * </td> 497 <td class="paramname"><em>context_size</em> </td> 498 </tr> 499 <tr> 500 <td></td> 501 <td>)</td> 502 <td></td><td></td> 503 </tr> 504 </table> 505</div><div class="memdoc"> 506 507<p>Computes the size in bytes required for a member context. </p> 508<dl class="params"><dt>Parameters</dt><dd> 509 <table class="params"> 510 <tr><td class="paramdir">[in]</td><td class="paramname">params</td><td>Implementation specific configuration parameters. </td></tr> 511 <tr><td class="paramdir">[out]</td><td class="paramname">context_size</td><td>Number of bytes required for a <a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817" title="Internal context of member. ">MemberCtx</a> buffer</td></tr> 512 </table> 513 </dd> 514</dl> 515<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> 516<dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_member_module.html#ga35273b8e75d51e312f0d2fd3aa094efb" title="Initializes a new member context. ">EpidMemberInit</a> </dd></dl> 517 518</div> 519</div> 520<a id="ga35273b8e75d51e312f0d2fd3aa094efb"></a> 521<h2 class="memtitle"><span class="permalink"><a href="#ga35273b8e75d51e312f0d2fd3aa094efb">◆ </a></span>EpidMemberInit()</h2> 522 523<div class="memitem"> 524<div class="memproto"> 525 <table class="memname"> 526 <tr> 527 <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidMemberInit </td> 528 <td>(</td> 529 <td class="paramtype"><a class="el" href="struct_member_params.html">MemberParams</a> const * </td> 530 <td class="paramname"><em>params</em>, </td> 531 </tr> 532 <tr> 533 <td class="paramkey"></td> 534 <td></td> 535 <td class="paramtype"><a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> * </td> 536 <td class="paramname"><em>ctx</em> </td> 537 </tr> 538 <tr> 539 <td></td> 540 <td>)</td> 541 <td></td><td></td> 542 </tr> 543 </table> 544</div><div class="memdoc"> 545 546<p>Initializes a new member context. </p> 547<dl class="params"><dt>Parameters</dt><dd> 548 <table class="params"> 549 <tr><td class="paramdir">[in]</td><td class="paramname">params</td><td>Implementation specific configuration parameters. </td></tr> 550 <tr><td class="paramdir">[in,out]</td><td class="paramname">ctx</td><td>An existing buffer that will be used as a <a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817" title="Internal context of member. ">MemberCtx</a>.</td></tr> 551 </table> 552 </dd> 553</dl> 554<dl class="section warning"><dt>Warning</dt><dd>ctx must be a buffer of at least the size reported by <a class="el" href="group___epid_member_module.html#ga2b3c0cc1d8d4e50190ca94656fa36e24" title="Computes the size in bytes required for a member context. ">EpidMemberGetSize</a> for the same parameters.</dd></dl> 555<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> 556<dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_member_module.html#ga2b3c0cc1d8d4e50190ca94656fa36e24" title="Computes the size in bytes required for a member context. ">EpidMemberGetSize</a> </dd></dl> 557 558</div> 559</div> 560<a id="ga9998eb454838ff5d232ff22ecbab31bf"></a> 561<h2 class="memtitle"><span class="permalink"><a href="#ga9998eb454838ff5d232ff22ecbab31bf">◆ </a></span>EpidMemberSetHashAlg()</h2> 562 563<div class="memitem"> 564<div class="memproto"> 565 <table class="memname"> 566 <tr> 567 <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidMemberSetHashAlg </td> 568 <td>(</td> 569 <td class="paramtype"><a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> * </td> 570 <td class="paramname"><em>ctx</em>, </td> 571 </tr> 572 <tr> 573 <td class="paramkey"></td> 574 <td></td> 575 <td class="paramtype"><a class="el" href="group___epid_types.html#ga5e450438f6f9a5eacd0cf5ce354ec890">HashAlg</a> </td> 576 <td class="paramname"><em>hash_alg</em> </td> 577 </tr> 578 <tr> 579 <td></td> 580 <td>)</td> 581 <td></td><td></td> 582 </tr> 583 </table> 584</div><div class="memdoc"> 585 586<p>Sets the hash algorithm to be used by a member. </p> 587<dl class="params"><dt>Parameters</dt><dd> 588 <table class="params"> 589 <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The member context. </td></tr> 590 <tr><td class="paramdir">[in]</td><td class="paramname">hash_alg</td><td>The hash algorithm to use.</td></tr> 591 </table> 592 </dd> 593</dl> 594<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> 595<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> 596<dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_member_module.html#ga35273b8e75d51e312f0d2fd3aa094efb" title="Initializes a new member context. ">EpidMemberInit</a> </dd> 597<dd> 598<a class="el" href="group___epid_types.html#ga5e450438f6f9a5eacd0cf5ce354ec890" title="Recognized hash algorithms. ">HashAlg</a></dd></dl> 599<p><b>Example</b> </p> 600<p><a class="el" href="_user_manual__generating_an_intel_epid_signature.html">Generating an Intel® EPID Signature</a> </p> 601 602</div> 603</div> 604<a id="gaaae6f21f58c22fce58076f10d68159f4"></a> 605<h2 class="memtitle"><span class="permalink"><a href="#gaaae6f21f58c22fce58076f10d68159f4">◆ </a></span>EpidMemberSetSigRl()</h2> 606 607<div class="memitem"> 608<div class="memproto"> 609 <table class="memname"> 610 <tr> 611 <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidMemberSetSigRl </td> 612 <td>(</td> 613 <td class="paramtype"><a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> * </td> 614 <td class="paramname"><em>ctx</em>, </td> 615 </tr> 616 <tr> 617 <td class="paramkey"></td> 618 <td></td> 619 <td class="paramtype"><a class="el" href="struct_sig_rl.html">SigRl</a> const * </td> 620 <td class="paramname"><em>sig_rl</em>, </td> 621 </tr> 622 <tr> 623 <td class="paramkey"></td> 624 <td></td> 625 <td class="paramtype">size_t </td> 626 <td class="paramname"><em>sig_rl_size</em> </td> 627 </tr> 628 <tr> 629 <td></td> 630 <td>)</td> 631 <td></td><td></td> 632 </tr> 633 </table> 634</div><div class="memdoc"> 635 636<p>Sets the signature based revocation list to be used by a member. </p> 637<p>The caller is responsible for ensuring the revocation list is authorized, e.g. signed by the issuer. The caller is also responsible checking the version of the revocation list. The call fails if trying to set an older version of the revocation list than was last set.</p> 638<dl class="section attention"><dt>Attention</dt><dd>The memory pointed to by sig_rl is accessed directly by the member until a new list is set or the member is destroyed. Do not modify the contents of this memory. The behavior of subsequent operations that rely on the revocation list is undefined if the memory is modified.</dd> 639<dd> 640It is the responsibility of the caller to free the memory pointed to by sig_rl after the member is no longer using it.</dd></dl> 641<dl class="params"><dt>Parameters</dt><dd> 642 <table class="params"> 643 <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The member context. </td></tr> 644 <tr><td class="paramdir">[in]</td><td class="paramname">sig_rl</td><td>The signature based revocation list. </td></tr> 645 <tr><td class="paramdir">[in]</td><td class="paramname">sig_rl_size</td><td>The size of the signature based revocation list in bytes.</td></tr> 646 </table> 647 </dd> 648</dl> 649<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> 650<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 signature based revocation list pointed to by the member is not changed.</dd></dl> 651<dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_member_module.html#ga35273b8e75d51e312f0d2fd3aa094efb" title="Initializes a new member context. ">EpidMemberInit</a></dd></dl> 652<p><b>Example</b> </p> 653<p><a class="el" href="_user_manual__generating_an_intel_epid_signature.html">Generating an Intel® EPID Signature</a> </p> 654 655</div> 656</div> 657<a id="gaa2c85b1f0ea17a11ac5d297b21aa30f6"></a> 658<h2 class="memtitle"><span class="permalink"><a href="#gaa2c85b1f0ea17a11ac5d297b21aa30f6">◆ </a></span>EpidMemberStartup()</h2> 659 660<div class="memitem"> 661<div class="memproto"> 662 <table class="memname"> 663 <tr> 664 <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidMemberStartup </td> 665 <td>(</td> 666 <td class="paramtype"><a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> * </td> 667 <td class="paramname"><em>ctx</em></td><td>)</td> 668 <td></td> 669 </tr> 670 </table> 671</div><div class="memdoc"> 672 673<p>Change member from setup state to normal operation. </p> 674<dl class="params"><dt>Parameters</dt><dd> 675 <table class="params"> 676 <tr><td class="paramdir">[in,out]</td><td class="paramname">ctx</td><td>The member context.</td></tr> 677 </table> 678 </dd> 679</dl> 680<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> 681 682</div> 683</div> 684<a id="ga76cddb8e20afc43de2c30d5e4addb2ea"></a> 685<h2 class="memtitle"><span class="permalink"><a href="#ga76cddb8e20afc43de2c30d5e4addb2ea">◆ </a></span>EpidProvisionCompressed()</h2> 686 687<div class="memitem"> 688<div class="memproto"> 689 <table class="memname"> 690 <tr> 691 <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidProvisionCompressed </td> 692 <td>(</td> 693 <td class="paramtype"><a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> * </td> 694 <td class="paramname"><em>ctx</em>, </td> 695 </tr> 696 <tr> 697 <td class="paramkey"></td> 698 <td></td> 699 <td class="paramtype"><a class="el" href="struct_group_pub_key.html">GroupPubKey</a> const * </td> 700 <td class="paramname"><em>pub_key</em>, </td> 701 </tr> 702 <tr> 703 <td class="paramkey"></td> 704 <td></td> 705 <td class="paramtype"><a class="el" href="struct_compressed_priv_key.html">CompressedPrivKey</a> const * </td> 706 <td class="paramname"><em>compressed_privkey</em>, </td> 707 </tr> 708 <tr> 709 <td class="paramkey"></td> 710 <td></td> 711 <td class="paramtype"><a class="el" href="struct_member_precomp.html">MemberPrecomp</a> const * </td> 712 <td class="paramname"><em>precomp_str</em> </td> 713 </tr> 714 <tr> 715 <td></td> 716 <td>)</td> 717 <td></td><td></td> 718 </tr> 719 </table> 720</div><div class="memdoc"> 721 722<p>Provisions a member context from a compressed private key. </p> 723<dl class="params"><dt>Parameters</dt><dd> 724 <table class="params"> 725 <tr><td class="paramdir">[in,out]</td><td class="paramname">ctx</td><td>The member context. </td></tr> 726 <tr><td class="paramdir">[in]</td><td class="paramname">pub_key</td><td>The group certificate of group to provision. </td></tr> 727 <tr><td class="paramdir">[in]</td><td class="paramname">compressed_privkey</td><td>private key. </td></tr> 728 <tr><td class="paramdir">[in]</td><td class="paramname">precomp_str</td><td>Precomputed state (implementation specific optional)</td></tr> 729 </table> 730 </dd> 731</dl> 732<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> 733 734</div> 735</div> 736<a id="ga788ebc9d1ba6153c637b762484ca1140"></a> 737<h2 class="memtitle"><span class="permalink"><a href="#ga788ebc9d1ba6153c637b762484ca1140">◆ </a></span>EpidProvisionCredential()</h2> 738 739<div class="memitem"> 740<div class="memproto"> 741 <table class="memname"> 742 <tr> 743 <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidProvisionCredential </td> 744 <td>(</td> 745 <td class="paramtype"><a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> * </td> 746 <td class="paramname"><em>ctx</em>, </td> 747 </tr> 748 <tr> 749 <td class="paramkey"></td> 750 <td></td> 751 <td class="paramtype"><a class="el" href="struct_group_pub_key.html">GroupPubKey</a> const * </td> 752 <td class="paramname"><em>pub_key</em>, </td> 753 </tr> 754 <tr> 755 <td class="paramkey"></td> 756 <td></td> 757 <td class="paramtype"><a class="el" href="struct_membership_credential.html">MembershipCredential</a> const * </td> 758 <td class="paramname"><em>credential</em>, </td> 759 </tr> 760 <tr> 761 <td class="paramkey"></td> 762 <td></td> 763 <td class="paramtype"><a class="el" href="struct_member_precomp.html">MemberPrecomp</a> const * </td> 764 <td class="paramname"><em>precomp_str</em> </td> 765 </tr> 766 <tr> 767 <td></td> 768 <td>)</td> 769 <td></td><td></td> 770 </tr> 771 </table> 772</div><div class="memdoc"> 773 774<p>Provisions a member context from a membership credential. </p> 775<dl class="params"><dt>Parameters</dt><dd> 776 <table class="params"> 777 <tr><td class="paramdir">[in,out]</td><td class="paramname">ctx</td><td>The member context. </td></tr> 778 <tr><td class="paramdir">[in]</td><td class="paramname">pub_key</td><td>The group certificate of group to provision. </td></tr> 779 <tr><td class="paramdir">[in]</td><td class="paramname">credential</td><td>membership credential. </td></tr> 780 <tr><td class="paramdir">[in]</td><td class="paramname">precomp_str</td><td>Precomputed state (implementation specific optional)</td></tr> 781 </table> 782 </dd> 783</dl> 784<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> 785 786</div> 787</div> 788<a id="ga07094399c1e040b95ae3e58a74e7c302"></a> 789<h2 class="memtitle"><span class="permalink"><a href="#ga07094399c1e040b95ae3e58a74e7c302">◆ </a></span>EpidProvisionKey()</h2> 790 791<div class="memitem"> 792<div class="memproto"> 793 <table class="memname"> 794 <tr> 795 <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidProvisionKey </td> 796 <td>(</td> 797 <td class="paramtype"><a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> * </td> 798 <td class="paramname"><em>ctx</em>, </td> 799 </tr> 800 <tr> 801 <td class="paramkey"></td> 802 <td></td> 803 <td class="paramtype"><a class="el" href="struct_group_pub_key.html">GroupPubKey</a> const * </td> 804 <td class="paramname"><em>pub_key</em>, </td> 805 </tr> 806 <tr> 807 <td class="paramkey"></td> 808 <td></td> 809 <td class="paramtype"><a class="el" href="struct_priv_key.html">PrivKey</a> const * </td> 810 <td class="paramname"><em>priv_key</em>, </td> 811 </tr> 812 <tr> 813 <td class="paramkey"></td> 814 <td></td> 815 <td class="paramtype"><a class="el" href="struct_member_precomp.html">MemberPrecomp</a> const * </td> 816 <td class="paramname"><em>precomp_str</em> </td> 817 </tr> 818 <tr> 819 <td></td> 820 <td>)</td> 821 <td></td><td></td> 822 </tr> 823 </table> 824</div><div class="memdoc"> 825 826<p>Provisions a member context from a private key. </p> 827<dl class="params"><dt>Parameters</dt><dd> 828 <table class="params"> 829 <tr><td class="paramdir">[in,out]</td><td class="paramname">ctx</td><td>The member context. </td></tr> 830 <tr><td class="paramdir">[in]</td><td class="paramname">pub_key</td><td>The group certificate of group to provision. </td></tr> 831 <tr><td class="paramdir">[in]</td><td class="paramname">priv_key</td><td>private key. </td></tr> 832 <tr><td class="paramdir">[in]</td><td class="paramname">precomp_str</td><td>Precomputed state (implementation specific optional)</td></tr> 833 </table> 834 </dd> 835</dl> 836<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> 837 838</div> 839</div> 840<a id="ga8c6f097ba89542664375bd5e0f205220"></a> 841<h2 class="memtitle"><span class="permalink"><a href="#ga8c6f097ba89542664375bd5e0f205220">◆ </a></span>EpidRegisterBasename()</h2> 842 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> EpidRegisterBasename </td> 848 <td>(</td> 849 <td class="paramtype"><a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> * </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">void const * </td> 856 <td class="paramname"><em>basename</em>, </td> 857 </tr> 858 <tr> 859 <td class="paramkey"></td> 860 <td></td> 861 <td class="paramtype">size_t </td> 862 <td class="paramname"><em>basename_len</em> </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 872<p>Registers a basename with a member. </p> 873<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> 874<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> 875<dl class="params"><dt>Parameters</dt><dd> 876 <table class="params"> 877 <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The member context. </td></tr> 878 <tr><td class="paramdir">[in]</td><td class="paramname">basename</td><td>The basename. </td></tr> 879 <tr><td class="paramdir">[in]</td><td class="paramname">basename_len</td><td>Length of the basename.</td></tr> 880 </table> 881 </dd> 882</dl> 883<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> 884<dl class="retval"><dt>Return values</dt><dd> 885 <table class="retval"> 886 <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> 887 </table> 888 </dd> 889</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> 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> 891<p><b>Example</b> </p> 892<p><a class="el" href="_user_manual__generating_an_intel_epid_signature.html">Generating an Intel® EPID Signature</a> </p> 893 894</div> 895</div> 896<a id="ga74d1409a816cb52633564b793072da5f"></a> 897<h2 class="memtitle"><span class="permalink"><a href="#ga74d1409a816cb52633564b793072da5f">◆ </a></span>EpidSign()</h2> 898 899<div class="memitem"> 900<div class="memproto"> 901 <table class="memname"> 902 <tr> 903 <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidSign </td> 904 <td>(</td> 905 <td class="paramtype"><a class="el" href="member_2api_8h.html#adfb10d5dfdadb0694792c7b06718e817">MemberCtx</a> const * </td> 906 <td class="paramname"><em>ctx</em>, </td> 907 </tr> 908 <tr> 909 <td class="paramkey"></td> 910 <td></td> 911 <td class="paramtype">void const * </td> 912 <td class="paramname"><em>msg</em>, </td> 913 </tr> 914 <tr> 915 <td class="paramkey"></td> 916 <td></td> 917 <td class="paramtype">size_t </td> 918 <td class="paramname"><em>msg_len</em>, </td> 919 </tr> 920 <tr> 921 <td class="paramkey"></td> 922 <td></td> 923 <td class="paramtype">void const * </td> 924 <td class="paramname"><em>basename</em>, </td> 925 </tr> 926 <tr> 927 <td class="paramkey"></td> 928 <td></td> 929 <td class="paramtype">size_t </td> 930 <td class="paramname"><em>basename_len</em>, </td> 931 </tr> 932 <tr> 933 <td class="paramkey"></td> 934 <td></td> 935 <td class="paramtype"><a class="el" href="struct_epid_signature.html">EpidSignature</a> * </td> 936 <td class="paramname"><em>sig</em>, </td> 937 </tr> 938 <tr> 939 <td class="paramkey"></td> 940 <td></td> 941 <td class="paramtype">size_t </td> 942 <td class="paramname"><em>sig_len</em> </td> 943 </tr> 944 <tr> 945 <td></td> 946 <td>)</td> 947 <td></td><td></td> 948 </tr> 949 </table> 950</div><div class="memdoc"> 951 952<p>Writes an Intel(R) EPID signature. </p> 953<dl class="params"><dt>Parameters</dt><dd> 954 <table class="params"> 955 <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The member context. </td></tr> 956 <tr><td class="paramdir">[in]</td><td class="paramname">msg</td><td>The message to sign. </td></tr> 957 <tr><td class="paramdir">[in]</td><td class="paramname">msg_len</td><td>The length in bytes of message. </td></tr> 958 <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> 959 <tr><td class="paramdir">[in]</td><td class="paramname">basename_len</td><td>The size of basename in bytes. Must be 0 if basename is NULL. </td></tr> 960 <tr><td class="paramdir">[out]</td><td class="paramname">sig</td><td>The generated signature </td></tr> 961 <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> 962 </table> 963 </dd> 964</dl> 965<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> 966<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> 967<dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_member_module.html#ga35273b8e75d51e312f0d2fd3aa094efb" title="Initializes a new member context. ">EpidMemberInit</a> </dd> 968<dd> 969<a class="el" href="group___epid_member_module.html#ga9998eb454838ff5d232ff22ecbab31bf" title="Sets the hash algorithm to be used by a member. ">EpidMemberSetHashAlg</a> </dd> 970<dd> 971<a class="el" href="group___epid_member_module.html#gaaae6f21f58c22fce58076f10d68159f4" title="Sets the signature based revocation list to be used by a member. ">EpidMemberSetSigRl</a> </dd> 972<dd> 973<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> 974<p><b>Example</b> </p> 975<p><a class="el" href="_user_manual__generating_an_intel_epid_signature.html">Generating an Intel® EPID Signature</a> </p> 976 977</div> 978</div> 979</div><!-- contents --> 980</div><!-- doc-content --> 981<!-- HTML footer for doxygen 1.8.10--> 982<!-- start footer part --> 983<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> 984 <ul> 985 <li class="footer"> 986 © 2016-2017 Intel Corporation 987 </li> 988 </ul> 989</div> 990</body> 991</html> 992