<!-- 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: What&#39;s New</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('_change_log.html','');});
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">What's New </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><h2>[6.0.1] - 2018-05-04</h2>
<h3>Changed</h3>
<ul>
<li>Updated Intel(R) IPP Cryptography library to version 2018 (Update 2.1).</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>The member library now includes the tpm2 subcomponent when built using SCons, instead of requiring a separate member.tpm2 library.</li>
</ul>
<h3>Known Issues</h3>
<ul>
<li>Only the SHA-256 hash algorithm is supported when using the SDK with the IBM TPM simulator due to a defect in version 532 of the simulator.</li>
<li>Basenames are limited to 124 bytes in TPM mode.</li>
<li>Scons build will not work natively on ARM. You can still build using <code>make</code> or cross compile.</li>
</ul>
<h2>[6.0.0] - 2017-12-15</h2>
<h3>Added</h3>
<ul>
<li>The member can now be built with a substantially reduced code size using a compilation option.</li>
<li>New context lifetime management APIs have been added to member to give callers more control of memory allocation.</li>
<li>New member API <code>EpidClearRegisteredBasenames</code> has been added to clear registered basenames without recreating the member.</li>
</ul>
<h3>Changed</h3>
<ul>
<li><code>EpidRegisterBaseName</code> was renamed to <code>EpidRegisterBasename</code> because basename is a single word.</li>
<li>Command-line parsing library used by samples and tools has been replaced by Argtable3.</li>
</ul>
<h3>Deprecated</h3>
<ul>
<li><code>EpidMemberCreate</code> has been deprecated. This API has been superseded by <code>EpidMemberGetSize</code> and <code>EpidMemberInit</code>.</li>
<li><code>EpidMemberDelete</code> has been deprecated. This API has been superseded by <code>EpidMemberDeinit</code>.</li>
</ul>
<h3>Removed</h3>
<ul>
<li><code>size_optimized_release</code> build configuration has been removed. Use the compilation option to build member with reduced code size.</li>
</ul>
<h3>Known Issues</h3>
<ul>
<li>Only the SHA-256 hash algorithm is supported when using the SDK with the IBM TPM simulator due to a defect in version 532 of the simulator.</li>
<li>Basenames are limited to 124 bytes in TPM mode.</li>
<li>Scons build will not work natively on ARM. You can still build using <code>make</code> or cross compile.</li>
</ul>
<h2>[5.0.0] - 2017-09-15</h2>
<h3>Added</h3>
<ul>
<li>The member implementation now has the option to support signing using a TPM, using the ECDAA capabilities of TPM 2.0.</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Member API updated to unify HW and SW use cases.<ul>
<li>Added<ul>
<li><code>ProvisionKey</code></li>
<li><code>ProvisionCompressed</code></li>
<li><code>ProvisionCredential</code></li>
<li><code>Startup</code></li>
</ul>
</li>
<li>Parameters changed<ul>
<li><code>MemberCreate</code></li>
<li><code>RequestJoin</code></li>
</ul>
</li>
<li>Removed or made private<ul>
<li><code>WritePrecomp</code></li>
<li><code>SignBasic</code></li>
<li><code>NrProve</code></li>
<li><code>AssemblePrivKey</code></li>
</ul>
</li>
</ul>
</li>
<li><code>EpidRequestJoin</code> was renamed to <code>EpidCreateJoinRequest</code> to make it clear that it is not directly communicating with the issuer.</li>
</ul>
<h3>Fixed</h3>
<ul>
<li><code>EpidCreateJoinRequest</code> creates valid join requests. This fixes a regression in <code>EpidRequestJoin</code> introduced in 4.0.0.</li>
</ul>
<h3>Known Issues</h3>
<ul>
<li>Only the SHA-256 hash algorithm is supported when using the SDK with the IBM TPM simulator due to a defect in version 532 of the simulator.</li>
<li>Basenames are limited to 124 bytes in TPM mode.</li>
</ul>
<h2>[4.0.0] - 2017-04-25</h2>
<h3>Added</h3>
<ul>
<li>The member implementation now provides an internal interface that gives guidance on partitioning member operations between highly sensitive ones that use f value of the private key, and less sensitive operations that can be performed in a host environment.</li>
<li>New member API <code>EpidAssemblePrivKey</code> was added to help assemble and validate the new member private key that is created when a member either joins a group (using the join protocol) or switches to a new group (as the result of a performance rekey).</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Updated Intel(R) IPP Cryptography library to version 2017 (Update 2).</li>
<li>The mechanism to set the signature based revocation list (SigRL) used for signing was changed. <code>EpidMemberSetSigRl</code> must be used to set the SigRL. The SigRL is no longer a parameter to <code>EpidSign</code>. This better models typical use case where a device stores a revocation list and updates it independently of signing operations.</li>
</ul>
<h3>Removed</h3>
<ul>
<li>Removed <code>EpidWritePreSigs</code> API. Serialization of pre-computed signatures is a risky capability to provide, and simply expanding the internal pool via <code>EpidAddPreSigs</code> still provides most of the optimization benefits.</li>
<li>The <code>EpidIsPrivKeyInGroup</code> API is no longer exposed to clients. It is no longer needed because the new member API <code>EpidAssemblePrivKey</code> performs this check.</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>When building with commercial version of the Intel(R) IPP Cryptography library, optimized functions are now properly invoked, making signing and verification operations ~2 times faster</li>
<li>SHA-512/256 hash algorithm is now supported.</li>
<li>README for compressed data now correctly documents the number of entries in revocation lists.</li>
<li>The <code>verifysig</code> sample now reports a more clear error message for mismatched SigRLs.</li>
<li>The default scons build will now build for a 32-bit target on a 32-bit platform.</li>
</ul>
<h3>Known Issues</h3>
<ul>
<li>Scons build will not work natively on ARM. You can still build using <code>make</code> or cross compile.</li>
</ul>
<h2>[3.0.0] - 2016-11-22</h2>
<h3>Added</h3>
<ul>
<li>Support for verification of Intel(R) EPID 1.1 members.</li>
<li>Make-based build system support.</li>
<li>Sample material includes compressed keys.</li>
<li>Enhanced documentation, including step-by-step walkthroughs of example applications.</li>
<li>Validated on additional IoT platforms.<ul>
<li>Ostro Linux</li>
<li>Snappy Ubuntu Core</li>
</ul>
</li>
</ul>
<h3>Changes</h3>
<ul>
<li>A new verifier API has been added to set the basename to be used for verification. Verifier APIs that used to accept basenames now use the basename set via <code>EpidVerifierSetBasename</code>.</li>
<li>The verifier pre-computation structure has been changed to include the group ID to allow detection of errors that result from providing a pre-computation blob from a different group to <code>EpidVerifierCreate</code>.</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>The kEpidxxxRevoked enums have been renamed to be consistent with other result return values.</li>
</ul>
<h3>Known Issues</h3>
<ul>
<li>SHA-512/256 hash algorithm is not supported.</li>
</ul>
<h2>[2.0.0] - 2016-07-20</h2>
<h3>Added</h3>
<ul>
<li>Signed binary issuer material support.<ul>
<li>Binary issuer material validation APIs.</li>
<li>Updated sample issuer material.</li>
<li>Updated samples that parse signed binary issuer material.</li>
</ul>
</li>
<li>Compressed member private key support.</li>
<li>Validated on additional IoT platforms.<ul>
<li>Windows 10 IoT Core</li>
<li>WindRiver IDP</li>
</ul>
</li>
</ul>
<h3>Changed</h3>
<ul>
<li>The default hash algorithm has changed. It is now SHA-512.</li>
<li>Functions that returned <code>EpidNullPtrErr</code> now return <code>EpidBadArgErr</code> instead.</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Updated build flags to work around GCC 4.8.5 defect.</li>
</ul>
<h2>[1.0.0] - 2016-03-03</h2>
<h3>Added</h3>
<ul>
<li>Basic sign and verify functionality</li>
<li>Dynamic join support for member</li>
<li>Apache 2.0 License </li>
</ul>
</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>
