Home | History | Annotate | Download | only in html
      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&reg; Enhanced Privacy ID SDK: What&#39;s Included in the SDK</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&amp;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&reg; Enhanced Privacy ID SDK</a>
     35 &#160;<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&amp;dn=gpl-2.0.txt GPL-v2 */
     57 $(document).ready(function(){initNavTree('_sdk_overview.html','');});
     58 /* @license-end */
     59 </script>
     60 <div id="doc-content">
     61 <div class="header">
     62   <div class="headertitle">
     63 <div class="title">What's Included in the SDK </div>  </div>
     64 </div><!--header-->
     65 <div class="contents">
     66 <div class="toc"><h3>Table of Contents</h3>
     67 <ul><li class="level1"><a href="#SdkOverview_Components">SDK Components</a><ul><li class="level2"><a href="#SdkOverview_Core">SDK Core</a></li>
     68 <li class="level2"><a href="#SdkOverview_Samples">Samples</a></li>
     69 <li class="level2"><a href="#SdkOverview_Tools">Tools</a></li>
     70 <li class="level2"><a href="#SdkOverview_BuildingAndValidation">Other Components</a></li>
     71 </ul>
     72 </li>
     73 <li class="level1"><a href="#SdkOverview_Compatibility">Intel&reg; EPID 1.1 Compatibility</a></li>
     74 <li class="level1"><a href="#SdkOverview_TPM">Member Implementations</a></li>
     75 <li class="level1"><a href="#SdkOverview_Files">Folder Layout</a><ul><li class="level2"><a href="#SdkOverview_Files_SourceLayout">Source Layout</a></li>
     76 <li class="level2"><a href="#SdkOverview_Files_InstallLayout">Install Layout</a></li>
     77 </ul>
     78 </li>
     79 </ul>
     80 </div>
     81 <div class="textblock"><h1><a class="anchor" id="SdkOverview_Components"></a>
     82 SDK Components</h1>
     83 <p>The SDK is divided into logical components to separate responsibilities and create interfaces that you can re-implement using custom tools such as hardware accelerators.</p>
     84 <div class="image">
     85 <img src="sdk_block_diagram.png" alt="sdk_block_diagram.png"/>
     86 </div>
     87 <p><br />
     88  The Intel&reg; EPID SDK is divided into the following components:</p>
     89 <p><br />
     90 </p>
     91 <h2><a class="anchor" id="SdkOverview_Core"></a>
     92 SDK Core</h2>
     93 <p>Components in the SDK Core implement the features of Intel&reg; EPID.</p>
     94 <table class="markdownTable">
     95 <tr class="markdownTableHead">
     96 <th class="markdownTableHeadNone">Component  </th><th class="markdownTableHeadNone">Description ------------&mdash;   </th></tr>
     97 <tr class="markdownTableBody" class="markdownTableRowOdd">
     98 <td class="markdownTableBodyNone">member  </td><td class="markdownTableBodyNone">Library containing APIs needed to implement a member   </td></tr>
     99 <tr class="markdownTableBody" class="markdownTableRowEven">
    100 <td class="markdownTableBodyNone">verifier  </td><td class="markdownTableBodyNone">Library containing APIs needed to implement a verifier   </td></tr>
    101 <tr class="markdownTableBody" class="markdownTableRowOdd">
    102 <td class="markdownTableBodyNone">common  </td><td class="markdownTableBodyNone">Library containing common types and functions   </td></tr>
    103 <tr class="markdownTableBody" class="markdownTableRowEven">
    104 <td class="markdownTableBodyNone">math  </td><td class="markdownTableBodyNone">Math primitives used by member and verifier   </td></tr>
    105 </table>
    106 <p><br />
    107 </p>
    108 <h2><a class="anchor" id="SdkOverview_Samples"></a>
    109 Samples</h2>
    110 <p>The SDK includes <a class="el" href="_issuer_material.html">Test Data</a> in <code>example/data</code> that is intended to be provisioned in members and verifiers so that they can operate without real issuer material. (For information on how to work with real issuer material, refer to <a class="el" href="_usingi_k_g_f.html">Managing Groups with iKGF</a>.)</p>
    111 <p>The SDK also includes signing and verification <a class="el" href="_examples.html">Examples</a> that show how to use the SDK APIs in working code.</p>
    112 <table class="markdownTable">
    113 <tr class="markdownTableHead">
    114 <th class="markdownTableHeadNone">Component  </th><th class="markdownTableHeadNone">Description ------------&mdash;   </th></tr>
    115 <tr class="markdownTableBody" class="markdownTableRowOdd">
    116 <td class="markdownTableBodyNone">signmsg  </td><td class="markdownTableBodyNone">A sample program showing how to sign messages   </td></tr>
    117 <tr class="markdownTableBody" class="markdownTableRowEven">
    118 <td class="markdownTableBodyNone">verfifysig  </td><td class="markdownTableBodyNone">A sample program showing how to verify signatures   </td></tr>
    119 <tr class="markdownTableBody" class="markdownTableRowOdd">
    120 <td class="markdownTableBodyNone">util  </td><td class="markdownTableBodyNone">Common utilities used by samples   </td></tr>
    121 <tr class="markdownTableBody" class="markdownTableRowEven">
    122 <td class="markdownTableBodyNone">Sample Issuer Material  </td><td class="markdownTableBodyNone">Sample keys and revocation lists   </td></tr>
    123 </table>
    124 <p><br />
    125 </p>
    126 <h2><a class="anchor" id="SdkOverview_Tools"></a>
    127 Tools</h2>
    128 <p>The SDK provides tools to interact with Intel&reg; EPID related services such those offered by the <a class="el" href="_issuer_material.html">Intel&reg; Key Generation Facility</a>.</p>
    129 <table class="markdownTable">
    130 <tr class="markdownTableHead">
    131 <th class="markdownTableHeadNone">Component  </th><th class="markdownTableHeadNone">Description ------------&mdash;   </th></tr>
    132 <tr class="markdownTableBody" class="markdownTableRowOdd">
    133 <td class="markdownTableBodyNone">extractgrps  </td><td class="markdownTableBodyNone">A tool to extract groups from a bulk group file   </td></tr>
    134 <tr class="markdownTableBody" class="markdownTableRowEven">
    135 <td class="markdownTableBodyNone">extractkeys  </td><td class="markdownTableBodyNone">A tool to extract member keys from a bulk key file   </td></tr>
    136 <tr class="markdownTableBody" class="markdownTableRowOdd">
    137 <td class="markdownTableBodyNone">revokegrp  </td><td class="markdownTableBodyNone">A tool to create a revocation request for a group   </td></tr>
    138 <tr class="markdownTableBody" class="markdownTableRowEven">
    139 <td class="markdownTableBodyNone">revokekey  </td><td class="markdownTableBodyNone">A tool to create a revocation request for a member key   </td></tr>
    140 <tr class="markdownTableBody" class="markdownTableRowOdd">
    141 <td class="markdownTableBodyNone">revokesig  </td><td class="markdownTableBodyNone">A tool to create a revocation request from a signature   </td></tr>
    142 </table>
    143 <p><br />
    144 </p>
    145 <h2><a class="anchor" id="SdkOverview_BuildingAndValidation"></a>
    146 Other Components</h2>
    147 <p>The SDK comes with a number of other components that support building and validating the code.</p>
    148 <table class="markdownTable">
    149 <tr class="markdownTableHead">
    150 <th class="markdownTableHeadNone">Component  </th><th class="markdownTableHeadNone">Description ------------&mdash;   </th></tr>
    151 <tr class="markdownTableBody" class="markdownTableRowOdd">
    152 <td class="markdownTableBodyNone">gtest  </td><td class="markdownTableBodyNone">gtest unit test framework   </td></tr>
    153 <tr class="markdownTableBody" class="markdownTableRowEven">
    154 <td class="markdownTableBodyNone">Build Scripts  </td><td class="markdownTableBodyNone">Scripts to configure and build the SDK   </td></tr>
    155 <tr class="markdownTableBody" class="markdownTableRowOdd">
    156 <td class="markdownTableBodyNone">dropt  </td><td class="markdownTableBodyNone">Library for parsing command line   </td></tr>
    157 </table>
    158 <p>Math primitives are implemented in the <em>math</em> sub-component of <em>common</em>. The reference math primitive implementation is based on a non-optimized Vanilla C subset of the Intel&reg; Performance Primitives. <em>Math</em> is designed so that you can replace its implementation to call custom hardware IP blocks or optimized libraries.</p>
    159 <p><br />
    160 </p>
    161 <h1><a class="anchor" id="SdkOverview_Compatibility"></a>
    162 Intel EPID 1.1 Compatibility</h1>
    163 <p>In addition to the default Intel&reg; EPID 2.0 APIs, the <em>verifier</em> component also includes APIs that allow verification of Intel&reg; EPID 1.1 signatures.</p>
    164 <p>Billions of existing devices, including most Intel platforms manufactured since 2008, create signatures that need Intel&reg; EPID 1.1 verification.</p>
    165 <p>For details on verifying Intel&reg; EPID 1.1 signatures see <a href="group___epid11_verifier_module.html#details"><b>Intel&reg; EPID 1.1 support</b></a> in the API Reference.</p>
    166 <h1><a class="anchor" id="SdkOverview_TPM"></a>
    167 Member Implementations</h1>
    168 <p>There are three member implementations. You can use a specific compilation option to select the implementation that will be used at compile time. The implementations are:</p>
    169 <ol type="1">
    170 <li><b>Reference:</b> This default implementation gives guidance on partitioning member operations between highly sensitive ones that use the <code>f</code> value of the member private key, and less sensitive ones that can be performed in a host environment. To build in default mode, refer to <a class="el" href="_building_sdk.html">Building from Source</a>.</li>
    171 <li><b>TPM:</b> This TPM member implementation uses the TPM for signing by linking to the IBM TSS. To build in TPM mode, refer to <a class="el" href="_tpm_considerations.html#TpmConsiderations_BuildingTpmMode">Building the SDK in TPM Mode</a>.</li>
    172 <li><b>Tiny:</b> This tiny implementation builds the SDK with a substantially reduced code size. To build in tiny mode, refer to <a class="el" href="_building_sdk.html#BuildingSdk_Tiny">Optimizing for Code Size</a>.</li>
    173 </ol>
    174 <div class="image">
    175 <img src="implementing_member.png" alt="implementing_member.png"/>
    176 </div>
    177 <h1><a class="anchor" id="SdkOverview_Files"></a>
    178 Folder Layout</h1>
    179 <p>The Intel&reg; EPID SDK has two filesystem layouts: the Source Layout and the Install Layout.</p>
    180 <p>The Source Layout is what you find when you download the SDK and extract it to disk. This layout contains all of the files that you need to build the libraries, samples, tests, and data generated by the SDK.</p>
    181 <p>The Install Layout is the layout of files under the <code>_install</code> folder after you build the SDK.</p>
    182 <h2><a class="anchor" id="SdkOverview_Files_SourceLayout"></a>
    183 Source Layout</h2>
    184 <p>The Source Layout is used by the build scripts in the Intel&reg; EPID SDK to find components and files needed to create libraries and executables. </p><pre class="fragment">epid-sdk/
    185 |__ LICENSE.txt             Distribution license
    186 |__ NOTICE.txt              Legal notices
    187 |__ README.md               Readme
    188 |__ CHANGELOG.md            Change log
    189 |__ SConstruct              Parts based build configuration
    190 |__ configure               Make based build configuration
    191 |__ Makefile.in             Make based build configuration
    192 |
    193 |__ doc/
    194 |   |__ html/               HTML format documentation
    195 |   |__ index.html          Entry point for HTML format documentation
    196 |
    197 |__ epid/
    198 |   |__ common/             Source for Common
    199 |   |__ common-testhelper/  Source for unit test helper common helpers
    200 |   |__ member/             Source for Member
    201 |   |__ verifier/           Source for Verifier
    202 |
    203 |__ example/
    204 |   |__ data/               Binary data used for testing and tutorials
    205 |   |__ compressed_data/    Compressed Member Key Binary data used for testing and tutorials
    206 |   |__ signmsg/            Source for message signing example
    207 |   |__ util/               Common utilities for examples
    208 |   |__ verifysig/          Source for signature validation signing example
    209 |
    210 |__ ext/
    211 |   |__ dropt/              Third party library for parsing command-line options
    212 |   |__ gtest/              Third party gtest library
    213 |   |__ ipp/                Intel(R) Performance Primitives library
    214 |
    215 |__ parts-site/             Parts platform config scripts
    216 |
    217 |__ tools/
    218     |__ extractgrps/        Tool to extract groups
    219     |__ extractkeys/        Tool to extract keys
    220     |__ revokegrp/          Tool to create group revocation request
    221     |__ revokekey/          Tool to create a member key revocation request
    222     |__ revokesig/          Tool to create a signature based revocation
    223                             request
    224 </pre><h2><a class="anchor" id="SdkOverview_Files_InstallLayout"></a>
    225 Install Layout</h2>
    226 <p>The Install Layout contains the data developers need to develop and build their applications using the Intel&reg; EPID SDK. Once built, the Install Layout has no dependency on the Source Layout, allowing developers to build the SDK once and reuse the built files in other locations or on other computers. </p><pre class="fragment">_install/
    227 |__ epid-sdk/
    228     |__ include/            C include header files for the SDK
    229     |__ lib/
    230     |   |__ &lt;platform&gt;      Target specific static libraries for the SDK
    231     |
    232     |__ example/             Sample applications and data
    233     |__ compressed_example/  Compressed Member Key Binary data for sample applications
    234     |__ test/                Unit test executables (if unit tests built)
    235     |__ tools/               Tools</pre> </div></div><!-- contents -->
    236 </div><!-- doc-content -->
    237 <!-- HTML footer for doxygen 1.8.10-->
    238 <!-- start footer part -->
    239 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
    240   <ul>
    241     <li class="footer">
    242       &copy; 2016-2017 Intel Corporation
    243     </li>
    244   </ul>
    245 </div>
    246 </body>
    247 </html>
    248