blob: a8a25f01912872cacd94b8fc5d830fd749ca7094 [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.2. Session &#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.3. Key Store" href="apis-sss_key_store.html" />
<link rel="prev" title="3.3.1. SSS: Introduction" href="introduction.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.2. Session</a><ul>
<li><a class="reference internal" href="#opening-a-session">3.3.2.1. Opening a Session</a><ul>
<li><a class="reference internal" href="#se05x-session">3.3.2.1.1. SE05x Session</a></li>
</ul>
</li>
<li><a class="reference internal" href="#apis">3.3.2.2. APIS</a></li>
</ul>
</li>
</ul>
</ul>
</li>
<li>
<a href="introduction.html" title="Previous Chapter: 3.3.1. SSS: Introduction"><span class="glyphicon glyphicon-chevron-left visible-sm"></span><span class="hidden-sm hidden-tablet">&laquo; 3.3.1. SSS: I...</span>
</a>
</li>
<li>
<a href="apis-sss_key_store.html" title="Next Chapter: 3.3.3. Key Store"><span class="glyphicon glyphicon-chevron-right visible-sm"></span><span class="hidden-sm hidden-tablet">3.3.3. Key Store &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 current"><a class="current reference internal" href="#">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"><a class="reference internal" href="apis-sss_key_object.html">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="session">
<h1><span class="section-number">3.3.2. </span>Session<a class="headerlink" href="#session" title="Permalink to this headline">¶</a></h1>
<img alt="../../_images/session.png" src="../../_images/session.png" />
<p>See <a class="reference internal" href="../../api/function_group__sss__session_1ga8b84f4a638c23f939ccba49e2002cb83.html#_CPPv416sss_session_openP13sss_session_t10sss_type_t8uint32_t21sss_connection_type_tPv" title="sss_session_open"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">sss_session_open()</span></code></a>, <a class="reference internal" href="../../api/function_group__sss__session_1gadbef7665f6aac46e4f9a82426ca4801e.html#_CPPv417sss_session_closeP13sss_session_t" title="sss_session_close"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">sss_session_close()</span></code></a></p>
<div class="section" id="opening-a-session">
<h2><span class="section-number">3.3.2.1. </span>Opening a Session<a class="headerlink" href="#opening-a-session" title="Permalink to this headline">¶</a></h2>
<p>Sessions are tightly coupled with underlying system. For opening a session,
<a class="reference internal" href="../../api/function_group__sss__session_1ga8b84f4a638c23f939ccba49e2002cb83.html#_CPPv416sss_session_openP13sss_session_t10sss_type_t8uint32_t21sss_connection_type_tPv" title="sss_session_open"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">sss_session_open()</span></code></a>, subsystem is passed from
<a class="reference internal" href="../../api/enum_fsl__sss__api_8h_1afc14d89ec1e9bec273201bfab6eb95cc.html#_CPPv410sss_type_t" title="sss_type_t"><code class="xref cpp cpp-type docutils literal notranslate"><span class="pre">sss_type_t</span></code></a>, while the parameter <code class="samp docutils literal notranslate"><span class="pre">connectionData</span></code> plays a
pivotal role where there are subsystem specific parameters to be handled.</p>
<div class="section" id="se05x-session">
<h3><span class="section-number">3.3.2.1.1. </span>SE05x Session<a class="headerlink" href="#se05x-session" title="Permalink to this headline">¶</a></h3>
<p>For example, a dedicated <a class="reference internal" href="../../api/struct_s_e___connect___ctx__t.html#_CPPv416SE_Connect_Ctx_t" title="SE_Connect_Ctx_t"><code class="xref cpp cpp-type docutils literal notranslate"><span class="pre">SE_Connect_Ctx_t</span></code></a> is passed while opening
a session to the SE05x Secure Element.</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cm">/* Opening a password/user id based session */</span>
<span class="n">sss_session_t</span> <span class="n">session</span> <span class="o">=</span> <span class="p">{</span><span class="mi">0</span><span class="p">};</span>
<span class="n">SE_Connect_Ctx_t</span> <span class="n">connectCtx</span> <span class="o">=</span> <span class="p">{</span><span class="mi">0</span><span class="p">};</span>
<span class="n">sss_object_t</span> <span class="n">ex_id</span> <span class="o">=</span> <span class="p">{</span><span class="mi">0</span><span class="p">};</span> <span class="cm">/* Object to store the id value */</span>
<span class="n">sss_status_t</span> <span class="n">status</span><span class="p">;</span>
<span class="cm">/* we need a host session and key store to access</span>
<span class="cm"> * values from host */</span>
<span class="n">sss_session_t</span> <span class="n">host_session</span> <span class="o">=</span> <span class="p">{</span><span class="mi">0</span><span class="p">};</span>
<span class="n">sss_key_store_t</span> <span class="n">host_keystore</span> <span class="o">=</span> <span class="p">{</span><span class="mi">0</span><span class="p">};</span>
<span class="cm">/* Value which we are going to use eventually.</span>
<span class="cm"> * We will not use it directly, but indirectly.</span>
<span class="cm"> * We will store this in in ex_id</span>
<span class="cm"> */</span>
<span class="k">const</span> <span class="kt">uint8_t</span> <span class="n">value_user_id</span><span class="p">[]</span> <span class="o">=</span> <span class="n">EX_SSS_AUTH_SE05X_UserID_VALUE</span><span class="p">;</span>
<span class="cm">/* Open host session and key store */</span>
<span class="n">status</span> <span class="o">=</span> <span class="n">sss_session_open</span><span class="p">(</span><span class="o">&amp;</span><span class="n">host_session</span><span class="p">,</span> <span class="n">kType_SSS_Software</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">kSSS_ConnectionType_Plain</span><span class="p">,</span> <span class="nb">NULL</span><span class="p">);</span>
<span class="n">TEST_ASSERT_EQUAL_HEX</span><span class="p">(</span><span class="n">kStatus_SSS_Success</span><span class="p">,</span> <span class="n">status</span><span class="p">);</span>
<span class="n">status</span> <span class="o">=</span> <span class="n">sss_key_store_context_init</span><span class="p">(</span><span class="o">&amp;</span><span class="n">host_keystore</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">host_session</span><span class="p">);</span>
<span class="n">TEST_ASSERT_EQUAL_HEX</span><span class="p">(</span><span class="n">kStatus_SSS_Success</span><span class="p">,</span> <span class="n">status</span><span class="p">);</span>
<span class="cm">/* Set the auth object in Connect context */</span>
<span class="n">connectCtx</span><span class="p">.</span><span class="n">auth</span><span class="p">.</span><span class="n">ctx</span><span class="p">.</span><span class="n">idobj</span><span class="p">.</span><span class="n">pObj</span> <span class="o">=</span> <span class="o">&amp;</span><span class="n">ex_id</span><span class="p">;</span>
<span class="n">status</span> <span class="o">=</span> <span class="n">sss_key_object_init</span><span class="p">(</span><span class="n">connectCtx</span><span class="p">.</span><span class="n">auth</span><span class="p">.</span><span class="n">ctx</span><span class="p">.</span><span class="n">idobj</span><span class="p">.</span><span class="n">pObj</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">host_keystore</span><span class="p">);</span>
<span class="n">TEST_ASSERT_EQUAL_HEX</span><span class="p">(</span><span class="n">kStatus_SSS_Success</span><span class="p">,</span> <span class="n">status</span><span class="p">);</span>
<span class="cm">/* On the host, allocate object and set value */</span>
<span class="n">status</span> <span class="o">=</span> <span class="n">sss_key_object_allocate_handle</span><span class="p">(</span><span class="n">connectCtx</span><span class="p">.</span><span class="n">auth</span><span class="p">.</span><span class="n">ctx</span><span class="p">.</span><span class="n">idobj</span><span class="p">.</span><span class="n">pObj</span><span class="p">,</span>
<span class="n">__LINE__</span><span class="p">,</span>
<span class="n">kSSS_KeyPart_Default</span><span class="p">,</span>
<span class="n">kSSS_CipherType_UserID</span><span class="p">,</span>
<span class="k">sizeof</span><span class="p">(</span><span class="n">value_user_id</span><span class="p">),</span>
<span class="n">kKeyObject_Mode_Transient</span><span class="p">);</span>
<span class="n">TEST_ASSERT_EQUAL_HEX</span><span class="p">(</span><span class="n">kStatus_SSS_Success</span><span class="p">,</span> <span class="n">status</span><span class="p">);</span>
<span class="n">status</span> <span class="o">=</span> <span class="n">sss_key_store_set_key</span><span class="p">(</span><span class="o">&amp;</span><span class="n">host_keystore</span><span class="p">,</span>
<span class="n">connectCtx</span><span class="p">.</span><span class="n">auth</span><span class="p">.</span><span class="n">ctx</span><span class="p">.</span><span class="n">idobj</span><span class="p">.</span><span class="n">pObj</span><span class="p">,</span>
<span class="n">value_user_id</span><span class="p">,</span>
<span class="k">sizeof</span><span class="p">(</span><span class="n">value_user_id</span><span class="p">),</span>
<span class="mi">8</span> <span class="o">*</span> <span class="k">sizeof</span><span class="p">(</span><span class="n">value_user_id</span><span class="p">),</span>
<span class="nb">NULL</span><span class="p">,</span>
<span class="mi">0</span><span class="p">);</span>
<span class="n">TEST_ASSERT_EQUAL_HEX</span><span class="p">(</span><span class="n">kStatus_SSS_Success</span><span class="p">,</span> <span class="n">status</span><span class="p">);</span>
<span class="cm">/* Now we connect to the SE. In this example, we</span>
<span class="cm"> * are connecting to over JRCP V2 interface */</span>
<span class="n">connectCtx</span><span class="p">.</span><span class="n">portName</span> <span class="o">=</span> <span class="n">gszA71SocketPortDefault</span><span class="p">;</span>
<span class="n">connectCtx</span><span class="p">.</span><span class="n">connType</span> <span class="o">=</span> <span class="n">kType_SE_Conn_Type_JRCP_V2</span><span class="p">;</span>
<span class="n">connectCtx</span><span class="p">.</span><span class="n">auth</span><span class="p">.</span><span class="n">authType</span> <span class="o">=</span> <span class="n">kSSS_AuthType_ID</span><span class="p">;</span>
<span class="k">const</span> <span class="kt">uint32_t</span> <span class="n">authObjectIdForPasswordSession</span> <span class="o">=</span> <span class="n">EX_SSS_AUTH_SE05X_UserID_AUTH_ID</span><span class="p">;</span>
<span class="cm">/* Open the session to the secure element */</span>
<span class="n">status</span> <span class="o">=</span> <span class="n">sss_session_open</span><span class="p">(</span>
<span class="o">&amp;</span><span class="n">session</span><span class="p">,</span> <span class="n">kType_SSS_SecureElement</span><span class="p">,</span> <span class="n">authObjectIdForPasswordSession</span><span class="p">,</span> <span class="n">kSSS_ConnectionType_Password</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">connectCtx</span><span class="p">);</span>
<span class="n">TEST_ASSERT_EQUAL_HEX</span><span class="p">(</span><span class="n">kStatus_SSS_Success</span><span class="p">,</span> <span class="n">status</span><span class="p">);</span>
<span class="cm">/* .... operations with the SE .... */</span>
<span class="cm">/* Close the connection to secure element */</span>
<span class="n">sss_session_close</span><span class="p">(</span><span class="o">&amp;</span><span class="n">session</span><span class="p">);</span>
</pre></div>
</div>
</div>
</div>
<div class="section" id="apis">
<h2><span class="section-number">3.3.2.2. </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_session</code></dt>
<dd><p>Manage session. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Enums</p>
<dl class="enum">
<dt>
<em class="property">enum </em><code class="sig-name descname">sss_session_prop_au8_t</code><br /></dt>
<dd><p>Properties of session that are S32</p>
<p>From 0 to kSSS_SessionProp_Optional_Prop_Start, around 2^24 = 16777215 Properties are possible.</p>
<p>From 0 to kSSS_SessionProp_Optional_Prop_Start, around 2^24 = 16777215 Properties are possible. </p>
<p><em>Values:</em></p>
<dl class="enumerator">
<dt>
<code class="sig-name descname">kSSS_SessionProp_au8_NA</code> = 0<br /></dt>
<dd><p>Invalid </p>
</dd></dl>
<dl class="enumerator">
<dt>
<code class="sig-name descname">kSSS_SessionProp_szName</code><br /></dt>
<dd><p>Name of the product, string </p>
</dd></dl>
<dl class="enumerator">
<dt>
<code class="sig-name descname">kSSS_SessionProp_UID</code><br /></dt>
<dd><p>Unique Identifier </p>
</dd></dl>
<dl class="enumerator">
<dt>
<code class="sig-name descname">kSSS_SessionProp_au8_Optional_Start</code> = 0x00FFFFFFu<br /></dt>
<dd><p>Optional Properties Start </p>
</dd></dl>
<dl class="enumerator">
<dt>
<code class="sig-name descname">kSSS_SessionProp_au8_Proprietary_Start</code> = 0x01FFFFFFu<br /></dt>
<dd><p>Proprietary Properties Start </p>
</dd></dl>
</dd></dl>
<dl class="enum">
<dt>
<em class="property">enum </em><code class="sig-name descname">sss_session_prop_u32_t</code><br /></dt>
<dd><p>Properties of session that are U32</p>
<p>From 0 to kSSS_SessionProp_Optional_Prop_Start, around 2^24 = 16777215 Properties are possible.</p>
<p>From 0 to kSSS_SessionProp_Optional_Prop_Start, around 2^24 = 16777215 Properties are possible. </p>
<p><em>Values:</em></p>
<dl class="enumerator">
<dt>
<code class="sig-name descname">kSSS_SessionProp_u32_NA</code> = 0<br /></dt>
<dd><p>Invalid </p>
</dd></dl>
<dl class="enumerator">
<dt>
<code class="sig-name descname">kSSS_SessionProp_VerMaj</code><br /></dt>
<dd><p>Major version </p>
</dd></dl>
<dl class="enumerator">
<dt>
<code class="sig-name descname">kSSS_SessionProp_VerMin</code><br /></dt>
<dd><p>Minor Version </p>
</dd></dl>
<dl class="enumerator">
<dt>
<code class="sig-name descname">kSSS_SessionProp_VerDev</code><br /></dt>
<dd><p>Development Version </p>
</dd></dl>
<dl class="enumerator">
<dt>
<code class="sig-name descname">kSSS_SessionProp_UIDLen</code><br /></dt>
<dd></dd></dl>
<dl class="enumerator">
<dt>
<code class="sig-name descname">kSSS_SessionProp_u32_Optional_Start</code> = 0x00FFFFFFu<br /></dt>
<dd><p>Optional Properties Start </p>
</dd></dl>
<dl class="enumerator">
<dt>
<code class="sig-name descname">kSSS_KeyStoreProp_FreeMem_Persistant</code><br /></dt>
<dd><p>How much persistent memory is free </p>
</dd></dl>
<dl class="enumerator">
<dt>
<code class="sig-name descname">kSSS_KeyStoreProp_FreeMem_Transient</code><br /></dt>
<dd><p>How much transient memory is free </p>
</dd></dl>
<dl class="enumerator">
<dt>
<code class="sig-name descname">kSSS_SessionProp_u32_Proprietary_Start</code> = 0x01FFFFFFu<br /></dt>
<dd><p>Proprietary Properties Start </p>
</dd></dl>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Functions</p>
<dl class="function">
<dt>
void <code class="sig-name descname">sss_session_close</code><span class="sig-paren">(</span><a class="reference internal" href="../../api/structsss__session__t.html#_CPPv413sss_session_t" title="sss_session_t">sss_session_t</a> *<em>session</em><span class="sig-paren">)</span><br /></dt>
<dd><p>Close session between application and security subsystem. </p>
<p>This function closes a session which has been opened with a security subsystem. All commands within the session must have completed before this function can be called. The implementation must do nothing if the input <code class="docutils literal notranslate"><span class="pre">session</span></code> parameter is NULL.</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">session</span></code>: Session 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_session_create</code><span class="sig-paren">(</span><a class="reference internal" href="../../api/structsss__session__t.html#_CPPv413sss_session_t" title="sss_session_t">sss_session_t</a> *<em>session</em>, <a class="reference internal" href="../../api/enum_fsl__sss__api_8h_1afc14d89ec1e9bec273201bfab6eb95cc.html#_CPPv410sss_type_t" title="sss_type_t">sss_type_t</a> <em>subsystem</em>, uint32_t <em>application_id</em>, <a class="reference internal" href="../../api/enum_fsl__sss__api_8h_1addc6e384efa5871206221d360e4786fb.html#_CPPv421sss_connection_type_t" title="sss_connection_type_t">sss_connection_type_t</a> <em>connection_type</em>, void *<em>connectionData</em><span class="sig-paren">)</span><br /></dt>
<dd><p>Same as <a class="reference internal" href="../../api/function_group__sss__session_1ga8b84f4a638c23f939ccba49e2002cb83.html#group__sss__session_1ga8b84f4a638c23f939ccba49e2002cb83"><span class="std std-ref">sss_session_open</span></a> but to support sub systems that explictily need a create before opening.</p>
<p>For the sake of portabilty across various sub systems, the applicaiton has to call <a class="reference internal" href="../../api/function_group__sss__session_1ga02c01d6fa969bd774f9753859e4c559f.html#group__sss__session_1ga02c01d6fa969bd774f9753859e4c559f"><span class="std std-ref">sss_session_create</span></a> before calling <a class="reference internal" href="../../api/function_group__sss__session_1ga8b84f4a638c23f939ccba49e2002cb83.html#group__sss__session_1ga8b84f4a638c23f939ccba49e2002cb83"><span class="std std-ref">sss_session_open</span></a>.</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">[inout]</span> <span class="pre">session</span></code>: Pointer to session context </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">[in]</span> <span class="pre">subsystem</span></code>: See <a class="reference internal" href="../../api/function_group__sss__session_1ga8b84f4a638c23f939ccba49e2002cb83.html#group__sss__session_1ga8b84f4a638c23f939ccba49e2002cb83"><span class="std std-ref">sss_session_open</span></a> </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">[in]</span> <span class="pre">application_id</span></code>: See <a class="reference internal" href="../../api/function_group__sss__session_1ga8b84f4a638c23f939ccba49e2002cb83.html#group__sss__session_1ga8b84f4a638c23f939ccba49e2002cb83"><span class="std std-ref">sss_session_open</span></a> </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">[in]</span> <span class="pre">connection_type</span></code>: See <a class="reference internal" href="../../api/function_group__sss__session_1ga8b84f4a638c23f939ccba49e2002cb83.html#group__sss__session_1ga8b84f4a638c23f939ccba49e2002cb83"><span class="std std-ref">sss_session_open</span></a> </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">[in]</span> <span class="pre">connectionData</span></code>: See <a class="reference internal" href="../../api/function_group__sss__session_1ga8b84f4a638c23f939ccba49e2002cb83.html#group__sss__session_1ga8b84f4a638c23f939ccba49e2002cb83"><span class="std std-ref">sss_session_open</span></a> </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>
<dl class="function">
<dt>
void <code class="sig-name descname">sss_session_delete</code><span class="sig-paren">(</span><a class="reference internal" href="../../api/structsss__session__t.html#_CPPv413sss_session_t" title="sss_session_t">sss_session_t</a> *<em>session</em><span class="sig-paren">)</span><br /></dt>
<dd><p>Counterpart to <a class="reference internal" href="../../api/function_group__sss__session_1ga02c01d6fa969bd774f9753859e4c559f.html#group__sss__session_1ga02c01d6fa969bd774f9753859e4c559f"><span class="std std-ref">sss_session_create</span></a></p>
<p>Similar to contraint on <a class="reference internal" href="../../api/function_group__sss__session_1ga02c01d6fa969bd774f9753859e4c559f.html#group__sss__session_1ga02c01d6fa969bd774f9753859e4c559f"><span class="std std-ref">sss_session_create</span></a>, application may call <a class="reference internal" href="../../api/function_group__sss__session_1gae5956da05bf8ee916e6f3502fdae17b8.html#group__sss__session_1gae5956da05bf8ee916e6f3502fdae17b8"><span class="std std-ref">sss_session_delete</span></a> to explicitly release all underlying/used session specific resoures of that implementation. </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_session_open</code><span class="sig-paren">(</span><a class="reference internal" href="../../api/structsss__session__t.html#_CPPv413sss_session_t" title="sss_session_t">sss_session_t</a> *<em>session</em>, <a class="reference internal" href="../../api/enum_fsl__sss__api_8h_1afc14d89ec1e9bec273201bfab6eb95cc.html#_CPPv410sss_type_t" title="sss_type_t">sss_type_t</a> <em>subsystem</em>, uint32_t <em>application_id</em>, <a class="reference internal" href="../../api/enum_fsl__sss__api_8h_1addc6e384efa5871206221d360e4786fb.html#_CPPv421sss_connection_type_t" title="sss_connection_type_t">sss_connection_type_t</a> <em>connection_type</em>, void *<em>connectionData</em><span class="sig-paren">)</span><br /></dt>
<dd><p>Open session between application and a security subsystem. </p>
<p>Open virtual session between application (user context) and a security subsystem and function thereof. Pointer to session shall be supplied to all SSS APIs as argument. Low level SSS functions can provide implementation specific behaviour based on the session argument.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>status </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">session</span></code>: Session context. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">[in]</span> <span class="pre">subsystem</span></code>: Indicates which security subsystem is selected to be used. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">[in]</span> <span class="pre">application_id</span></code>: ObjectId/AuthenticationID Connecting to:<ul>
<li><p><code class="docutils literal notranslate"><span class="pre">application_id</span></code> == 0 =&gt; Super use / Plaform user</p></li>
<li><p>Anything else =&gt; Authenticated user </p></li>
</ul>
</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">[in]</span> <span class="pre">connection_type</span></code>: How are we connecting to the system. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">[inout]</span> <span class="pre">connectionData</span></code>: subsystem specific connection parameters.</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_session_prop_get_au8</code><span class="sig-paren">(</span><a class="reference internal" href="../../api/structsss__session__t.html#_CPPv413sss_session_t" title="sss_session_t">sss_session_t</a> *<em>session</em>, uint32_t <em>property</em>, uint8_t *<em>pValue</em>, size_t *<em>pValueLen</em><span class="sig-paren">)</span><br /></dt>
<dd><p>Get an underlying property of the crypto sub system. </p>
<p>This API is used to get values that are numeric in nature.</p>
<p>Property can be either fixed value that is calculated at compile time and returned directly, or it may involve some access to the underlying system.</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">[in]</span> <span class="pre">session</span></code>: Session context </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">[in]</span> <span class="pre">property</span></code>: Value that is part of <a class="reference internal" href="../../api/enum_group__sss__session_1gad1c1596f30755bf2c1779539056cf236.html#group__sss__session_1gad1c1596f30755bf2c1779539056cf236"><span class="std std-ref">sss_session_prop_au8_t</span></a> </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">[out]</span> <span class="pre">pValue</span></code>: Output buffer array </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">[inout]</span> <span class="pre">pValueLen</span></code>: Count of values thare are/must br read </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_session_prop_get_u32</code><span class="sig-paren">(</span><a class="reference internal" href="../../api/structsss__session__t.html#_CPPv413sss_session_t" title="sss_session_t">sss_session_t</a> *<em>session</em>, uint32_t <em>property</em>, uint32_t *<em>pValue</em><span class="sig-paren">)</span><br /></dt>
<dd><p>Get an underlying property of the crypto sub system. </p>
<p>This API is used to get values that are numeric in nature.</p>
<p>Property can be either fixed value that is calculated at compile time and returned directly, or it may involve some access to the underlying system.</p>
<p>For applicable properties see <a class="reference internal" href="../../api/enum_group__sss__session_1ga9b0735c16e3153942db83d123dc84647.html#group__sss__session_1ga9b0735c16e3153942db83d123dc84647"><span class="std std-ref">sss_session_prop_u32_t</span></a></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">[in]</span> <span class="pre">session</span></code>: Session context </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">[in]</span> <span class="pre">property</span></code>: Value that is part of <a class="reference internal" href="../../api/enum_group__sss__session_1ga9b0735c16e3153942db83d123dc84647.html#group__sss__session_1ga9b0735c16e3153942db83d123dc84647"><span class="std std-ref">sss_session_prop_u32_t</span></a> </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">[out]</span> <span class="pre">pValue</span></code>: </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>
</div>
<dl class="class">
<dt>
<em class="property">struct </em><code class="sig-name descname">sss_session_t</code><br /></dt>
<dd><em>#include &lt;fsl_sss_api.h&gt;</em><p>Root session. </p>
<p>This is a <em>singleton</em> for each connection (physical/logical) to individual cryptographic system. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt>
uint8_t <code class="sig-name descname">data</code>[(0 + (1 * sizeof(void *)) + (1 * sizeof(void *)) + (8 * sizeof(void *)) + 16)]<br /></dt>
<dd></dd></dl>
<dl class="member">
<dt>
<em class="property">struct</em> <a class="reference internal" href="../../api/structsss__session__t.html#_CPPv413sss_session_t" title="sss_session_t">sss_session_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>
<a class="reference internal" href="../../api/enum_fsl__sss__api_8h_1afc14d89ec1e9bec273201bfab6eb95cc.html#_CPPv410sss_type_t" title="sss_type_t">sss_type_t</a> <code class="sig-name descname">subsystem</code><br /></dt>
<dd><p>Indicates which security subsystem is selected.</p>
<p>This is set when <a class="reference internal" href="../../api/function_group__sss__session_1ga8b84f4a638c23f939ccba49e2002cb83.html#group__sss__session_1ga8b84f4a638c23f939ccba49e2002cb83"><span class="std std-ref">sss_session_open</span></a> is successful </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>