<!-- 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® Enhanced Privacy ID SDK: Managing Groups with iKGF</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&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® Enhanced Privacy ID SDK</a>  <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&dn=gpl-2.0.txt GPL-v2 */ $(document).ready(function(){initNavTree('_usingi_k_g_f.html','');}); /* @license-end */ </script> <div id="doc-content"> <div class="header"> <div class="headertitle"> <div class="title">Managing Groups with iKGF </div> </div> </div><!--header--> <div class="contents"> <div class="toc"><h3>Table of Contents</h3> <ul><li class="level1"><a href="#ContactingiKGF">Contacting iKGF</a></li> <li class="level1"><a href="#RevocationTools">Tools for Creating Revocation Requests</a><ul><li class="level2"><a href="#RevocationTools_revokegrp">Requesting Group Revocation</a></li> <li class="level2"><a href="#RevocationTools_revokekey">Requesting Private Key Revocation</a></li> <li class="level2"><a href="#RevocationTools_revokesig">Requesting Signature Revocation</a></li> </ul> </li> <li class="level1"><a href="#ExtractionTools">Tools for Extracting Keys from iKGF Files</a><ul><li class="level2"><a href="#ExtractionTools_extractgrps">Extracting Group Public Keys</a></li> <li class="level2"><a href="#ExtractionTools_extractkeys">Extracting Member Private Keys</a></li> </ul> </li> </ul> </div> <div class="textblock"><p>The issuer handles group membership and revocation. To provision devices with Intel® EPID keys, you need to process data provided by the issuer. Also, in order to revoke a member, you have to generate a revocation request and send it to the issuer.</p> <p>This section assumes you are using iKGF as your issuer, and describes how to do the following:</p> <ul> <li>Create group revocation request for iKGF</li> <li>Create member private key revocation request for iKGF</li> <li>Create signature revocation request for iKGF</li> <li>Extract group public keys from iKGF files</li> <li>Extract member private keys from iKGF files</li> </ul> <p>After you send revocation requests with the issuer, the issuer updates the revocation lists as needed.</p> <p>The Intel® EPID SDK provides tools designed to make it easier to generate revocation requests and extract keys from iKGF files.</p> <h1><a class="anchor" id="ContactingiKGF"></a> Contacting iKGF</h1> <p>If you want to use the Intel Key Generation Facility (iKGF) as the issuer, contact <a href="#" onclick="location.href='mai'+'lto:'+'inf'+'o@'+'dig'+'it'+'al-'+'cp'+'.co'+'m'; return false;">info@<span style="display: none;">.nosp@m.</span>digi<span style="display: none;">.nosp@m.</span>tal-c<span style="display: none;">.nosp@m.</span>p.co<span style="display: none;">.nosp@m.</span>m</a> to get started.</p> <h1><a class="anchor" id="RevocationTools"></a> Tools for Creating Revocation Requests</h1> <p>The Intel® EPID SDK includes tools to help you request that iKGF add a revoked group, member private key, or signature to a revocation list.</p> <p>These tools are designed to create a revocation request in the specific format required by iKGF. After one of these tools generates a revocation request, the request must be submitted to the issuer in order for the revocation to take effect.</p> <p>To access the tools, go to <code>_install/epid-sdk/tools</code> in the SDK directory.</p> <p>You need to build the SDK before you can use these tools. For more information, refer to <a class="el" href="_building_sdk.html">Building from Source</a>.</p> <p>The following tools are available:</p> <table class="markdownTable"> <tr class="markdownTableHead"> <th class="markdownTableHeadNone">Tool </th><th class="markdownTableHeadNone">Purpose ----------— </th></tr> <tr class="markdownTableBody" class="markdownTableRowOdd"> <td class="markdownTableBodyNone"><code>revokegrp</code> </td><td class="markdownTableBodyNone">Create group revocation request </td></tr> <tr class="markdownTableBody" class="markdownTableRowEven"> <td class="markdownTableBodyNone"><code>revokekey</code> </td><td class="markdownTableBodyNone">Create member private key revocation request </td></tr> <tr class="markdownTableBody" class="markdownTableRowOdd"> <td class="markdownTableBodyNone"><code>revokesig</code> </td><td class="markdownTableBodyNone">Create signature revocation request </td></tr> </table> <p><br /> </p> <h2><a class="anchor" id="RevocationTools_revokegrp"></a> Requesting Group Revocation</h2> <p>The <code>revokegrp</code> tool adds a group to the revocation request file. </p><pre class="fragment">Usage: revokegrp [OPTION]... Revoke Intel(R) EPID group Options: --gpubkey=FILE load group public key from FILE (default: pubkey.bin) --capubkey=FILE load IoT Issuing CA public key from FILE --reason=NUM revocation reason (default: 0) --req=FILE append group revocation request to FILE (default: grprlreq.dat) -h, --help display this help and exit -v, --verbose print status messages to stdout </pre><p><br /> </p> <h2><a class="anchor" id="RevocationTools_revokekey"></a> Requesting Private Key Revocation</h2> <p>The <code>revokekey</code> tool adds a member private key to the revocation request file. </p><pre class="fragment">Usage: revokekey [OPTION] Revoke Intel(R) EPID private key Options: --mprivkey=FILE load private key to revoke from FILE (default: mprivkey.dat) --req=FILE append private key revocation request to FILE (default: privreq.dat) -h, --help display this help and exit -v,--verbose print status messages to stdout The following options are only needed for compressed keys: --gpubkey=FILE load group public key from FILE (default: pubkey.bin) --capubkey=FILE load IoT Issuing CA public key from FILE </pre><p><br /> </p> <h2><a class="anchor" id="RevocationTools_revokesig"></a> Requesting Signature Revocation</h2> <p>The <code>revokesig</code> tool creates a request to add a signature to the revocation request file.</p> <p><code>revokesig</code> only accepts valid signatures for addition to the revocation request. </p><pre class="fragment">Usage: revokesig [OPTION]... Revoke Intel(R) EPID signature Options: --sig=FILE load signature to revoke from FILE (default: sig.dat) --msg=MESSAGE MESSAGE used to generate signature to revoke --msgfile=FILE FILE containing message used to generate signature to revoke --gpubkey=FILE load group public key from FILE (default: pubkey.bin) --capubkey=FILE load IoT Issuing CA public key from FILE --req=FILE append signature revocation request to FILE (default: sigrlreq.dat) -h, --help display this help and exit -v, --verbose print status messages to stdout </pre><h1><a class="anchor" id="ExtractionTools"></a> Tools for Extracting Keys from iKGF Files</h1> <p>The Intel® EPID SDK includes tools to help you extract individual keys from files provided by the Intel Key Generation Facility (iKGF).</p> <p>To access the tools, go to <code>_install/epid-sdk/tools</code> in the SDK directory.</p> <p>You need to build the SDK before you can use these tools. For more information, refer to <a class="el" href="_building_sdk.html">Building from Source</a>.</p> <p>The following tools are available:</p> <table class="markdownTable"> <tr class="markdownTableHead"> <th class="markdownTableHeadNone">Tool </th><th class="markdownTableHeadNone">Purpose ------------— </th></tr> <tr class="markdownTableBody" class="markdownTableRowOdd"> <td class="markdownTableBodyNone"><code>extractgrps</code> </td><td class="markdownTableBodyNone">Extracts group public keys </td></tr> <tr class="markdownTableBody" class="markdownTableRowEven"> <td class="markdownTableBodyNone"><code>extractkeys</code> </td><td class="markdownTableBodyNone">Extracts member private keys </td></tr> </table> <p><br /> </p> <h2><a class="anchor" id="ExtractionTools_extractgrps"></a> Extracting Group Public Keys</h2> <p>The <code>extractgrps</code> tool extracts group public keys from the input file to the current directory. </p><pre class="fragment">Usage: extractgrps [OPTION]... [FILE] [NUM] Extract the first NUM group certs from FILE to current directory Options: -h, --help display this help and exit -v, --verbose print status messages to stdout </pre><p><br /> </p> <h2><a class="anchor" id="ExtractionTools_extractkeys"></a> Extracting Member Private Keys</h2> <p>The <code>extractkeys</code> tool extracts member private keys from the input file to the current directory. </p><pre class="fragment">Usage: extractkeys [OPTION]... [FILE] [NUM] Extract the first NUM private keys from FILE to current directory. Options: -c, --compressed extract compressed keys -h, --help display this help and exit -v, --verbose print status messages to stdout</pre> </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"> © 2016-2017 Intel Corporation </li> </ul> </div> </body> </html>