blob: ec1d29fb7dc4c585df5b5e4f422d3508f7608c72 [file] [log] [blame]
<!-- HTML header for doxygen 1.8.10-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<title>Intel&reg; Enhanced Privacy ID SDK: verifier</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="epidstyle.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname"><a
onclick="storeLink('index.html')"
id="projectlink"
class="index.html"
href="index.html">Intel&reg; Enhanced Privacy ID SDK</a>
&#160;<span id="projectnumber">6.0.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('group___epid_verifier_module.html','');});
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#groups">Modules</a> &#124;
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">verifier<div class="ingroups"><a class="el" href="group___epid_module.html">epid&amp;nbsp;</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>Verifier functionality.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
Modules</h2></td></tr>
<tr class="memitem:group___epid11_verifier_module"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid11_verifier_module.html">Intel(R) EPID 1.1 support</a></td></tr>
<tr class="memdesc:group___epid11_verifier_module"><td class="mdescLeft">&#160;</td><td class="mdescRight">Intel(R) EPID 1.1 Verifier functionality. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_verifier_precomp.html">VerifierPrecomp</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pre-computed verifier settings. <a href="struct_verifier_precomp.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gaf172a5f8f7f069d38c5838b723a1a85c"><td class="memItemLeft" align="right" valign="top"><a id="gaf172a5f8f7f069d38c5838b723a1a85c"></a>
typedef struct <a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a></td></tr>
<tr class="memdesc:gaf172a5f8f7f069d38c5838b723a1a85c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal context of verifier. <br /></td></tr>
<tr class="separator:gaf172a5f8f7f069d38c5838b723a1a85c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga1d116daaee5466a1485d26ebc4e3ab70"><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_verifier_module.html#ga1d116daaee5466a1485d26ebc4e3ab70">EpidVerifierCreate</a> (<a class="el" href="struct_group_pub_key.html">GroupPubKey</a> const *pub_key, <a class="el" href="struct_verifier_precomp.html">VerifierPrecomp</a> const *precomp, <a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> **ctx)</td></tr>
<tr class="memdesc:ga1d116daaee5466a1485d26ebc4e3ab70"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new verifier context. <a href="#ga1d116daaee5466a1485d26ebc4e3ab70">More...</a><br /></td></tr>
<tr class="separator:ga1d116daaee5466a1485d26ebc4e3ab70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6707e691f4b3916f9c684d5bbd463d12"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_verifier_module.html#ga6707e691f4b3916f9c684d5bbd463d12">EpidVerifierDelete</a> (<a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> **ctx)</td></tr>
<tr class="memdesc:ga6707e691f4b3916f9c684d5bbd463d12"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deletes an existing verifier context. <a href="#ga6707e691f4b3916f9c684d5bbd463d12">More...</a><br /></td></tr>
<tr class="separator:ga6707e691f4b3916f9c684d5bbd463d12"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga92df4d00ea4ee59d7bfd35b23da03392"><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_verifier_module.html#ga92df4d00ea4ee59d7bfd35b23da03392">EpidVerifierWritePrecomp</a> (<a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> const *ctx, <a class="el" href="struct_verifier_precomp.html">VerifierPrecomp</a> *precomp)</td></tr>
<tr class="memdesc:ga92df4d00ea4ee59d7bfd35b23da03392"><td class="mdescLeft">&#160;</td><td class="mdescRight">Serializes the pre-computed verifier settings. <a href="#ga92df4d00ea4ee59d7bfd35b23da03392">More...</a><br /></td></tr>
<tr class="separator:ga92df4d00ea4ee59d7bfd35b23da03392"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafab08180a43b58ce2e1d56c4b070bb0e"><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_verifier_module.html#gafab08180a43b58ce2e1d56c4b070bb0e">EpidVerifierSetPrivRl</a> (<a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> *ctx, <a class="el" href="struct_priv_rl.html">PrivRl</a> const *priv_rl, size_t priv_rl_size)</td></tr>
<tr class="memdesc:gafab08180a43b58ce2e1d56c4b070bb0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the private key based revocation list. <a href="#gafab08180a43b58ce2e1d56c4b070bb0e">More...</a><br /></td></tr>
<tr class="separator:gafab08180a43b58ce2e1d56c4b070bb0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4c7c9820409ee06f30bb8dc75fdd5dcf"><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_verifier_module.html#ga4c7c9820409ee06f30bb8dc75fdd5dcf">EpidVerifierSetSigRl</a> (<a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> *ctx, <a class="el" href="struct_sig_rl.html">SigRl</a> const *sig_rl, size_t sig_rl_size)</td></tr>
<tr class="memdesc:ga4c7c9820409ee06f30bb8dc75fdd5dcf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the signature based revocation list. <a href="#ga4c7c9820409ee06f30bb8dc75fdd5dcf">More...</a><br /></td></tr>
<tr class="separator:ga4c7c9820409ee06f30bb8dc75fdd5dcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1d41d6ef4dabbc30ec28452edd6baffb"><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_verifier_module.html#ga1d41d6ef4dabbc30ec28452edd6baffb">EpidVerifierSetGroupRl</a> (<a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> *ctx, <a class="el" href="struct_group_rl.html">GroupRl</a> const *grp_rl, size_t grp_rl_size)</td></tr>
<tr class="memdesc:ga1d41d6ef4dabbc30ec28452edd6baffb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the group based revocation list. <a href="#ga1d41d6ef4dabbc30ec28452edd6baffb">More...</a><br /></td></tr>
<tr class="separator:ga1d41d6ef4dabbc30ec28452edd6baffb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0909703a0a4dfe080374d0d99077465a"><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_verifier_module.html#ga0909703a0a4dfe080374d0d99077465a">EpidVerifierSetVerifierRl</a> (<a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> *ctx, <a class="el" href="struct_verifier_rl.html">VerifierRl</a> const *ver_rl, size_t ver_rl_size)</td></tr>
<tr class="memdesc:ga0909703a0a4dfe080374d0d99077465a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the verifier revocation list. <a href="#ga0909703a0a4dfe080374d0d99077465a">More...</a><br /></td></tr>
<tr class="separator:ga0909703a0a4dfe080374d0d99077465a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga97b58b2382f24756b66a357f1e825c92"><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_verifier_module.html#ga97b58b2382f24756b66a357f1e825c92">EpidVerifierSetHashAlg</a> (<a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> *ctx, <a class="el" href="group___epid_types.html#ga5e450438f6f9a5eacd0cf5ce354ec890">HashAlg</a> hash_alg)</td></tr>
<tr class="memdesc:ga97b58b2382f24756b66a357f1e825c92"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the hash algorithm to be used by a verifier. <a href="#ga97b58b2382f24756b66a357f1e825c92">More...</a><br /></td></tr>
<tr class="separator:ga97b58b2382f24756b66a357f1e825c92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1c3810ef361da678a1f77823bd9c37a6"><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_verifier_module.html#ga1c3810ef361da678a1f77823bd9c37a6">EpidVerifierSetBasename</a> (<a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> *ctx, void const *basename, size_t basename_len)</td></tr>
<tr class="memdesc:ga1c3810ef361da678a1f77823bd9c37a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the basename to be used by a verifier. <a href="#ga1c3810ef361da678a1f77823bd9c37a6">More...</a><br /></td></tr>
<tr class="separator:ga1c3810ef361da678a1f77823bd9c37a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae3f9c37628e18b880d8bbee3e7f55064"><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_verifier_module.html#gae3f9c37628e18b880d8bbee3e7f55064">EpidVerify</a> (<a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> const *ctx, <a class="el" href="struct_epid_signature.html">EpidSignature</a> const *sig, size_t sig_len, void const *msg, size_t msg_len)</td></tr>
<tr class="memdesc:gae3f9c37628e18b880d8bbee3e7f55064"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verifies a signature and checks revocation status. <a href="#gae3f9c37628e18b880d8bbee3e7f55064">More...</a><br /></td></tr>
<tr class="separator:gae3f9c37628e18b880d8bbee3e7f55064"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae44bd8acbc1e7205aeedff0c7e2632a8"><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_verifier_module.html#gae44bd8acbc1e7205aeedff0c7e2632a8">EpidAreSigsLinked</a> (<a class="el" href="struct_basic_signature.html">BasicSignature</a> const *sig1, <a class="el" href="struct_basic_signature.html">BasicSignature</a> const *sig2)</td></tr>
<tr class="memdesc:gae44bd8acbc1e7205aeedff0c7e2632a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if two signatures are linked. <a href="#gae44bd8acbc1e7205aeedff0c7e2632a8">More...</a><br /></td></tr>
<tr class="separator:gae44bd8acbc1e7205aeedff0c7e2632a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac3b1f1a2bdba8eeeebbf1e0c8c00862e"><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_verifier_module.html#gac3b1f1a2bdba8eeeebbf1e0c8c00862e">EpidVerifyBasicSig</a> (<a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> const *ctx, <a class="el" href="struct_basic_signature.html">BasicSignature</a> const *sig, void const *msg, size_t msg_len)</td></tr>
<tr class="memdesc:gac3b1f1a2bdba8eeeebbf1e0c8c00862e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verifies a member signature without revocation checks. <a href="#gac3b1f1a2bdba8eeeebbf1e0c8c00862e">More...</a><br /></td></tr>
<tr class="separator:gac3b1f1a2bdba8eeeebbf1e0c8c00862e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac6e2fab59e3af8a33a74a5b201642700"><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_verifier_module.html#gac6e2fab59e3af8a33a74a5b201642700">EpidNrVerify</a> (<a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> const *ctx, <a class="el" href="struct_basic_signature.html">BasicSignature</a> const *sig, void const *msg, size_t msg_len, <a class="el" href="struct_sig_rl_entry.html">SigRlEntry</a> const *sigrl_entry, <a class="el" href="struct_nr_proof.html">NrProof</a> const *proof)</td></tr>
<tr class="memdesc:gac6e2fab59e3af8a33a74a5b201642700"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verifies the non-revoked proof for a single signature based revocation list entry. <a href="#gac6e2fab59e3af8a33a74a5b201642700">More...</a><br /></td></tr>
<tr class="separator:gac6e2fab59e3af8a33a74a5b201642700"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeb05e6faea6f09c0665b13adc6e7ddea"><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_verifier_module.html#gaeb05e6faea6f09c0665b13adc6e7ddea">EpidCheckPrivRlEntry</a> (<a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> const *ctx, <a class="el" href="struct_basic_signature.html">BasicSignature</a> const *sig, <a class="el" href="struct_fp_elem_str.html">FpElemStr</a> const *f)</td></tr>
<tr class="memdesc:gaeb05e6faea6f09c0665b13adc6e7ddea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verifies a signature has not been revoked in the private key based revocation list. <a href="#gaeb05e6faea6f09c0665b13adc6e7ddea">More...</a><br /></td></tr>
<tr class="separator:gaeb05e6faea6f09c0665b13adc6e7ddea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2a75c7d5775e852a7b6e24178dd4054f"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___epid_verifier_module.html#ga2a75c7d5775e852a7b6e24178dd4054f">EpidGetVerifierRlSize</a> (<a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> const *ctx)</td></tr>
<tr class="memdesc:ga2a75c7d5775e852a7b6e24178dd4054f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of bytes required to serialize the verifier blacklist. <a href="#ga2a75c7d5775e852a7b6e24178dd4054f">More...</a><br /></td></tr>
<tr class="separator:ga2a75c7d5775e852a7b6e24178dd4054f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac857bff47e7d80363eac15285471fe81"><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_verifier_module.html#gac857bff47e7d80363eac15285471fe81">EpidWriteVerifierRl</a> (<a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> const *ctx, <a class="el" href="struct_verifier_rl.html">VerifierRl</a> *ver_rl, size_t ver_rl_size)</td></tr>
<tr class="memdesc:gac857bff47e7d80363eac15285471fe81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Serializes the verifier blacklist to a buffer. <a href="#gac857bff47e7d80363eac15285471fe81">More...</a><br /></td></tr>
<tr class="separator:gac857bff47e7d80363eac15285471fe81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8eaeb9f4a34e9e37ccdf342919f38c69"><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_verifier_module.html#ga8eaeb9f4a34e9e37ccdf342919f38c69">EpidBlacklistSig</a> (<a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> *ctx, <a class="el" href="struct_epid_signature.html">EpidSignature</a> const *sig, size_t sig_len, void const *msg, size_t msg_len)</td></tr>
<tr class="memdesc:ga8eaeb9f4a34e9e37ccdf342919f38c69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a valid name-based signature to the verifier blacklist. <a href="#ga8eaeb9f4a34e9e37ccdf342919f38c69">More...</a><br /></td></tr>
<tr class="separator:ga8eaeb9f4a34e9e37ccdf342919f38c69"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Verifier functionality. </p>
<p>Defines the APIs needed by Intel(R) EPID verifiers. Each verifier context (<a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c" title="Internal context of verifier. ">VerifierCtx</a>) represents a verifier for a single group.</p>
<p>To use this module, include the header <a class="el" href="verifier_2api_8h.html" title="Intel(R) EPID SDK verifier API. ">epid/verifier/api.h</a>. </p>
<h2 class="groupheader">Function Documentation</h2>
<a id="gae44bd8acbc1e7205aeedff0c7e2632a8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae44bd8acbc1e7205aeedff0c7e2632a8">&#9670;&nbsp;</a></span>EpidAreSigsLinked()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="stdtypes_8h.html#ad5c9d4ba3dc37783a528b0925dc981a0">bool</a> EpidAreSigsLinked </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_basic_signature.html">BasicSignature</a> const *&#160;</td>
<td class="paramname"><em>sig1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_basic_signature.html">BasicSignature</a> const *&#160;</td>
<td class="paramname"><em>sig2</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Determines if two signatures are linked. </p>
<p>The Intel(R) EPID scheme allows signatures to be linked. If basename option is specified when signing, signatures with the same basename are linkable. This linking capability allows the verifier, or anyone, to know whether two Intel(R) EPID signatures are generated by the same member.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">sig1</td><td>A basic signature. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">sig2</td><td>A basic signature.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>bool</dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">true</td><td>if the signatures were generated by the same member </td></tr>
<tr><td class="paramname">false</td><td>if it couldn't be determined if the signatures were generated by the same member</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>The input signatures should be verified using <a class="el" href="group___epid_verifier_module.html#gac3b1f1a2bdba8eeeebbf1e0c8c00862e" title="Verifies a member signature without revocation checks. ">EpidVerifyBasicSig()</a> before invocation. Behavior is undefined if either of the signatures cannot be verified.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_verifier_module.html#gac3b1f1a2bdba8eeeebbf1e0c8c00862e" title="Verifies a member signature without revocation checks. ">EpidVerifyBasicSig</a> </dd>
<dd>
EpidSignBasic </dd>
<dd>
<a class="el" href="group___epid_member_module.html#ga74d1409a816cb52633564b793072da5f" title="Writes an Intel(R) EPID signature. ">EpidSign</a> </dd></dl>
</div>
</div>
<a id="ga8eaeb9f4a34e9e37ccdf342919f38c69"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8eaeb9f4a34e9e37ccdf342919f38c69">&#9670;&nbsp;</a></span>EpidBlacklistSig()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidBlacklistSig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> *&#160;</td>
<td class="paramname"><em>ctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_epid_signature.html">EpidSignature</a> const *&#160;</td>
<td class="paramname"><em>sig</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>sig_len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void const *&#160;</td>
<td class="paramname"><em>msg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>msg_len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Adds a valid name-based signature to the verifier blacklist. </p>
<p>If the signature is not valid it will not be added to the blacklist.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The verifier context. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">sig</td><td>The name-based signature to revoke. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">sig_len</td><td>The size of sig in bytes. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">msg</td><td>The message that was signed. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">msg_len</td><td>The size of msg in bytes.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a></dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_verifier_module.html#ga1d116daaee5466a1485d26ebc4e3ab70" title="Creates a new verifier context. ">EpidVerifierCreate</a> </dd>
<dd>
<a class="el" href="group___epid_verifier_module.html#ga0909703a0a4dfe080374d0d99077465a" title="Sets the verifier revocation list. ">EpidVerifierSetVerifierRl</a> </dd>
<dd>
<a class="el" href="group___epid_verifier_module.html#gac857bff47e7d80363eac15285471fe81" title="Serializes the verifier blacklist to a buffer. ">EpidWriteVerifierRl</a> </dd></dl>
</div>
</div>
<a id="gaeb05e6faea6f09c0665b13adc6e7ddea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaeb05e6faea6f09c0665b13adc6e7ddea">&#9670;&nbsp;</a></span>EpidCheckPrivRlEntry()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidCheckPrivRlEntry </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> const *&#160;</td>
<td class="paramname"><em>ctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_basic_signature.html">BasicSignature</a> const *&#160;</td>
<td class="paramname"><em>sig</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_fp_elem_str.html">FpElemStr</a> const *&#160;</td>
<td class="paramname"><em>f</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Verifies a signature has not been revoked in the private key based revocation list. </p>
<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>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The verifier context. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">sig</td><td>The basic signature. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">f</td><td>The private key based revocation list entry.</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>Sig should be verified using <a class="el" href="group___epid_verifier_module.html#gac3b1f1a2bdba8eeeebbf1e0c8c00862e" title="Verifies a member signature without revocation checks. ">EpidVerifyBasicSig()</a> before invocation. Behavior is undefined if sig cannot be verified.</dd>
<dd>
This function should be used in conjunction with <a class="el" href="group___epid_verifier_module.html#gac6e2fab59e3af8a33a74a5b201642700" title="Verifies the non-revoked proof for a single signature based revocation list entry. ">EpidNrVerify()</a> and <a class="el" href="group___epid_verifier_module.html#gac3b1f1a2bdba8eeeebbf1e0c8c00862e" title="Verifies a member signature without revocation checks. ">EpidVerifyBasicSig()</a>.</dd>
<dd>
If the result is not <a class="el" href="group___error_codes.html#ggafdb27c77c2c4b32c807e326a8a0da360a8a6861e14322ca9193498ffc955537f9" title="no error ">kEpidNoErr</a> the verify should be considered to have failed.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a> </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_verifier_module.html#ga1d116daaee5466a1485d26ebc4e3ab70" title="Creates a new verifier context. ">EpidVerifierCreate</a> </dd>
<dd>
<a class="el" href="group___epid_verifier_module.html#gac6e2fab59e3af8a33a74a5b201642700" title="Verifies the non-revoked proof for a single signature based revocation list entry. ">EpidNrVerify</a> </dd>
<dd>
<a class="el" href="group___epid_verifier_module.html#gac3b1f1a2bdba8eeeebbf1e0c8c00862e" title="Verifies a member signature without revocation checks. ">EpidVerifyBasicSig</a> </dd></dl>
</div>
</div>
<a id="ga2a75c7d5775e852a7b6e24178dd4054f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2a75c7d5775e852a7b6e24178dd4054f">&#9670;&nbsp;</a></span>EpidGetVerifierRlSize()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t EpidGetVerifierRlSize </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> const *&#160;</td>
<td class="paramname"><em>ctx</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the number of bytes required to serialize the verifier blacklist. </p>
<p>Use this function to determine the buffer size required by <a class="el" href="group___epid_verifier_module.html#gac857bff47e7d80363eac15285471fe81" title="Serializes the verifier blacklist to a buffer. ">EpidWriteVerifierRl</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The verifier context.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Size in bytes required to serialize the verifier blacklist</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_verifier_module.html#ga1d116daaee5466a1485d26ebc4e3ab70" title="Creates a new verifier context. ">EpidVerifierCreate</a> </dd>
<dd>
<a class="el" href="group___epid_verifier_module.html#ga0909703a0a4dfe080374d0d99077465a" title="Sets the verifier revocation list. ">EpidVerifierSetVerifierRl</a> </dd>
<dd>
<a class="el" href="group___epid_verifier_module.html#ga8eaeb9f4a34e9e37ccdf342919f38c69" title="Adds a valid name-based signature to the verifier blacklist. ">EpidBlacklistSig</a> </dd>
<dd>
<a class="el" href="group___epid_verifier_module.html#gac857bff47e7d80363eac15285471fe81" title="Serializes the verifier blacklist to a buffer. ">EpidWriteVerifierRl</a> </dd></dl>
</div>
</div>
<a id="gac6e2fab59e3af8a33a74a5b201642700"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac6e2fab59e3af8a33a74a5b201642700">&#9670;&nbsp;</a></span>EpidNrVerify()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidNrVerify </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> const *&#160;</td>
<td class="paramname"><em>ctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_basic_signature.html">BasicSignature</a> const *&#160;</td>
<td class="paramname"><em>sig</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void const *&#160;</td>
<td class="paramname"><em>msg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>msg_len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_sig_rl_entry.html">SigRlEntry</a> const *&#160;</td>
<td class="paramname"><em>sigrl_entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_nr_proof.html">NrProof</a> const *&#160;</td>
<td class="paramname"><em>proof</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Verifies the non-revoked proof for a single signature based revocation list entry. </p>
<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>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The verifier context. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">sig</td><td>The basic signature. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">msg</td><td>The message that was signed. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">msg_len</td><td>The size of msg in bytes. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">sigrl_entry</td><td>The signature based revocation list entry. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">proof</td><td>The non-revoked proof.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a></dd></dl>
<dl class="section note"><dt>Note</dt><dd>Sig should be verified using <a class="el" href="group___epid_verifier_module.html#gac3b1f1a2bdba8eeeebbf1e0c8c00862e" title="Verifies a member signature without revocation checks. ">EpidVerifyBasicSig()</a> before invocation. Behavior is undefined if sig cannot be verified.</dd>
<dd>
This function should be used in conjunction with <a class="el" href="group___epid_verifier_module.html#gac3b1f1a2bdba8eeeebbf1e0c8c00862e" title="Verifies a member signature without revocation checks. ">EpidVerifyBasicSig()</a> and <a class="el" href="group___epid_verifier_module.html#gaeb05e6faea6f09c0665b13adc6e7ddea" title="Verifies a signature has not been revoked in the private key based revocation list. ">EpidCheckPrivRlEntry()</a>.</dd>
<dd>
If the result is not <a class="el" href="group___error_codes.html#ggafdb27c77c2c4b32c807e326a8a0da360a8a6861e14322ca9193498ffc955537f9" title="no error ">kEpidNoErr</a>, the verification should be considered to have failed.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_verifier_module.html#ga1d116daaee5466a1485d26ebc4e3ab70" title="Creates a new verifier context. ">EpidVerifierCreate</a> </dd>
<dd>
<a class="el" href="group___epid_verifier_module.html#gac3b1f1a2bdba8eeeebbf1e0c8c00862e" title="Verifies a member signature without revocation checks. ">EpidVerifyBasicSig</a> </dd>
<dd>
<a class="el" href="group___epid_verifier_module.html#gaeb05e6faea6f09c0665b13adc6e7ddea" title="Verifies a signature has not been revoked in the private key based revocation list. ">EpidCheckPrivRlEntry</a> </dd></dl>
</div>
</div>
<a id="ga1d116daaee5466a1485d26ebc4e3ab70"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1d116daaee5466a1485d26ebc4e3ab70">&#9670;&nbsp;</a></span>EpidVerifierCreate()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidVerifierCreate </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_group_pub_key.html">GroupPubKey</a> const *&#160;</td>
<td class="paramname"><em>pub_key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_verifier_precomp.html">VerifierPrecomp</a> const *&#160;</td>
<td class="paramname"><em>precomp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> **&#160;</td>
<td class="paramname"><em>ctx</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a new verifier context. </p>
<p>Must be called to create the verifier context that is used by other "Verifier" APIs.</p>
<p>Allocates memory for the context, then initializes it.</p>
<p><a class="el" href="group___epid_verifier_module.html#ga6707e691f4b3916f9c684d5bbd463d12" title="Deletes an existing verifier context. ">EpidVerifierDelete()</a> must be called to safely release the member context.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">pub_key</td><td>The group certificate. </td></tr>
<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_verifier_module.html#ga92df4d00ea4ee59d7bfd35b23da03392" title="Serializes the pre-computed verifier settings. ">EpidVerifierWritePrecomp()</a>. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">ctx</td><td>Newly constructed verifier context.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a></dd></dl>
<dl class="section 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>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_verifier_module.html#ga6707e691f4b3916f9c684d5bbd463d12" title="Deletes an existing verifier context. ">EpidVerifierDelete</a> </dd>
<dd>
<a class="el" href="group___epid_verifier_module.html#ga92df4d00ea4ee59d7bfd35b23da03392" title="Serializes the pre-computed verifier settings. ">EpidVerifierWritePrecomp</a></dd></dl>
<p><b>Example</b> </p>
<p><a class="el" href="_user_manual__verifying_an_intel_epid_signature.html">Verifying an Intel&reg; EPID Signature</a> </p>
</div>
</div>
<a id="ga6707e691f4b3916f9c684d5bbd463d12"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6707e691f4b3916f9c684d5bbd463d12">&#9670;&nbsp;</a></span>EpidVerifierDelete()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EpidVerifierDelete </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> **&#160;</td>
<td class="paramname"><em>ctx</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Deletes an existing verifier context. </p>
<p>Must be called to safely release a verifier context created using <a class="el" href="group___epid_verifier_module.html#ga1d116daaee5466a1485d26ebc4e3ab70" title="Creates a new verifier context. ">EpidVerifierCreate()</a>.</p>
<p>De-initializes the context, frees memory used by the context, and sets the context pointer to NULL.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in,out]</td><td class="paramname">ctx</td><td>The verifier context. Can be NULL.</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_verifier_module.html#ga1d116daaee5466a1485d26ebc4e3ab70" title="Creates a new verifier context. ">EpidVerifierCreate</a></dd></dl>
<p><b>Example</b> </p>
<p><a class="el" href="_user_manual__verifying_an_intel_epid_signature.html">Verifying an Intel&reg; EPID Signature</a> </p>
</div>
</div>
<a id="ga1c3810ef361da678a1f77823bd9c37a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1c3810ef361da678a1f77823bd9c37a6">&#9670;&nbsp;</a></span>EpidVerifierSetBasename()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidVerifierSetBasename </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> *&#160;</td>
<td class="paramname"><em>ctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void const *&#160;</td>
<td class="paramname"><em>basename</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>basename_len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the basename to be used by a verifier. </p>
<dl class="section note"><dt>Note</dt><dd>A successful call to this function will clear the current verifier blacklist.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in,out]</td><td class="paramname">ctx</td><td>The verifier context. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">basename</td><td>The basename. Pass NULL for random base. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">basename_len</td><td>Number of bytes in basename buffer. Must be 0 if basename is NULL.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a></dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_verifier_module.html#ga1d116daaee5466a1485d26ebc4e3ab70" title="Creates a new verifier context. ">EpidVerifierCreate</a></dd></dl>
<p><b>Example</b> </p>
<p><a class="el" href="_user_manual__verifying_an_intel_epid_signature.html">Verifying an Intel&reg; EPID Signature</a> </p>
</div>
</div>
<a id="ga1d41d6ef4dabbc30ec28452edd6baffb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1d41d6ef4dabbc30ec28452edd6baffb">&#9670;&nbsp;</a></span>EpidVerifierSetGroupRl()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidVerifierSetGroupRl </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> *&#160;</td>
<td class="paramname"><em>ctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_group_rl.html">GroupRl</a> const *&#160;</td>
<td class="paramname"><em>grp_rl</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>grp_rl_size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the group based revocation list. </p>
<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>
<dl class="section attention"><dt>Attention</dt><dd>The memory pointed to by grp_rl is accessed directly by the verifier until a new list is set or the verifier 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>
<dd>
It is the responsibility of the caller to free the memory pointed to by grp_rl after the verifier is no longer using it.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in,out]</td><td class="paramname">ctx</td><td>The verifier context. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">grp_rl</td><td>The group based revocation list. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">grp_rl_size</td><td>The size of the group based revocation list in bytes.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a></dd></dl>
<dl class="section 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 group based revocation list pointed to by the verifier is undefined.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_verifier_module.html#ga1d116daaee5466a1485d26ebc4e3ab70" title="Creates a new verifier context. ">EpidVerifierCreate</a></dd></dl>
<p><b>Example</b> </p>
<p><a class="el" href="_user_manual__verifying_an_intel_epid_signature.html">Verifying an Intel&reg; EPID Signature</a> </p>
</div>
</div>
<a id="ga97b58b2382f24756b66a357f1e825c92"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga97b58b2382f24756b66a357f1e825c92">&#9670;&nbsp;</a></span>EpidVerifierSetHashAlg()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidVerifierSetHashAlg </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> *&#160;</td>
<td class="paramname"><em>ctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___epid_types.html#ga5e450438f6f9a5eacd0cf5ce354ec890">HashAlg</a>&#160;</td>
<td class="paramname"><em>hash_alg</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the hash algorithm to be used by a verifier. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The verifier context. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">hash_alg</td><td>The hash algorithm to use.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a></dd></dl>
<dl class="section 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 verifier is undefined.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_verifier_module.html#ga1d116daaee5466a1485d26ebc4e3ab70" title="Creates a new verifier context. ">EpidVerifierCreate</a> </dd>
<dd>
<a class="el" href="group___epid_types.html#ga5e450438f6f9a5eacd0cf5ce354ec890" title="Recognized hash algorithms. ">HashAlg</a></dd></dl>
<p><b>Example</b> </p>
<p><a class="el" href="_user_manual__verifying_an_intel_epid_signature.html">Verifying an Intel&reg; EPID Signature</a> </p>
</div>
</div>
<a id="gafab08180a43b58ce2e1d56c4b070bb0e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafab08180a43b58ce2e1d56c4b070bb0e">&#9670;&nbsp;</a></span>EpidVerifierSetPrivRl()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidVerifierSetPrivRl </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> *&#160;</td>
<td class="paramname"><em>ctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_priv_rl.html">PrivRl</a> const *&#160;</td>
<td class="paramname"><em>priv_rl</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>priv_rl_size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the private key based revocation list. </p>
<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>
<dl class="section attention"><dt>Attention</dt><dd>The memory pointed to by priv_rl is accessed directly by the verifier until a new list is set or the verifier 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>
<dd>
It is the responsibility of the caller to free the memory pointed to by priv_rl after the verifier is no longer using it.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in,out]</td><td class="paramname">ctx</td><td>The verifier context. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">priv_rl</td><td>The private key based revocation list. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">priv_rl_size</td><td>The size of the private key based revocation list in bytes.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a></dd></dl>
<dl class="section 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 private key based revocation list pointed to by the verifier is undefined.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_verifier_module.html#ga1d116daaee5466a1485d26ebc4e3ab70" title="Creates a new verifier context. ">EpidVerifierCreate</a></dd></dl>
<p><b>Example</b> </p>
<p><a class="el" href="_user_manual__verifying_an_intel_epid_signature.html">Verifying an Intel&reg; EPID Signature</a> </p>
</div>
</div>
<a id="ga4c7c9820409ee06f30bb8dc75fdd5dcf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4c7c9820409ee06f30bb8dc75fdd5dcf">&#9670;&nbsp;</a></span>EpidVerifierSetSigRl()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidVerifierSetSigRl </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> *&#160;</td>
<td class="paramname"><em>ctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_sig_rl.html">SigRl</a> const *&#160;</td>
<td class="paramname"><em>sig_rl</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>sig_rl_size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the signature based revocation list. </p>
<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>
<dl class="section attention"><dt>Attention</dt><dd>The memory pointed to by sig_rl is accessed directly by the verifier until a new list is set or the verifier 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>
<dd>
It is the responsibility of the caller to free the memory pointed to by sig_rl after the verifier is no longer using it.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in,out]</td><td class="paramname">ctx</td><td>The verifier context. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">sig_rl</td><td>The signature based revocation list. </td></tr>
<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>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a></dd></dl>
<dl class="section 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 verifier is undefined.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_verifier_module.html#ga1d116daaee5466a1485d26ebc4e3ab70" title="Creates a new verifier context. ">EpidVerifierCreate</a></dd></dl>
<p><b>Example</b> </p>
<p><a class="el" href="_user_manual__verifying_an_intel_epid_signature.html">Verifying an Intel&reg; EPID Signature</a> </p>
</div>
</div>
<a id="ga0909703a0a4dfe080374d0d99077465a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0909703a0a4dfe080374d0d99077465a">&#9670;&nbsp;</a></span>EpidVerifierSetVerifierRl()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidVerifierSetVerifierRl </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> *&#160;</td>
<td class="paramname"><em>ctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_verifier_rl.html">VerifierRl</a> const *&#160;</td>
<td class="paramname"><em>ver_rl</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>ver_rl_size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the verifier revocation list. </p>
<p>The caller is responsible for ensuring the revocation list is authorized. The caller is also responsible for checking the version of the revocation list. The call fails if trying to set an older version of the same revocation list than was last set.</p>
<p>Once <a class="el" href="group___epid_verifier_module.html#ga0909703a0a4dfe080374d0d99077465a" title="Sets the verifier revocation list. ">EpidVerifierSetVerifierRl</a> returns, callers are free to release the memory pointed to by ver_rl.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in,out]</td><td class="paramname">ctx</td><td>The verifier context. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ver_rl</td><td>The verifier revocation list. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ver_rl_size</td><td>The size of the verifier revocation list in bytes.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a></dd></dl>
<dl class="section 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 verifier revocation list pointed to by the verifier is undefined.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_verifier_module.html#ga1d116daaee5466a1485d26ebc4e3ab70" title="Creates a new verifier context. ">EpidVerifierCreate</a> </dd>
<dd>
<a class="el" href="group___epid_verifier_module.html#ga8eaeb9f4a34e9e37ccdf342919f38c69" title="Adds a valid name-based signature to the verifier blacklist. ">EpidBlacklistSig</a> </dd>
<dd>
<a class="el" href="group___epid_verifier_module.html#gac857bff47e7d80363eac15285471fe81" title="Serializes the verifier blacklist to a buffer. ">EpidWriteVerifierRl</a></dd></dl>
<p><b>Example</b> </p>
<p><a class="el" href="_user_manual__verifying_an_intel_epid_signature.html">Verifying an Intel&reg; EPID Signature</a> </p>
</div>
</div>
<a id="ga92df4d00ea4ee59d7bfd35b23da03392"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga92df4d00ea4ee59d7bfd35b23da03392">&#9670;&nbsp;</a></span>EpidVerifierWritePrecomp()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidVerifierWritePrecomp </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> const *&#160;</td>
<td class="paramname"><em>ctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_verifier_precomp.html">VerifierPrecomp</a> *&#160;</td>
<td class="paramname"><em>precomp</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Serializes the pre-computed verifier settings. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The verifier context. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">precomp</td><td>The Serialized pre-computed verifier settings. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a></dd></dl>
<dl class="section 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>
<p><b>Example</b> </p>
<p><a class="el" href="_user_manual__verifying_an_intel_epid_signature.html">Verifying an Intel&reg; EPID Signature</a> </p>
</div>
</div>
<a id="gae3f9c37628e18b880d8bbee3e7f55064"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae3f9c37628e18b880d8bbee3e7f55064">&#9670;&nbsp;</a></span>EpidVerify()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidVerify </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> const *&#160;</td>
<td class="paramname"><em>ctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_epid_signature.html">EpidSignature</a> const *&#160;</td>
<td class="paramname"><em>sig</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>sig_len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void const *&#160;</td>
<td class="paramname"><em>msg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>msg_len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Verifies a signature and checks revocation status. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The verifier context. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">sig</td><td>The signature. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">sig_len</td><td>The size of sig in bytes. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">msg</td><td>The message that was signed. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">msg_len</td><td>The size of msg in bytes.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a></dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname"><a class="el" href="group___error_codes.html#ggafdb27c77c2c4b32c807e326a8a0da360ab45ad60085d03c03ea30b40a0519897e" title="Signature is valid. ">kEpidSigValid</a></td><td>Signature validated successfully </td></tr>
<tr><td class="paramname"><a class="el" href="group___error_codes.html#ggafdb27c77c2c4b32c807e326a8a0da360aeedd19b8a1cbdecf963f90b4860e02b8" title="Signature is invalid. ">kEpidSigInvalid</a></td><td>Signature is invalid </td></tr>
<tr><td class="paramname"><a class="el" href="group___error_codes.html#ggafdb27c77c2c4b32c807e326a8a0da360aedd43fb4043bef3b515fc23f1d9a5fe5" title="Signature revoked in GroupRl. ">kEpidSigRevokedInGroupRl</a></td><td>Signature revoked in <a class="el" href="struct_group_rl.html" title="group revocation list ">GroupRl</a> </td></tr>
<tr><td class="paramname"><a class="el" href="group___error_codes.html#ggafdb27c77c2c4b32c807e326a8a0da360a1dc7b7e6ff97c7ed9ff4191d76ebd6e1" title="Signature revoked in PrivRl. ">kEpidSigRevokedInPrivRl</a></td><td>Signature revoked in <a class="el" href="struct_priv_rl.html" title="private-key based revocation list. ">PrivRl</a> </td></tr>
<tr><td class="paramname"><a class="el" href="group___error_codes.html#ggafdb27c77c2c4b32c807e326a8a0da360a43c658cbf0d156850d71ce3f8efd461c" title="Signature revoked in SigRl. ">kEpidSigRevokedInSigRl</a></td><td>Signature revoked in <a class="el" href="struct_sig_rl.html" title="signature based revocation list ">SigRl</a> </td></tr>
<tr><td class="paramname"><a class="el" href="group___error_codes.html#ggafdb27c77c2c4b32c807e326a8a0da360a486e052baa99c6c25ae5d5cc710de298" title="Signature revoked in VerifierRl. ">kEpidSigRevokedInVerifierRl</a></td><td>Signature revoked in <a class="el" href="struct_verifier_rl.html">VerifierRl</a></td></tr>
</table>
</dd>
</dl>
<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 one of the values listed above the verify should be considered to have failed.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_verifier_module.html#ga1d116daaee5466a1485d26ebc4e3ab70" title="Creates a new verifier context. ">EpidVerifierCreate</a> </dd>
<dd>
EpidSignBasic </dd>
<dd>
<a class="el" href="group___epid_member_module.html#ga74d1409a816cb52633564b793072da5f" title="Writes an Intel(R) EPID signature. ">EpidSign</a></dd></dl>
<p><b>Example</b> </p>
<p><a class="el" href="_user_manual__verifying_an_intel_epid_signature.html">Verifying an Intel&reg; EPID Signature</a> </p>
</div>
</div>
<a id="gac3b1f1a2bdba8eeeebbf1e0c8c00862e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac3b1f1a2bdba8eeeebbf1e0c8c00862e">&#9670;&nbsp;</a></span>EpidVerifyBasicSig()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidVerifyBasicSig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> const *&#160;</td>
<td class="paramname"><em>ctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_basic_signature.html">BasicSignature</a> const *&#160;</td>
<td class="paramname"><em>sig</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void const *&#160;</td>
<td class="paramname"><em>msg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>msg_len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Verifies a member signature without revocation checks. </p>
<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>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The verifier context. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">sig</td><td>The basic signature. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">msg</td><td>The message that was signed. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">msg_len</td><td>The size of msg in bytes.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a></dd></dl>
<dl class="section note"><dt>Note</dt><dd>This function should be used in conjunction with <a class="el" href="group___epid_verifier_module.html#gac6e2fab59e3af8a33a74a5b201642700" title="Verifies the non-revoked proof for a single signature based revocation list entry. ">EpidNrVerify()</a> and <a class="el" href="group___epid_verifier_module.html#gaeb05e6faea6f09c0665b13adc6e7ddea" title="Verifies a signature has not been revoked in the private key based revocation list. ">EpidCheckPrivRlEntry()</a>.</dd>
<dd>
If the result is not <a class="el" href="group___error_codes.html#ggafdb27c77c2c4b32c807e326a8a0da360a8a6861e14322ca9193498ffc955537f9" title="no error ">kEpidNoErr</a> the verify should be considered to have failed.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_verifier_module.html#ga1d116daaee5466a1485d26ebc4e3ab70" title="Creates a new verifier context. ">EpidVerifierCreate</a> </dd>
<dd>
EpidSignBasic </dd>
<dd>
<a class="el" href="group___epid_member_module.html#ga74d1409a816cb52633564b793072da5f" title="Writes an Intel(R) EPID signature. ">EpidSign</a> </dd></dl>
</div>
</div>
<a id="gac857bff47e7d80363eac15285471fe81"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac857bff47e7d80363eac15285471fe81">&#9670;&nbsp;</a></span>EpidWriteVerifierRl()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> EpidWriteVerifierRl </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___epid_verifier_module.html#gaf172a5f8f7f069d38c5838b723a1a85c">VerifierCtx</a> const *&#160;</td>
<td class="paramname"><em>ctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_verifier_rl.html">VerifierRl</a> *&#160;</td>
<td class="paramname"><em>ver_rl</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>ver_rl_size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Serializes the verifier blacklist to a buffer. </p>
<p>If the current blacklist is empty or not set a valid empty verifier blacklist will be serialized.</p>
<p>Use <a class="el" href="group___epid_verifier_module.html#ga2a75c7d5775e852a7b6e24178dd4054f" title="Returns the number of bytes required to serialize the verifier blacklist. ">EpidGetVerifierRlSize</a> to determine the buffer size required to serialize the verifier blacklist.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The verifier context. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">ver_rl</td><td>An existing buffer in which to write the verifier revocation list. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ver_rl_size</td><td>The size of the caller allocated output buffer in bytes.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a></dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group___epid_verifier_module.html#ga1d116daaee5466a1485d26ebc4e3ab70" title="Creates a new verifier context. ">EpidVerifierCreate</a> </dd>
<dd>
<a class="el" href="group___epid_verifier_module.html#ga0909703a0a4dfe080374d0d99077465a" title="Sets the verifier revocation list. ">EpidVerifierSetVerifierRl</a> </dd>
<dd>
<a class="el" href="group___epid_verifier_module.html#ga8eaeb9f4a34e9e37ccdf342919f38c69" title="Adds a valid name-based signature to the verifier blacklist. ">EpidBlacklistSig</a> </dd>
<dd>
<a class="el" href="group___epid_verifier_module.html#ga2a75c7d5775e852a7b6e24178dd4054f" title="Returns the number of bytes required to serialize the verifier blacklist. ">EpidGetVerifierRlSize</a> </dd></dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.10-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">
&copy; 2016-2017 Intel Corporation
</li>
</ul>
</div>
</body>
</html>