<!-- 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: EpidSignature Struct Reference</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('struct_epid_signature.html','');});
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-attribs">Data Fields</a>  </div>
  <div class="headertitle">
<div class="title">EpidSignature Struct Reference<div class="ingroups"><a class="el" href="group___epid_module.html">epid&amp;nbsp;</a> &raquo; <a class="el" href="group___epid_common.html">common</a> &raquo; <a class="el" href="group___epid_types.html">types</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Intel(R) EPID 2.0 Signature.  
 <a href="struct_epid_signature.html#details">More...</a></p>

<p><code>#include &lt;epid/common/types.h&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr class="memitem:ab0fe5f98bff737fcfbfe0b4d658e83f2"><td class="memItemLeft" align="right" valign="top"><a id="ab0fe5f98bff737fcfbfe0b4d658e83f2"></a>
<a class="el" href="struct_basic_signature.html">BasicSignature</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_epid_signature.html#ab0fe5f98bff737fcfbfe0b4d658e83f2">sigma0</a></td></tr>
<tr class="memdesc:ab0fe5f98bff737fcfbfe0b4d658e83f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic signature <br /></td></tr>
<tr class="separator:ab0fe5f98bff737fcfbfe0b4d658e83f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4155f3f4f1223fc4ae50c94f5305def1"><td class="memItemLeft" align="right" valign="top"><a id="a4155f3f4f1223fc4ae50c94f5305def1"></a>
<a class="el" href="struct_oct_str32.html">OctStr32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_epid_signature.html#a4155f3f4f1223fc4ae50c94f5305def1">rl_ver</a></td></tr>
<tr class="memdesc:a4155f3f4f1223fc4ae50c94f5305def1"><td class="mdescLeft">&#160;</td><td class="mdescRight">revocation list version number <br /></td></tr>
<tr class="separator:a4155f3f4f1223fc4ae50c94f5305def1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62a6b0ffcd5f68dd3d2786a58fe43017"><td class="memItemLeft" align="right" valign="top"><a id="a62a6b0ffcd5f68dd3d2786a58fe43017"></a>
<a class="el" href="struct_oct_str32.html">OctStr32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_epid_signature.html#a62a6b0ffcd5f68dd3d2786a58fe43017">n2</a></td></tr>
<tr class="memdesc:a62a6b0ffcd5f68dd3d2786a58fe43017"><td class="mdescLeft">&#160;</td><td class="mdescRight">number of entries in SigRL <br /></td></tr>
<tr class="separator:a62a6b0ffcd5f68dd3d2786a58fe43017"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89d2e38223944310b6eeeadf6061a2dd"><td class="memItemLeft" align="right" valign="top"><a id="a89d2e38223944310b6eeeadf6061a2dd"></a>
<a class="el" href="struct_nr_proof.html">NrProof</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_epid_signature.html#a89d2e38223944310b6eeeadf6061a2dd">sigma</a> [1]</td></tr>
<tr class="memdesc:a89d2e38223944310b6eeeadf6061a2dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">array of non-revoked proofs (flexible array) <br /></td></tr>
<tr class="separator:a89d2e38223944310b6eeeadf6061a2dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Intel(R) EPID 2.0 Signature. </p>
<p>Signature: (sigma0, RLver, n2, sigma[0], ..., sigma[n2-1]) </p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>epid/common/<a class="el" href="types_8h.html">types.h</a></li>
</ul>
</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="navelem"><a class="el" href="struct_epid_signature.html">EpidSignature</a></li>
    <li class="footer">
      &copy; 2016-2017 Intel Corporation
    </li>
  </ul>
</div>
</body>
</html>
