blob: 550e41e4960fe348af5a4e7222c9e14fdee9fc70 [file] [log] [blame]
<!DOCTYPE html>
<!--
Copyright 2019 NXP
This software is owned or controlled by NXP and may only be used
strictly in accordance with the applicable license terms. By expressly
accepting such terms or by downloading, installing, activating and/or
otherwise using the software, you are agreeing that you have read, and
that you agree to comply with and are bound by, such license terms. If
you do not agree to be bound by the applicable license terms, then you
may not retain, install, activate or otherwise use the software.
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>3.3.4. Key Object &#8212; Plug &amp; Trust MW v03.00.05 documentation</title>
<link rel="stylesheet" href="../../_static/bootstrap-sphinx.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../../_static/graphviz.css" />
<script id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
<script src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script>
<script src="../../_static/doctools.js"></script>
<script src="../../_static/language_data.js"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
<link rel="next" title="3.3.5. Asymmetric" href="apis-sss_asymmetric.html" />
<link rel="prev" title="3.3.3. Key Store" href="apis-sss_key_store.html" />
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1'>
<meta name="apple-mobile-web-app-capable" content="yes">
<script type="text/javascript" src="../../_static/js/jquery-1.11.0.min.js "></script>
<script type="text/javascript" src="../../_static/js/jquery-fix.js "></script>
<script type="text/javascript" src="../../_static/bootstrap-3.3.7/js/bootstrap.min.js "></script>
<script type="text/javascript" src="../../_static/bootstrap-sphinx.js "></script>
</head><body>
<div id="navbar" class="navbar navbar-inverse navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<!-- .btn-navbar is used as the toggle for collapsed navbar content -->
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="../../toc.html"><span><img src="../../_static/NXP_logo_JPG.jpg"></span>
MW</a>
<span class="navbar-text navbar-version pull-left"><b>v03.00.05</b></span>
</div>
<div class="collapse navbar-collapse nav-collapse">
<ul class="nav navbar-nav">
<li class="dropdown globaltoc-container">
<a role="button"
id="dLabelGlobalToc"
data-toggle="dropdown"
data-target="#"
href="../../toc.html">TOC <b class="caret"></b></a>
<ul class="dropdown-menu globaltoc"
role="menu"
aria-labelledby="dLabelGlobalToc"><ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../index.html">1. NXP Plug &amp; Trust Middleware</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../organization-of-documentation.html">1.1. Organization of Documentation</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../folder-structure.html">1.2. Folder Structure</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../sw-prerequisites.html">1.3. List of Platform Prerequisites</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../changes/index.html">2. Changes</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../changes/pending.html">2.1. Pending Refactoring items</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../changes/pending.html#known-limitations">2.2. Known limitations</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../changes/v03_00_05.html">2.3. Release <code class="docutils literal notranslate"><span class="pre">v03.00.05</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../changes/v03_00_04.html">2.4. Release <code class="docutils literal notranslate"><span class="pre">v03.00.04</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../changes/v03_00_03.html">2.5. Release <code class="docutils literal notranslate"><span class="pre">v03.00.03</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../changes/v03_00_02.html">2.6. Release <code class="docutils literal notranslate"><span class="pre">v03.00.02</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../changes/v02_16_01.html">2.7. Release <code class="docutils literal notranslate"><span class="pre">v02.16.01</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../changes/v02_16_00.html">2.8. Release <code class="docutils literal notranslate"><span class="pre">v02.16.00</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../changes/v02_15_00.html">2.9. Release <code class="docutils literal notranslate"><span class="pre">v02.15.00</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../changes/v02_14_00.html">2.10. Release <code class="docutils literal notranslate"><span class="pre">v02.14.00</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../changes/v02_12_00.html">2.11. Release <code class="docutils literal notranslate"><span class="pre">v02.12.05</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../changes/v02_12_00.html#release-v02-12-04">2.12. Release <code class="docutils literal notranslate"><span class="pre">v02.12.04</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../changes/v02_12_00.html#release-v02-12-03">2.13. Release <code class="docutils literal notranslate"><span class="pre">v02.12.03</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../changes/v02_12_00.html#release-v02-12-02">2.14. Release <code class="docutils literal notranslate"><span class="pre">v02.12.02</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../changes/v02_12_00.html#release-v02-12-01">2.15. Release <code class="docutils literal notranslate"><span class="pre">v02.12.01</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../changes/v02_12_00.html#release-v02-12-00">2.16. Release <code class="docutils literal notranslate"><span class="pre">v02.12.00</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../changes/v02_11_03.html">2.17. Release <code class="docutils literal notranslate"><span class="pre">v02.11.03</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../changes/v02_11_01.html">2.18. Internal Release <code class="docutils literal notranslate"><span class="pre">v02.11.01</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../changes/v02_11_00.html">2.19. Release <code class="docutils literal notranslate"><span class="pre">v02.11.00</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../changes/v02_10_00.html">2.20. Release <code class="docutils literal notranslate"><span class="pre">v02.10.00</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../changes/v02_09_00.html">2.21. Release <code class="docutils literal notranslate"><span class="pre">v02.09.00</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../changes/v02_07_00.html">2.22. Release <code class="docutils literal notranslate"><span class="pre">v02.07.00</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../changes/v02_06_00.html">2.23. Release <code class="docutils literal notranslate"><span class="pre">v02.06.00</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../changes/v02_05_00_to_v02_03_00.html">2.24. Release <code class="docutils literal notranslate"><span class="pre">v02.05.00</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../changes/v02_05_00_to_v02_03_00.html#release-v02-04-00">2.25. Release <code class="docutils literal notranslate"><span class="pre">v02.04.00</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../changes/v02_05_00_to_v02_03_00.html#release-02-03-00">2.26. Release <code class="docutils literal notranslate"><span class="pre">02.03.00</span></code></a></li>
</ul>
</li>
<li class="toctree-l1 current"><a class="reference internal" href="../../stack/index.html">3. Plug &amp; Trust MW Stack</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../../stack/features.html">3.1. Features</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../stack/features.html#plug-trust-mw-block-diagram">3.2. Plug &amp; Trust MW : Block Diagram</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="../../sss-apis.html">3.3. SSS APIs</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../stack/se05xfeatures.html">3.4. SSS APIs: SE051 vs SE050</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../stack/param_checks.html">3.5. Parameter Check &amp; Conventions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../stack/i2cm.html">3.6. I2CM / Secure Sensor</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../stack/logging.html">3.7. Logging</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../stack/feature-file.html">3.8. Feature File - <code class="docutils literal notranslate"><span class="pre">fsl_sss_ftr.h</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../stack/platf-scp-from-fs.html">3.9. Using Platform SCP Keys from File System</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../stack/auth/auth-objects.html">3.10. Auth Objects</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../stack/auth/auth-objects-userid.html">3.11. Auth Objects : UserID</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../stack/auth/auth-objects-aeskey.html">3.12. Auth Objects : AESKey</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../stack/auth/auth-objects-eckey.html">3.13. Auth Objects : ECKey</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../stack/key-id-range.html">3.14. Key Id Range and Purpose</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../stack/key-id-range.html#authentication-keys">3.15. Authentication Keys</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../stack/key-id-range.html#trust-provisioned-keyids">3.16. Trust provisioned KeyIDs</a></li>
<li class="toctree-l2"><a class="reference internal" href="../ex/doc/puf-scp03.html">3.17. SCP03 with PUF</a></li>
<li class="toctree-l2"><a class="reference internal" href="sss_heap_management.html">3.18. SSS Heap Management</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../building/index.html">4. Building / Compiling</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../building/windows.html">4.1. Windows Build</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../building/frdm-k64f-sdk.html">4.2. Import MCUXPresso projects from SDK</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../building/frdm-k64f-cmake.html">4.3. Freedom K64F Build (CMake - Advanced)</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../building/imx6.html">4.4. i.MX Linux Build</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../building/rpi3.html">4.5. Raspberry Pi Build</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../building/cmake.html">4.6. CMake</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../scripts/cmake_options.html">4.7. CMake Options</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../demos/index.html">5. Demo and Examples</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../demos/index.html#demo-list">5.1. Demo List</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../demos/index.html#sss-api-examples">5.2. SSS API Examples</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../demos/index.html#cloud-demos">5.3. Cloud Demos</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../demos/index.html#linux-specific-demos">5.4. Linux Specific Demos</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../demos/index.html#opc-ua-example">5.5. OPC-UA Example</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../demos/index.html#arm-psa-example">5.6. ARM PSA Example</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../demos/index.html#se05x-examples">5.7. SE05X Examples</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../demos/index.html#openssl-examples">5.8. OpenSSL Examples</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../demos/index.html#tests-for-user-crypto">5.9. Tests for User Crypto</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../demos/index.html#nxpnfcrdlib-examples">5.10. NXPNFCRDLIB examples</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../demos/index.html#ease-of-use-examples">5.11. Ease-of-Use examples</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../demos/index.html#semslite-examples">5.12. Semslite examples</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../demos/index.html#puf-examples">5.13. PUF examples</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../edgelock2go-agent.html">6. NXP EdgeLock 2GO Agent</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../nxp_iot_agent/doc/introduction.html">6.1. Introduction</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nxp_iot_agent/doc/introduction.html#building-and-running-the-edgelock-2go-agent">6.2. Building and running the EdgeLock 2GO agent</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nxp_iot_agent/doc/introduction.html#datastore-keystore">6.3. Datastore / Keystore</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nxp_iot_agent/doc/introduction.html#connection-to-the-edgelock-2go-cloud-service">6.4. Connection to the EdgeLock 2GO cloud service</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nxp_iot_agent/doc/introduction.html#claim-codes">6.5. Claim Codes</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nxp_iot_agent/doc/edgelock2go_agent_apis.html">6.6. API</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nxp_iot_agent/doc/readme_usage_examples.html">6.7. Usage Examples</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../semslite/doc/index.html">7. SEMS Lite Agent</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../semslite/doc/sems_lite_overview.html">7.1. SEMS Lite Overview (Only for SE051)</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../semslite/doc/sems_lite_package.html">7.2. Update Package</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../semslite/doc/sems_lite_usage.html">7.3. SEMS Lite Agent Usage</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../semslite/doc/sems_lite_mgmt_api.html">7.4. SEMS Lite management APIs</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../semslite/doc/sems_lite_process.html">7.5. SEMS Lite Agent Package Load Process</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../semslite/doc/sems_lite_api.html">7.6. APIs</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../semslite/doc/sems_lite_known_issue.html">7.7. SEMS Lite Known Issue</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../semslite/doc/demo_update.html">7.8. SEMS Lite DEMOs</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../plugins/index.html">8. Plugins / Add-ins</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../plugin/openssl/scripts/readme.html">8.1. Introduction on OpenSSL engine</a></li>
<li class="toctree-l2"><a class="reference internal" href="../plugin/mbedtls/scripts/readme.html">8.2. Introduction on mbedTLS ALT Implementation</a></li>
<li class="toctree-l2"><a class="reference internal" href="../plugin/psa/Readme.html">8.3. Platform Security Architecture</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../plugins/akm.html">8.4. Android Key master</a></li>
<li class="toctree-l2"><a class="reference internal" href="../plugin/open62541/readme.html">8.5. Introduction on Open62541 (OPC UA stack)</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../plugins/wifiEAP/wifiEAP.html">8.6. WiFi EAP Demo with Raspberry Pi3</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../plugins/pkcs11.html">8.7. PKCS#11 Standalone Library</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../cli-tool.html">9. CLI Tool</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../pycli/doc/introduction.html">9.1. Introduction</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../pycli/doc/block-diagram.html">9.2. Block Diagram</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../pycli/doc/pre-steps.html">9.3. Steps needed before running <code class="docutils literal notranslate"><span class="pre">ssscli</span></code> tool</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../pycli/doc/running.html">9.4. Running the <code class="docutils literal notranslate"><span class="pre">ssscli</span></code> tool - Windows</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../pycli/Provisioning/readme.html">9.5. CLI Provisioning</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../pycli/doc/readme_usage_examples.html">9.6. Usage Examples</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../pycli/doc/cli_commands_list.html">9.7. List of <code class="docutils literal notranslate"><span class="pre">ssscli</span></code> commands</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../pycli/doc/cli_data_format.html">9.8. CLI Data formats</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../pycli/doc/cli_object_policy.html">9.9. Object Policies Through ssscli</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../appendix/upload_se05x_using_pycli.html">9.10. Upload keys and certificates to SE05X using ssscli tool</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../a71ch.html">10. A71CH</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../a71ch/a71ch_sss.html">10.1. A71CH and SSS API</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../a71ch/a71ch_miscellaneous.html">10.2. Miscellaneous</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../a71ch/a71ch_legacy_host_api.html">10.3. A71CH Legacy API</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../a71ch/a71ch_legacy_hlse_api.html">10.4. A71CH Legacy HLSE (Generic) API</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../a71ch/a71ch_configure_tool.html">10.5. A71CH Legacy Configure Tool</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../appendix.html">11. Appendix</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../appendix/glossary.html">11.1. Glossary</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../appendix/vcom.html">11.2. APDU Commands over VCOM</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../appendix/vs2019-setup.html">11.3. Visual Studio 2019 Setup</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../appendix/ide_mcux.html">11.4. Setting up MCUXPresso IDE</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../dev-platforms.html">11.5. Development Platforms</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../appendix/se_uid.html">11.6. How to get SE Platform Information and UID</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../appendix/version_info.html">11.7. Version Information</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../demos/Certificate_Chains/Readme.html">11.8. Certificate Chains</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../appendix/rjct_server.html">11.9. JRCP_v1 Server</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../appendix/platfscp.html">11.10. Using own Platform SCP03 Keys</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../appendix/apdu_write_to_buffer.html">11.11. Write APDU to buffer</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../api/api_list.html">11.12. Plug &amp; Trust MW APIs</a></li>
</ul>
</li>
</ul>
</ul>
</li>
<li class="dropdown">
<a role="button"
id="dLabelLocalToc"
data-toggle="dropdown"
data-target="#"
href="#">Page <b class="caret"></b></a>
<ul class="dropdown-menu localtoc"
role="menu"
aria-labelledby="dLabelLocalToc"><ul>
<li><a class="reference internal" href="#">3.3.4. Key Object</a><ul>
<li><a class="reference internal" href="#create-provision">3.3.4.1. Create / Provision</a></li>
<li><a class="reference internal" href="#change-value-of-previously-created-objects">3.3.4.2. Change value of previously created Objects</a></li>
<li><a class="reference internal" href="#use-previously-provisioned-created-keys-objects">3.3.4.3. Use previously provisioned/created Keys/Objects</a></li>
<li><a class="reference internal" href="#apis">3.3.4.4. APIs</a></li>
</ul>
</li>
</ul>
</ul>
</li>
<li>
<a href="apis-sss_key_store.html" title="Previous Chapter: 3.3.3. Key Store"><span class="glyphicon glyphicon-chevron-left visible-sm"></span><span class="hidden-sm hidden-tablet">&laquo; 3.3.3. Key Store</span>
</a>
</li>
<li>
<a href="apis-sss_asymmetric.html" title="Next Chapter: 3.3.5. Asymmetric"><span class="glyphicon glyphicon-chevron-right visible-sm"></span><span class="hidden-sm hidden-tablet">3.3.5. Asymmetric &raquo;</span>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-md-3">
<div id="sidebar" class="bs-sidenav" role="complementary">
<div class="sidebar-header">
<h3>Plug &amp; Trust MW</h3>
</div>
<div class="row">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../index.html">1. NXP Plug &amp; Trust Middleware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../changes/index.html">2. Changes</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../../stack/index.html">3. Plug &amp; Trust MW Stack</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../../stack/features.html">3.1. Features</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../stack/features.html#plug-trust-mw-block-diagram">3.2. Plug &amp; Trust MW : Block Diagram</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="../../sss-apis.html">3.3. SSS APIs</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="introduction.html">3.3.1. SSS: Introduction</a></li>
<li class="toctree-l3"><a class="reference internal" href="apis-sss_session.html">3.3.2. Session</a></li>
<li class="toctree-l3"><a class="reference internal" href="apis-sss_key_store.html">3.3.3. Key Store</a></li>
<li class="toctree-l3 current"><a class="current reference internal" href="#">3.3.4. Key Object</a></li>
<li class="toctree-l3"><a class="reference internal" href="apis-sss_asymmetric.html">3.3.5. Asymmetric</a></li>
<li class="toctree-l3"><a class="reference internal" href="apis-sss_policy.html">3.3.6. Policies</a></li>
<li class="toctree-l3"><a class="reference internal" href="../ex/doc/ex-boot.html">3.3.7. Example Boot-Up</a></li>
<li class="toctree-l3"><a class="reference internal" href="apis-sss_key-format.html">3.3.8. SSS api key format (asymmetric keys)</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../stack/se05xfeatures.html">3.4. SSS APIs: SE051 vs SE050</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../stack/param_checks.html">3.5. Parameter Check &amp; Conventions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../stack/i2cm.html">3.6. I2CM / Secure Sensor</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../stack/logging.html">3.7. Logging</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../stack/feature-file.html">3.8. Feature File - <code class="docutils literal notranslate"><span class="pre">fsl_sss_ftr.h</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../stack/platf-scp-from-fs.html">3.9. Using Platform SCP Keys from File System</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../stack/auth/auth-objects.html">3.10. Auth Objects</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../stack/auth/auth-objects-userid.html">3.11. Auth Objects : UserID</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../stack/auth/auth-objects-aeskey.html">3.12. Auth Objects : AESKey</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../stack/auth/auth-objects-eckey.html">3.13. Auth Objects : ECKey</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../stack/key-id-range.html">3.14. Key Id Range and Purpose</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../stack/key-id-range.html#authentication-keys">3.15. Authentication Keys</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../stack/key-id-range.html#trust-provisioned-keyids">3.16. Trust provisioned KeyIDs</a></li>
<li class="toctree-l2"><a class="reference internal" href="../ex/doc/puf-scp03.html">3.17. SCP03 with PUF</a></li>
<li class="toctree-l2"><a class="reference internal" href="sss_heap_management.html">3.18. SSS Heap Management</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../building/index.html">4. Building / Compiling</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../demos/index.html">5. Demo and Examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../edgelock2go-agent.html">6. NXP EdgeLock 2GO Agent</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../semslite/doc/index.html">7. SEMS Lite Agent</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../plugins/index.html">8. Plugins / Add-ins</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../cli-tool.html">9. CLI Tool</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../a71ch.html">10. A71CH</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../appendix.html">11. Appendix</a></li>
</ul>
</div>
<div class="row">
<form class="form" action="../../search.html" method="get">
<div class="form-group">
<label for="Search">Search:</label>
<input type="text" name="q" class="form-control" placeholder="Search" />
</div>
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
</div>
<div class="body col-md-9 content" role="main">
<div class="section" id="key-object">
<h1><span class="section-number">3.3.4. </span>Key Object<a class="headerlink" href="#key-object" title="Permalink to this headline">¶</a></h1>
<p>Objects / Key Objects are Low level entities of key/certificates in SSS domain.</p>
<p>Below we can see UML Hierarchy of an object:</p>
<img alt="../../_images/container-session-ks-ko.png" src="../../_images/container-session-ks-ko.png" />
<div class="section" id="create-provision">
<h2><span class="section-number">3.3.4.1. </span>Create / Provision<a class="headerlink" href="#create-provision" title="Permalink to this headline">¶</a></h2>
<p>To create a key, the sequence of APIs looks as under. This is generally
done during provisioning stage.</p>
<img alt="../../_images/key_object-create-key.png" src="../../_images/key_object-create-key.png" />
<p>To set (inject) values in a previously allocated key, the sequence of APDUs look as under.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Policies</p>
<p>This section would be updated later to show case creation of keys with
different policies attached to it.</p>
</div>
</div>
<div class="section" id="change-value-of-previously-created-objects">
<h2><span class="section-number">3.3.4.2. </span>Change value of previously created Objects<a class="headerlink" href="#change-value-of-previously-created-objects" title="Permalink to this headline">¶</a></h2>
<p>To create a key, the sequence of APIs looks as under:</p>
<img alt="../../_images/key_object-set-key.png" src="../../_images/key_object-set-key.png" />
</div>
<div class="section" id="use-previously-provisioned-created-keys-objects">
<h2><span class="section-number">3.3.4.3. </span>Use previously provisioned/created Keys/Objects<a class="headerlink" href="#use-previously-provisioned-created-keys-objects" title="Permalink to this headline">¶</a></h2>
<p>To use a key, the API sequence is as under:</p>
<img alt="../../_images/key_object-use-key.png" src="../../_images/key_object-use-key.png" />
</div>
<div class="section" id="apis">
<h2><span class="section-number">3.3.4.4. </span>APIs<a class="headerlink" href="#apis" title="Permalink to this headline">¶</a></h2>
<dl class="group">
<dt>
<em>group</em> <code class="sig-name descname">sss_key_object</code></dt>
<dd><p>Low level iota of key/certificates in <code class="docutils literal notranslate"><span class="pre">SSS</span></code> domain. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Functions</p>
<dl class="function">
<dt>
<a class="reference internal" href="../../api/enum_fsl__sss__api_8h_1a82a023f4d1bf8b22df395d3bffb0ce70.html#_CPPv412sss_status_t" title="sss_status_t">sss_status_t</a> <code class="sig-name descname">sss_key_object_allocate_handle</code><span class="sig-paren">(</span><a class="reference internal" href="../../api/structsss__object__t.html#_CPPv412sss_object_t" title="sss_object_t">sss_object_t</a> *<em>keyObject</em>, uint32_t <em>keyId</em>, <a class="reference internal" href="../../api/enum_fsl__sss__api_8h_1a65bccd97bad72428686bf6aa6ea6f691.html#_CPPv414sss_key_part_t" title="sss_key_part_t">sss_key_part_t</a> <em>keyPart</em>, <a class="reference internal" href="../../api/enum_fsl__sss__api_8h_1ae0d9e4fbd1bf4116b5797c4360818c78.html#_CPPv417sss_cipher_type_t" title="sss_cipher_type_t">sss_cipher_type_t</a> <em>cipherType</em>, size_t <em>keyByteLenMax</em>, uint32_t <em>options</em><span class="sig-paren">)</span><br /></dt>
<dd><p>Allocate / pre-provision memory for new key. </p>
<p>This API allows underlying cryptographic subsystems to perform preconditions of before creating any cryptographic key object.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>Status of object allocation. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">[inout]</span> <span class="pre">keyObject</span></code>: The object If required, update implementation defined values inside the keyObject </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">keyId</span></code>: External Key ID. Later on this may be used by <a class="reference internal" href="../../api/function_group__sss__key__object_1ga8463f94016e74a5a78fed8c22b69c4ed.html#group__sss__key__object_1ga8463f94016e74a5a78fed8c22b69c4ed"><span class="std std-ref">sss_key_object_get_handle</span></a> </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">keyPart</span></code>: See <a class="reference internal" href="../../api/enum_fsl__sss__api_8h_1a65bccd97bad72428686bf6aa6ea6f691.html#fsl__sss__api_8h_1a65bccd97bad72428686bf6aa6ea6f691"><span class="std std-ref">sss_key_part_t</span></a> </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">cipherType</span></code>: See <a class="reference internal" href="../../api/enum_fsl__sss__api_8h_1ae0d9e4fbd1bf4116b5797c4360818c78.html#fsl__sss__api_8h_1ae0d9e4fbd1bf4116b5797c4360818c78"><span class="std std-ref">sss_cipher_type_t</span></a> </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">keyByteLenMax</span></code>: Maximum storage this type of key may need. For systems that have their own internal allocation table this would help </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">options</span></code>: 0 = Persistant Key (Default) or Transient Key. See sss_key_object_mode_t</p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>
<dl class="function">
<dt>
void <code class="sig-name descname">sss_key_object_free</code><span class="sig-paren">(</span><a class="reference internal" href="../../api/structsss__object__t.html#_CPPv412sss_object_t" title="sss_object_t">sss_object_t</a> *<em>keyObject</em><span class="sig-paren">)</span><br /></dt>
<dd><p>Destructor for the key object. The function frees key object context. </p>
<p><dl class="simple">
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">keyObject</span></code>: Pointer to key object context. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>
<dl class="function">
<dt>
<a class="reference internal" href="../../api/enum_fsl__sss__api_8h_1a82a023f4d1bf8b22df395d3bffb0ce70.html#_CPPv412sss_status_t" title="sss_status_t">sss_status_t</a> <code class="sig-name descname">sss_key_object_get_access</code><span class="sig-paren">(</span><a class="reference internal" href="../../api/structsss__object__t.html#_CPPv412sss_object_t" title="sss_object_t">sss_object_t</a> *<em>keyObject</em>, uint32_t *<em>access</em><span class="sig-paren">)</span><br /></dt>
<dd><p>Check what are access restrictions on an object</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p></p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">keyObject</span></code>: Object </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">access</span></code>: What is permitted </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>
<dl class="function">
<dt>
<a class="reference internal" href="../../api/enum_fsl__sss__api_8h_1a82a023f4d1bf8b22df395d3bffb0ce70.html#_CPPv412sss_status_t" title="sss_status_t">sss_status_t</a> <code class="sig-name descname">sss_key_object_get_handle</code><span class="sig-paren">(</span><a class="reference internal" href="../../api/structsss__object__t.html#_CPPv412sss_object_t" title="sss_object_t">sss_object_t</a> *<em>keyObject</em>, uint32_t <em>keyId</em><span class="sig-paren">)</span><br /></dt>
<dd><p>Get handle to an existing allocated/provisioned/created Object. </p>
<p>See <a class="reference internal" href="../../api/function_group__sss__key__object_1ga4e429a389d60abe4b8cac4e244faecbb.html#group__sss__key__object_1ga4e429a389d60abe4b8cac4e244faecbb"><span class="std std-ref">sss_key_object_allocate_handle</span></a>.</p>
<p>After calling this API, Ideally keyObject should become equivlant to as set after the calling of <a class="reference internal" href="../../api/function_group__sss__key__object_1ga4e429a389d60abe4b8cac4e244faecbb.html#group__sss__key__object_1ga4e429a389d60abe4b8cac4e244faecbb"><span class="std std-ref">sss_key_object_allocate_handle</span></a> api.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>The sss status. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">keyObject</span></code>: The key object </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">[in]</span> <span class="pre">keyId</span></code>: The key identifier</p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>
<dl class="function">
<dt>
<a class="reference internal" href="../../api/enum_fsl__sss__api_8h_1a82a023f4d1bf8b22df395d3bffb0ce70.html#_CPPv412sss_status_t" title="sss_status_t">sss_status_t</a> <code class="sig-name descname">sss_key_object_get_purpose</code><span class="sig-paren">(</span><a class="reference internal" href="../../api/structsss__object__t.html#_CPPv412sss_object_t" title="sss_object_t">sss_object_t</a> *<em>keyObject</em>, <a class="reference internal" href="../../api/enum_fsl__sss__api_8h_1a85c5ee04ee7d6fc1ba71d2619a9823a3.html#_CPPv410sss_mode_t" title="sss_mode_t">sss_mode_t</a> *<em>purpose</em><span class="sig-paren">)</span><br /></dt>
<dd><p>Check what is purpose restrictions on an object</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p></p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">keyObject</span></code>: Object to be checked </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">purpose</span></code>: Know what is permitted. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>
<dl class="function">
<dt>
<a class="reference internal" href="../../api/enum_fsl__sss__api_8h_1a82a023f4d1bf8b22df395d3bffb0ce70.html#_CPPv412sss_status_t" title="sss_status_t">sss_status_t</a> <code class="sig-name descname">sss_key_object_get_user</code><span class="sig-paren">(</span><a class="reference internal" href="../../api/structsss__object__t.html#_CPPv412sss_object_t" title="sss_object_t">sss_object_t</a> *<em>keyObject</em>, uint32_t *<em>user</em><span class="sig-paren">)</span><br /></dt>
<dd><p>get attributes </p>
</dd></dl>
<dl class="function">
<dt>
<a class="reference internal" href="../../api/enum_fsl__sss__api_8h_1a82a023f4d1bf8b22df395d3bffb0ce70.html#_CPPv412sss_status_t" title="sss_status_t">sss_status_t</a> <code class="sig-name descname">sss_key_object_init</code><span class="sig-paren">(</span><a class="reference internal" href="../../api/structsss__object__t.html#_CPPv412sss_object_t" title="sss_object_t">sss_object_t</a> *<em>keyObject</em>, <a class="reference internal" href="../../api/structsss__key__store__t.html#_CPPv415sss_key_store_t" title="sss_key_store_t">sss_key_store_t</a> *<em>keyStore</em><span class="sig-paren">)</span><br /></dt>
<dd><p>Constructor for a key object data structure The function initializes keyObject data structure and associates it with a key store in which the plain key and other attributes are stored. </p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>Status of the operation </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">keyObject</span></code>: </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">keyStore</span></code>: </p></li>
</ul>
</dd>
<dt><strong>Return Value</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><a class="reference internal" href="../../api/enum_fsl__sss__api_8h_1a82a023f4d1bf8b22df395d3bffb0ce70.html#fsl__sss__api_8h_1a82a023f4d1bf8b22df395d3bffb0ce70abbddf43382dda6bce2ae5fd96fcfc97c"><span class="std std-ref"><span class="pre">kStatus_SSS_Success</span></span></a></code>: The operation has completed successfully. </p></li>
<li><p><code class="docutils literal notranslate"><a class="reference internal" href="../../api/enum_fsl__sss__api_8h_1a82a023f4d1bf8b22df395d3bffb0ce70.html#fsl__sss__api_8h_1a82a023f4d1bf8b22df395d3bffb0ce70a32741fa0bf21fca96d56375fc8f826e2"><span class="std std-ref"><span class="pre">kStatus_SSS_Fail</span></span></a></code>: The operation has failed. </p></li>
<li><p><code class="docutils literal notranslate"><a class="reference internal" href="../../api/enum_fsl__sss__api_8h_1a82a023f4d1bf8b22df395d3bffb0ce70.html#fsl__sss__api_8h_1a82a023f4d1bf8b22df395d3bffb0ce70aa1c9ed2c7a55af9b3a7c22927973e7d5"><span class="std std-ref"><span class="pre">kStatus_SSS_InvalidArgument</span></span></a></code>: One of the arguments is invalid for the function to execute. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>
<dl class="function">
<dt>
<a class="reference internal" href="../../api/enum_fsl__sss__api_8h_1a82a023f4d1bf8b22df395d3bffb0ce70.html#_CPPv412sss_status_t" title="sss_status_t">sss_status_t</a> <code class="sig-name descname">sss_key_object_set_access</code><span class="sig-paren">(</span><a class="reference internal" href="../../api/structsss__object__t.html#_CPPv412sss_object_t" title="sss_object_t">sss_object_t</a> *<em>keyObject</em>, uint32_t <em>access</em>, uint32_t <em>options</em><span class="sig-paren">)</span><br /></dt>
<dd><p>Assign access permissions to a key object. </p>
<p><dl class="simple">
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">keyObject</span></code>: the object where permission restrictions are applied </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">access</span></code>: Logical OR of read, write, delete, use, change attributes defined by enum _sss_access_permission. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">options</span></code>: Transient or persistent update. Allows for transient update of persistent attributes. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>
<dl class="function">
<dt>
<a class="reference internal" href="../../api/enum_fsl__sss__api_8h_1a82a023f4d1bf8b22df395d3bffb0ce70.html#_CPPv412sss_status_t" title="sss_status_t">sss_status_t</a> <code class="sig-name descname">sss_key_object_set_eccgfp_group</code><span class="sig-paren">(</span><a class="reference internal" href="../../api/structsss__object__t.html#_CPPv412sss_object_t" title="sss_object_t">sss_object_t</a> *<em>keyObject</em>, <a class="reference internal" href="../../api/structsss__eccgfp__group__t.html#_CPPv418sss_eccgfp_group_t" title="sss_eccgfp_group_t">sss_eccgfp_group_t</a> *<em>group</em><span class="sig-paren">)</span><br /></dt>
<dd><p>Set elliptic curve domain parameters over Fp for a key object. </p>
<p>When the key object is a reference to one of ECC Private, ECC Public or ECC Pair key types, this function shall be used to specify the exact domain parameters prior to using the key object for ECDSA or ECDH algorithms.</p>
<p><dl class="simple">
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">keyObject</span></code>: The destination key object </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">group</span></code>: Pointer to elliptic curve domain parameters over Fp (sextuple p,a,b,G,n,h) </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>
<dl class="function">
<dt>
<a class="reference internal" href="../../api/enum_fsl__sss__api_8h_1a82a023f4d1bf8b22df395d3bffb0ce70.html#_CPPv412sss_status_t" title="sss_status_t">sss_status_t</a> <code class="sig-name descname">sss_key_object_set_purpose</code><span class="sig-paren">(</span><a class="reference internal" href="../../api/structsss__object__t.html#_CPPv412sss_object_t" title="sss_object_t">sss_object_t</a> *<em>keyObject</em>, <a class="reference internal" href="../../api/enum_fsl__sss__api_8h_1a85c5ee04ee7d6fc1ba71d2619a9823a3.html#_CPPv410sss_mode_t" title="sss_mode_t">sss_mode_t</a> <em>purpose</em>, uint32_t <em>options</em><span class="sig-paren">)</span><br /></dt>
<dd><p>Assign purpose to a key object. </p>
<p><dl class="simple">
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">keyObject</span></code>: the object where permission restrictions are applied </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">purpose</span></code>: Usage of the key. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">options</span></code>: Transient or persistent update. Allows for transient update of persistent attributes. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>
<dl class="function">
<dt>
<a class="reference internal" href="../../api/enum_fsl__sss__api_8h_1a82a023f4d1bf8b22df395d3bffb0ce70.html#_CPPv412sss_status_t" title="sss_status_t">sss_status_t</a> <code class="sig-name descname">sss_key_object_set_user</code><span class="sig-paren">(</span><a class="reference internal" href="../../api/structsss__object__t.html#_CPPv412sss_object_t" title="sss_object_t">sss_object_t</a> *<em>keyObject</em>, uint32_t <em>user</em>, uint32_t <em>options</em><span class="sig-paren">)</span><br /></dt>
<dd><p>Assign user to a key object. </p>
<p><dl class="simple">
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">keyObject</span></code>: the object where permission restrictions are applied</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">user</span></code>: Assign User id for a key object. The user is kept in the key store along with the key data and other properties. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">options</span></code>: Transient or persistent update. Allows for transient update of persistent attributes. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>
</div>
<dl class="class">
<dt>
<em class="property">struct </em><code class="sig-name descname">sss_object_t</code><br /></dt>
<dd><em>#include &lt;fsl_sss_api.h&gt;</em><p>An object (secure / non-secure) within a Key Store. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt>
uint32_t <code class="sig-name descname">cipherType</code><br /></dt>
<dd><p>cipherType type from <a class="reference internal" href="../../api/enum_fsl__sss__api_8h_1ae0d9e4fbd1bf4116b5797c4360818c78.html#fsl__sss__api_8h_1ae0d9e4fbd1bf4116b5797c4360818c78"><span class="std std-ref">sss_cipher_type_t</span></a> </p>
</dd></dl>
<dl class="member">
<dt>
uint8_t <code class="sig-name descname">data</code>[(0 + (1 * sizeof(void *)) + (2 * sizeof(int)) + (4 * sizeof(void *)) + 16)]<br /></dt>
<dd></dd></dl>
<dl class="member">
<dt>
<em class="property">struct</em> <a class="reference internal" href="../../api/structsss__object__t.html#_CPPv412sss_object_t" title="sss_object_t">sss_object_t</a>::<strong>[anonymous]</strong> <code class="sig-name descname">extension</code><br /></dt>
<dd><p>Reserved memory for implementation specific extension </p>
</dd></dl>
<dl class="member">
<dt>
uint32_t <code class="sig-name descname">keyId</code><br /></dt>
<dd><p>Application specific key identifier. The keyId is kept in the key store along with the key data and other properties. </p>
</dd></dl>
<dl class="member">
<dt>
<a class="reference internal" href="../../api/structsss__key__store__t.html#_CPPv415sss_key_store_t" title="sss_key_store_t">sss_key_store_t</a> *<code class="sig-name descname">keyStore</code><br /></dt>
<dd><p>key store holding the data and other properties </p>
</dd></dl>
<dl class="member">
<dt>
uint32_t <code class="sig-name descname">objectType</code><br /></dt>
<dd><p>The type/part of object is referneced from <a class="reference internal" href="../../api/enum_fsl__sss__api_8h_1a65bccd97bad72428686bf6aa6ea6f691.html#fsl__sss__api_8h_1a65bccd97bad72428686bf6aa6ea6f691"><span class="std std-ref">sss_key_part_t</span></a> </p>
</dd></dl>
</div>
</dd></dl>
</dd></dl>
</div>
</div>
</div>
</div>
</div>
<footer class="footer">
<div class="container">
<p class="pull-right">
<a href="#">Back to top</a>
</p>
<p>
&copy; Copyright 2018-2020, NXP.<br/>
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.4.1.<br/>
</p>
</div>
</footer>
</body>
</html>