Skip to content
Permalink
85f85e1f33
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
308 lines (282 sloc) 19.4 KB
<!-- HTML header for doxygen 1.8.13-->
<!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.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>PSoC64 Secure Boot Utilities Middleware Library 1.0: Key policies</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">
$(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen_style.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="projectlogo"><a href="http://www.cypress.com/"><img alt="Logo" src="IFXCYP_one-line.png"/></a></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">PSoC64 Secure Boot Utilities Middleware Library 1.0</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</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">
$(document).ready(function(){initNavTree('group__policy.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Key policies<div class="ingroups"><a class="el" href="group__psacrypto.html">PSA crypto</a></div></div> </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">General Description</h2>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gac8e1323fd6a0c70bdc9b1f99793dda58"><td class="memItemLeft" align="right" valign="top"><a id="gac8e1323fd6a0c70bdc9b1f99793dda58"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__policy.html#gac8e1323fd6a0c70bdc9b1f99793dda58">CY_P64_PSA_KEY_POLICY_INIT</a>&#160;&#160;&#160;{0, 0, 0}</td></tr>
<tr class="memdesc:gac8e1323fd6a0c70bdc9b1f99793dda58"><td class="mdescLeft">&#160;</td><td class="mdescRight">The initial value of the key policy. <br /></td></tr>
<tr class="separator:gac8e1323fd6a0c70bdc9b1f99793dda58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf6b94183c10a2347db4be1dd243e18be"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__policy.html#gaf6b94183c10a2347db4be1dd243e18be">CY_P64_PSA_KEY_USAGE_EXPORT</a>&#160;&#160;&#160;((<a class="el" href="group__policy.html#ga419a286b283b537123912fb1dc143418">cy_p64_psa_key_usage_t</a>)0x00000001)</td></tr>
<tr class="memdesc:gaf6b94183c10a2347db4be1dd243e18be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether the key may be exported. <a href="#gaf6b94183c10a2347db4be1dd243e18be">More...</a><br /></td></tr>
<tr class="separator:gaf6b94183c10a2347db4be1dd243e18be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2e1c5d39405872d9a089ac2cad4493d1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__policy.html#ga2e1c5d39405872d9a089ac2cad4493d1">CY_P64_PSA_KEY_USAGE_COPY</a>&#160;&#160;&#160;((<a class="el" href="group__policy.html#ga419a286b283b537123912fb1dc143418">cy_p64_psa_key_usage_t</a>)0x00000002)</td></tr>
<tr class="memdesc:ga2e1c5d39405872d9a089ac2cad4493d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether the key may be copied. <a href="#ga2e1c5d39405872d9a089ac2cad4493d1">More...</a><br /></td></tr>
<tr class="separator:ga2e1c5d39405872d9a089ac2cad4493d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga102b7ac8e6f7075aa43929996f6fa56c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__policy.html#ga102b7ac8e6f7075aa43929996f6fa56c">CY_P64_PSA_KEY_USAGE_ENCRYPT</a>&#160;&#160;&#160;((<a class="el" href="group__policy.html#ga419a286b283b537123912fb1dc143418">cy_p64_psa_key_usage_t</a>)0x00000100)</td></tr>
<tr class="memdesc:ga102b7ac8e6f7075aa43929996f6fa56c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether the key may be used to encrypt a message. <a href="#ga102b7ac8e6f7075aa43929996f6fa56c">More...</a><br /></td></tr>
<tr class="separator:ga102b7ac8e6f7075aa43929996f6fa56c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8dfd1dbd364571638f3bc92c148710cb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__policy.html#ga8dfd1dbd364571638f3bc92c148710cb">CY_P64_PSA_KEY_USAGE_DECRYPT</a>&#160;&#160;&#160;((<a class="el" href="group__policy.html#ga419a286b283b537123912fb1dc143418">cy_p64_psa_key_usage_t</a>)0x00000200)</td></tr>
<tr class="memdesc:ga8dfd1dbd364571638f3bc92c148710cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether the key may be used to decrypt a message. <a href="#ga8dfd1dbd364571638f3bc92c148710cb">More...</a><br /></td></tr>
<tr class="separator:ga8dfd1dbd364571638f3bc92c148710cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga96657027124ab40bd4d8bbfb529d3b8d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__policy.html#ga96657027124ab40bd4d8bbfb529d3b8d">CY_P64_PSA_KEY_USAGE_SIGN_HASH</a>&#160;&#160;&#160;((<a class="el" href="group__policy.html#ga419a286b283b537123912fb1dc143418">cy_p64_psa_key_usage_t</a>)0x00000400)</td></tr>
<tr class="memdesc:ga96657027124ab40bd4d8bbfb529d3b8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether the key may be used to sign a message. <a href="#ga96657027124ab40bd4d8bbfb529d3b8d">More...</a><br /></td></tr>
<tr class="separator:ga96657027124ab40bd4d8bbfb529d3b8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaadd0a3bc473e14ed90874e6301a804b5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__policy.html#gaadd0a3bc473e14ed90874e6301a804b5">CY_P64_PSA_KEY_USAGE_VERIFY_HASH</a>&#160;&#160;&#160;((<a class="el" href="group__policy.html#ga419a286b283b537123912fb1dc143418">cy_p64_psa_key_usage_t</a>)0x00000800)</td></tr>
<tr class="memdesc:gaadd0a3bc473e14ed90874e6301a804b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether the key may be used to verify a message signature. <a href="#gaadd0a3bc473e14ed90874e6301a804b5">More...</a><br /></td></tr>
<tr class="separator:gaadd0a3bc473e14ed90874e6301a804b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacbda32b7393a9b4e800117522dbfcea1"><td class="memItemLeft" align="right" valign="top"><a id="gacbda32b7393a9b4e800117522dbfcea1"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__policy.html#gacbda32b7393a9b4e800117522dbfcea1">CY_P64_PSA_KEY_USAGE_DERIVE</a>&#160;&#160;&#160;((<a class="el" href="group__policy.html#ga419a286b283b537123912fb1dc143418">cy_p64_psa_key_usage_t</a>)0x00001000)</td></tr>
<tr class="memdesc:gacbda32b7393a9b4e800117522dbfcea1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether the key may be used to derive other keys. <br /></td></tr>
<tr class="separator:gacbda32b7393a9b4e800117522dbfcea1"><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:ga419a286b283b537123912fb1dc143418"><td class="memItemLeft" align="right" valign="top">typedef uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__policy.html#ga419a286b283b537123912fb1dc143418">cy_p64_psa_key_usage_t</a></td></tr>
<tr class="memdesc:ga419a286b283b537123912fb1dc143418"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encoding of permitted usage on a key. <a href="#ga419a286b283b537123912fb1dc143418">More...</a><br /></td></tr>
<tr class="separator:ga419a286b283b537123912fb1dc143418"><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:gab112054b2898995ac3b55c6efcb157de"><td class="memItemLeft" align="right" valign="top">static struct cy_p64_psa_key_policy_s&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__policy.html#gab112054b2898995ac3b55c6efcb157de">cy_p64_psa_key_policy_init</a> (void)</td></tr>
<tr class="memdesc:gab112054b2898995ac3b55c6efcb157de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets key policy strcuture with initial value. <a href="#gab112054b2898995ac3b55c6efcb157de">More...</a><br /></td></tr>
<tr class="separator:gab112054b2898995ac3b55c6efcb157de"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="gaf6b94183c10a2347db4be1dd243e18be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf6b94183c10a2347db4be1dd243e18be">&#9670;&nbsp;</a></span>CY_P64_PSA_KEY_USAGE_EXPORT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CY_P64_PSA_KEY_USAGE_EXPORT&#160;&#160;&#160;((<a class="el" href="group__policy.html#ga419a286b283b537123912fb1dc143418">cy_p64_psa_key_usage_t</a>)0x00000001)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Whether the key may be exported. </p>
<p>A public key or the public part of a key pair may always be exported regardless of the value of this permission flag.</p>
<p>If a key does not have export permission, implementations shall not allow the key to be exported in plain form from the cryptoprocessor, whether through psa_export_key() or through a proprietary interface. The key may however be exportable in a wrapped form, i.e. in a form where it is encrypted by another key. </p>
</div>
</div>
<a id="ga2e1c5d39405872d9a089ac2cad4493d1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2e1c5d39405872d9a089ac2cad4493d1">&#9670;&nbsp;</a></span>CY_P64_PSA_KEY_USAGE_COPY</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CY_P64_PSA_KEY_USAGE_COPY&#160;&#160;&#160;((<a class="el" href="group__policy.html#ga419a286b283b537123912fb1dc143418">cy_p64_psa_key_usage_t</a>)0x00000002)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Whether the key may be copied. </p>
<p>This flag allows the use of psa_copy_key() to make a copy of the key with the same policy or a more restrictive policy.</p>
<p>For lifetimes for which the key is located in a secure element which enforce the non-exportability of keys, copying a key outside the secure element also requires the usage flag <a class="el" href="group__policy.html#gaf6b94183c10a2347db4be1dd243e18be" title="Whether the key may be exported. ">CY_P64_PSA_KEY_USAGE_EXPORT</a>. Copying the key inside the secure element is permitted with just <a class="el" href="group__policy.html#ga2e1c5d39405872d9a089ac2cad4493d1" title="Whether the key may be copied. ">CY_P64_PSA_KEY_USAGE_COPY</a> if the secure element supports it. For keys with the lifetime <a class="el" href="group__key__lifetimes.html#ga608d2a0265b5e8ef8dc22b05f17fbc7b" title="The default lifetime for volatile keys. ">CY_P64_PSA_KEY_LIFETIME_VOLATILE</a> or <a class="el" href="group__key__lifetimes.html#ga8cdc729cdce774abca2dede12e0a161a" title="The default lifetime for persistent keys. ">CY_P64_PSA_KEY_LIFETIME_PERSISTENT</a>, the usage flag <a class="el" href="group__policy.html#ga2e1c5d39405872d9a089ac2cad4493d1" title="Whether the key may be copied. ">CY_P64_PSA_KEY_USAGE_COPY</a> is sufficient to permit the copy. </p>
</div>
</div>
<a id="ga102b7ac8e6f7075aa43929996f6fa56c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga102b7ac8e6f7075aa43929996f6fa56c">&#9670;&nbsp;</a></span>CY_P64_PSA_KEY_USAGE_ENCRYPT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CY_P64_PSA_KEY_USAGE_ENCRYPT&#160;&#160;&#160;((<a class="el" href="group__policy.html#ga419a286b283b537123912fb1dc143418">cy_p64_psa_key_usage_t</a>)0x00000100)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Whether the key may be used to encrypt a message. </p>
<p>This flag allows the key to be used for a symmetric encryption operation, for an AEAD encryption-and-authentication operation, or for an asymmetric encryption operation, if otherwise permitted by the key's type and policy.</p>
<p>For a key pair, this concerns the public key. </p>
</div>
</div>
<a id="ga8dfd1dbd364571638f3bc92c148710cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8dfd1dbd364571638f3bc92c148710cb">&#9670;&nbsp;</a></span>CY_P64_PSA_KEY_USAGE_DECRYPT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CY_P64_PSA_KEY_USAGE_DECRYPT&#160;&#160;&#160;((<a class="el" href="group__policy.html#ga419a286b283b537123912fb1dc143418">cy_p64_psa_key_usage_t</a>)0x00000200)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Whether the key may be used to decrypt a message. </p>
<p>This flag allows the key to be used for a symmetric decryption operation, for an AEAD decryption-and-verification operation, or for an asymmetric decryption operation, if otherwise permitted by the key's type and policy.</p>
<p>For a key pair, this concerns the private key. </p>
</div>
</div>
<a id="ga96657027124ab40bd4d8bbfb529d3b8d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga96657027124ab40bd4d8bbfb529d3b8d">&#9670;&nbsp;</a></span>CY_P64_PSA_KEY_USAGE_SIGN_HASH</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CY_P64_PSA_KEY_USAGE_SIGN_HASH&#160;&#160;&#160;((<a class="el" href="group__policy.html#ga419a286b283b537123912fb1dc143418">cy_p64_psa_key_usage_t</a>)0x00000400)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Whether the key may be used to sign a message. </p>
<p>This flag allows the key to be used for a MAC calculation operation or for an asymmetric signature operation, if otherwise permitted by the key's type and policy.</p>
<p>For a key pair, this concerns the private key. </p>
</div>
</div>
<a id="gaadd0a3bc473e14ed90874e6301a804b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaadd0a3bc473e14ed90874e6301a804b5">&#9670;&nbsp;</a></span>CY_P64_PSA_KEY_USAGE_VERIFY_HASH</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CY_P64_PSA_KEY_USAGE_VERIFY_HASH&#160;&#160;&#160;((<a class="el" href="group__policy.html#ga419a286b283b537123912fb1dc143418">cy_p64_psa_key_usage_t</a>)0x00000800)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Whether the key may be used to verify a message signature. </p>
<p>This flag allows the key to be used for a MAC verification operation or for an asymmetric signature verification operation, if otherwise permitted by by the key's type and policy.</p>
<p>For a key pair, this concerns the public key. </p>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="ga419a286b283b537123912fb1dc143418"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga419a286b283b537123912fb1dc143418">&#9670;&nbsp;</a></span>cy_p64_psa_key_usage_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef uint32_t <a class="el" href="group__policy.html#ga419a286b283b537123912fb1dc143418">cy_p64_psa_key_usage_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Encoding of permitted usage on a key. </p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="gab112054b2898995ac3b55c6efcb157de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab112054b2898995ac3b55c6efcb157de">&#9670;&nbsp;</a></span>cy_p64_psa_key_policy_init()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static struct cy_p64_psa_key_policy_s cy_p64_psa_key_policy_init </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets key policy strcuture with initial value. </p>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">/p</td><td>cy_p64_psa_key_policy_s structure </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part
<div id="nav-path" class="navpath">
<ul>
<li class="footer">
Generated for <b>PSoC64 Secure Boot Utilities Middleware Library 1.0</b> by <b>Cypress Semiconductor Corporation</b>.
All rights reserved.
</li>
</ul>
</div>
-->
</body>
</html>