blob: f3fc19ffad4dfdef5217ff7bd4b8b18fc989231c [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.8. Feature File - fsl_sss_ftr.h &#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.9. Using Platform SCP Keys from File System" href="platf-scp-from-fs.html" />
<link rel="prev" title="3.7. Logging" href="logging.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="index.html">3. Plug &amp; Trust MW Stack</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="features.html">3.1. Features</a></li>
<li class="toctree-l2"><a class="reference internal" href="features.html#plug-trust-mw-block-diagram">3.2. Plug &amp; Trust MW : Block Diagram</a></li>
<li class="toctree-l2"><a class="reference internal" href="../sss-apis.html">3.3. SSS APIs</a></li>
<li class="toctree-l2"><a class="reference internal" href="se05xfeatures.html">3.4. SSS APIs: SE051 vs SE050</a></li>
<li class="toctree-l2"><a class="reference internal" href="param_checks.html">3.5. Parameter Check &amp; Conventions</a></li>
<li class="toctree-l2"><a class="reference internal" href="i2cm.html">3.6. I2CM / Secure Sensor</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging.html">3.7. Logging</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">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="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="auth/auth-objects.html">3.10. Auth Objects</a></li>
<li class="toctree-l2"><a class="reference internal" href="auth/auth-objects-userid.html">3.11. Auth Objects : UserID</a></li>
<li class="toctree-l2"><a class="reference internal" href="auth/auth-objects-aeskey.html">3.12. Auth Objects : AESKey</a></li>
<li class="toctree-l2"><a class="reference internal" href="auth/auth-objects-eckey.html">3.13. Auth Objects : ECKey</a></li>
<li class="toctree-l2"><a class="reference internal" href="key-id-range.html">3.14. Key Id Range and Purpose</a></li>
<li class="toctree-l2"><a class="reference internal" href="key-id-range.html#authentication-keys">3.15. Authentication Keys</a></li>
<li class="toctree-l2"><a class="reference internal" href="key-id-range.html#trust-provisioned-keyids">3.16. Trust provisioned KeyIDs</a></li>
<li class="toctree-l2"><a class="reference internal" href="../sss/ex/doc/puf-scp03.html">3.17. SCP03 with PUF</a></li>
<li class="toctree-l2"><a class="reference internal" href="../sss/doc/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="../sss/plugin/openssl/scripts/readme.html">8.1. Introduction on OpenSSL engine</a></li>
<li class="toctree-l2"><a class="reference internal" href="../sss/plugin/mbedtls/scripts/readme.html">8.2. Introduction on mbedTLS ALT Implementation</a></li>
<li class="toctree-l2"><a class="reference internal" href="../sss/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="../sss/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.8. Feature File - <code class="docutils literal notranslate"><span class="pre">fsl_sss_ftr.h</span></code></a><ul>
<li><a class="reference internal" href="#when-using-cmake">3.8.1. When Using CMake</a></li>
<li><a class="reference internal" href="#when-using-mcuxpresso-ide">3.8.2. When Using MCUXpresso IDE</a></li>
<li><a class="reference internal" href="#fsl-sss-ftr-default-h">3.8.3. <code class="docutils literal notranslate"><span class="pre">fsl_sss_ftr_default.h</span></code></a></li>
<li><a class="reference internal" href="#using-feature-file-to-reduce-code-size">3.8.4. Using feature file to reduce code size</a><ul>
<li><a class="reference internal" href="#sssftr-sw-testcounterpart">3.8.4.1. <code class="docutils literal notranslate"><span class="pre">SSSFTR_SW_TESTCOUNTERPART</span></code></a></li>
<li><a class="reference internal" href="#sssftr-sw-ecc">3.8.4.2. <code class="docutils literal notranslate"><span class="pre">SSSFTR_SW_ECC</span></code></a></li>
<li><a class="reference internal" href="#sssftr-sw-rsa">3.8.4.3. <code class="docutils literal notranslate"><span class="pre">SSSFTR_SW_RSA</span></code></a></li>
<li><a class="reference internal" href="#symmetric-cryptography-on-host">3.8.4.4. Symmetric cryptography on Host</a></li>
<li><a class="reference internal" href="#sssftr-se05x-autheckey">3.8.4.5. <code class="docutils literal notranslate"><span class="pre">SSSFTR_SE05X_AuthECKey</span></code></a></li>
<li><a class="reference internal" href="#sssftr-se05x-authsession">3.8.4.6. <code class="docutils literal notranslate"><span class="pre">SSSFTR_SE05X_AuthSession</span></code></a></li>
<li><a class="reference internal" href="#sssftr-se05x-aes">3.8.4.7. <code class="docutils literal notranslate"><span class="pre">SSSFTR_SE05X_AES</span></code></a></li>
<li><a class="reference internal" href="#sssftr-se05x-create-delete-cryptoobj">3.8.4.8. <code class="docutils literal notranslate"><span class="pre">SSSFTR_SE05X_CREATE_DELETE_CRYPTOOBJ</span></code></a></li>
<li><a class="reference internal" href="#sssftr-se05x-ecc">3.8.4.9. <code class="docutils literal notranslate"><span class="pre">SSSFTR_SE05X_ECC</span></code></a></li>
<li><a class="reference internal" href="#sssftr-se05x-key-get">3.8.4.10. <code class="docutils literal notranslate"><span class="pre">SSSFTR_SE05X_KEY_GET</span></code></a></li>
<li><a class="reference internal" href="#sssftr-se05x-key-set">3.8.4.11. <code class="docutils literal notranslate"><span class="pre">SSSFTR_SE05X_KEY_SET</span></code></a></li>
<li><a class="reference internal" href="#sssftr-se05x-rsa">3.8.4.12. <code class="docutils literal notranslate"><span class="pre">SSSFTR_SE05X_RSA</span></code></a></li>
</ul>
</li>
</ul>
</li>
</ul>
</ul>
</li>
<li>
<a href="logging.html" title="Previous Chapter: 3.7. Logging"><span class="glyphicon glyphicon-chevron-left visible-sm"></span><span class="hidden-sm hidden-tablet">&laquo; 3.7. Logging</span>
</a>
</li>
<li>
<a href="platf-scp-from-fs.html" title="Next Chapter: 3.9. Using Platform SCP Keys from File System"><span class="glyphicon glyphicon-chevron-right visible-sm"></span><span class="hidden-sm hidden-tablet">3.9. Using Pl... &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="index.html">3. Plug &amp; Trust MW Stack</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="features.html">3.1. Features</a></li>
<li class="toctree-l2"><a class="reference internal" href="features.html#plug-trust-mw-block-diagram">3.2. Plug &amp; Trust MW : Block Diagram</a></li>
<li class="toctree-l2"><a class="reference internal" href="../sss-apis.html">3.3. SSS APIs</a></li>
<li class="toctree-l2"><a class="reference internal" href="se05xfeatures.html">3.4. SSS APIs: SE051 vs SE050</a></li>
<li class="toctree-l2"><a class="reference internal" href="param_checks.html">3.5. Parameter Check &amp; Conventions</a></li>
<li class="toctree-l2"><a class="reference internal" href="i2cm.html">3.6. I2CM / Secure Sensor</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging.html">3.7. Logging</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">3.8. Feature File - <code class="docutils literal notranslate"><span class="pre">fsl_sss_ftr.h</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="#when-using-cmake">3.8.1. When Using CMake</a></li>
<li class="toctree-l3"><a class="reference internal" href="#when-using-mcuxpresso-ide">3.8.2. When Using MCUXpresso IDE</a></li>
<li class="toctree-l3"><a class="reference internal" href="#fsl-sss-ftr-default-h">3.8.3. <code class="docutils literal notranslate"><span class="pre">fsl_sss_ftr_default.h</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#using-feature-file-to-reduce-code-size">3.8.4. Using feature file to reduce code size</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="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="auth/auth-objects.html">3.10. Auth Objects</a></li>
<li class="toctree-l2"><a class="reference internal" href="auth/auth-objects-userid.html">3.11. Auth Objects : UserID</a></li>
<li class="toctree-l2"><a class="reference internal" href="auth/auth-objects-aeskey.html">3.12. Auth Objects : AESKey</a></li>
<li class="toctree-l2"><a class="reference internal" href="auth/auth-objects-eckey.html">3.13. Auth Objects : ECKey</a></li>
<li class="toctree-l2"><a class="reference internal" href="key-id-range.html">3.14. Key Id Range and Purpose</a></li>
<li class="toctree-l2"><a class="reference internal" href="key-id-range.html#authentication-keys">3.15. Authentication Keys</a></li>
<li class="toctree-l2"><a class="reference internal" href="key-id-range.html#trust-provisioned-keyids">3.16. Trust provisioned KeyIDs</a></li>
<li class="toctree-l2"><a class="reference internal" href="../sss/ex/doc/puf-scp03.html">3.17. SCP03 with PUF</a></li>
<li class="toctree-l2"><a class="reference internal" href="../sss/doc/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="feature-file-fsl-sss-ftr-h">
<h1><span class="section-number">3.8. </span>Feature File - <code class="docutils literal notranslate"><span class="pre">fsl_sss_ftr.h</span></code><a class="headerlink" href="#feature-file-fsl-sss-ftr-h" title="Permalink to this headline"></a></h1>
<p>The Plug &amp; Trust Middleware uses a feature file to select/detect used/enabled
features Within the middleware stack. When using CMake this file is
automatically generated into the generated and used build directory. when not
using CMake (e.g. using demo/example from the MCUExpresso KSDK package, this
file is kept at the root of the source folder.</p>
<div class="section" id="when-using-cmake">
<h2><span class="section-number">3.8.1. </span>When Using CMake<a class="headerlink" href="#when-using-cmake" title="Permalink to this headline"></a></h2>
<p>Please be careful that when you’re using C Make this file is overwritten every
time CMake is invoked or it re-generates the make files.</p>
<p>You do not have to hand modify <code class="docutils literal notranslate"><span class="pre">fsl_sss_ftr.h</span></code> feature file. Selections
from CMake edit cache would automatically make relevant updates into the
generated feature file.</p>
<p>This file is auto generated from <code class="docutils literal notranslate"><span class="pre">simw-top\sss\inc\fsl_sss_ftr.h.in</span></code></p>
</div>
<div class="section" id="when-using-mcuxpresso-ide">
<h2><span class="section-number">3.8.2. </span>When Using MCUXpresso IDE<a class="headerlink" href="#when-using-mcuxpresso-ide" title="Permalink to this headline"></a></h2>
<p>As mentioned in above sections this file is kept in the root folder of the
imported project. The file is filled with checks and balances so that at
compile time some of the invalid selections are handled up front</p>
</div>
<div class="section" id="fsl-sss-ftr-default-h">
<h2><span class="section-number">3.8.3. </span><code class="docutils literal notranslate"><span class="pre">fsl_sss_ftr_default.h</span></code><a class="headerlink" href="#fsl-sss-ftr-default-h" title="Permalink to this headline"></a></h2>
<p>There is also provision to use a default fall-back file in case this feature
file is not generated.</p>
<p>In the relevant parts the Middleware uses the following snippet to select the
main or fall-back feature file:</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cp">#if defined(SSS_USE_FTR_FILE)</span>
<span class="cp">#include</span> <span class="cpf">&quot;fsl_sss_ftr.h&quot;</span><span class="cp"></span>
<span class="cp">#else</span>
<span class="cp">#include</span> <span class="cpf">&quot;fsl_sss_ftr_default.h&quot;</span><span class="cp"></span>
<span class="cp">#endif</span>
</pre></div>
</div>
<p>It must be obvious that if the macro <code class="docutils literal notranslate"><span class="pre">SSS_USE_FTR_FILE</span></code> is not defined by
the build system, default feature file gets used. In the reference demos
and use cases from the Middleware, <code class="docutils literal notranslate"><span class="pre">SSS_USE_FTR_FILE</span></code> is always defined
and only <code class="docutils literal notranslate"><span class="pre">fsl_sss_ftr.h</span></code> is used.</p>
</div>
<div class="section" id="using-feature-file-to-reduce-code-size">
<span id="ftr-file-reduce-code-size"></span><h2><span class="section-number">3.8.4. </span>Using feature file to reduce code size<a class="headerlink" href="#using-feature-file-to-reduce-code-size" title="Permalink to this headline"></a></h2>
<p>By setting below items to <code class="docutils literal notranslate"><span class="pre">0</span></code>, either in CMake or the <code class="docutils literal notranslate"><span class="pre">fsl_sss_ftr.h</span></code> relevant
sections of the code is removed from compilation and thereby reducing the code
consumption.</p>
<div class="section" id="sssftr-sw-testcounterpart">
<h3><span class="section-number">3.8.4.1. </span><code class="docutils literal notranslate"><span class="pre">SSSFTR_SW_TESTCOUNTERPART</span></code><a class="headerlink" href="#sssftr-sw-testcounterpart" title="Permalink to this headline"></a></h3>
<p>For some of the demos we use cryptography both from the secure element and the
host. For example, this makes an easy check for comparison where use
comparison where we ask the host crypto to encrypt something and the secure
element to do the counterpart (in this case encrypt) decrypt. Similarly for
sign, verify.</p>
<p>Setting this to Zero, removes the implementation of counterpart.</p>
</div>
<div class="section" id="sssftr-sw-ecc">
<h3><span class="section-number">3.8.4.2. </span><code class="docutils literal notranslate"><span class="pre">SSSFTR_SW_ECC</span></code><a class="headerlink" href="#sssftr-sw-ecc" title="Permalink to this headline"></a></h3>
<p>When we set this to 1, this feature exposes the asymmetric cryptography from
the host for ECC. When using ECKey Authentication (See
<a class="reference internal" href="auth/auth-objects-eckey.html#auth-objects-eckey"><span class="std std-ref">Auth Objects : ECKey</span></a>) this feature needs to be enabled. Please note that
<code class="docutils literal notranslate"><span class="pre">SSSFTR_SW_AES</span></code> also needs to be enabled for ECKey Authentication</p>
</div>
<div class="section" id="sssftr-sw-rsa">
<h3><span class="section-number">3.8.4.3. </span><code class="docutils literal notranslate"><span class="pre">SSSFTR_SW_RSA</span></code><a class="headerlink" href="#sssftr-sw-rsa" title="Permalink to this headline"></a></h3>
<p>When we set this to <code class="docutils literal notranslate"><span class="pre">0</span></code>, RSA related implementation from the host SW is removed.</p>
</div>
<div class="section" id="symmetric-cryptography-on-host">
<h3><span class="section-number">3.8.4.4. </span>Symmetric cryptography on Host<a class="headerlink" href="#symmetric-cryptography-on-host" title="Permalink to this headline"></a></h3>
<p>If for some reason there is no cryptography used at all on the host side then
these macros can also be set to <code class="docutils literal notranslate"><span class="pre">0</span></code> to remove relevant code from the host.</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">SSSFTR_SW_AES</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">SSSFTR_SW_KEY_GET</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">SSSFTR_SW_KEY_SET</span></code></p></li>
</ul>
</div>
<div class="section" id="sssftr-se05x-autheckey">
<h3><span class="section-number">3.8.4.5. </span><code class="docutils literal notranslate"><span class="pre">SSSFTR_SE05X_AuthECKey</span></code><a class="headerlink" href="#sssftr-se05x-autheckey" title="Permalink to this headline"></a></h3>
<p>When set to <code class="docutils literal notranslate"><span class="pre">0</span></code> the authentication using (See <a class="reference internal" href="auth/auth-objects-eckey.html#auth-objects-eckey"><span class="std std-ref">Auth Objects : ECKey</span></a>) mode is
disabled from the Host.</p>
</div>
<div class="section" id="sssftr-se05x-authsession">
<h3><span class="section-number">3.8.4.6. </span><code class="docutils literal notranslate"><span class="pre">SSSFTR_SE05X_AuthSession</span></code><a class="headerlink" href="#sssftr-se05x-authsession" title="Permalink to this headline"></a></h3>
<p>When set to <code class="docutils literal notranslate"><span class="pre">0</span></code> then only Platform SCP or default session can be used to talk to
the secure element.</p>
</div>
<div class="section" id="sssftr-se05x-aes">
<h3><span class="section-number">3.8.4.7. </span><code class="docutils literal notranslate"><span class="pre">SSSFTR_SE05X_AES</span></code><a class="headerlink" href="#sssftr-se05x-aes" title="Permalink to this headline"></a></h3>
<p>When set to <code class="docutils literal notranslate"><span class="pre">0</span></code> then the symmetric cryptography related APIs from the Secure
Element is removed from compilation.</p>
</div>
<div class="section" id="sssftr-se05x-create-delete-cryptoobj">
<h3><span class="section-number">3.8.4.8. </span><code class="docutils literal notranslate"><span class="pre">SSSFTR_SE05X_CREATE_DELETE_CRYPTOOBJ</span></code><a class="headerlink" href="#sssftr-se05x-create-delete-cryptoobj" title="Permalink to this headline"></a></h3>
<p>When we set this to zero the host never creates new crypto objects or neither
delete them. under such situation crypto objects should already be created
once in the lifetime of the secure element explicitly.</p>
</div>
<div class="section" id="sssftr-se05x-ecc">
<h3><span class="section-number">3.8.4.9. </span><code class="docutils literal notranslate"><span class="pre">SSSFTR_SE05X_ECC</span></code><a class="headerlink" href="#sssftr-se05x-ecc" title="Permalink to this headline"></a></h3>
<p>Feature related to various elliptic curves is removed when we set this to <code class="docutils literal notranslate"><span class="pre">0</span></code>.</p>
</div>
<div class="section" id="sssftr-se05x-key-get">
<h3><span class="section-number">3.8.4.10. </span><code class="docutils literal notranslate"><span class="pre">SSSFTR_SE05X_KEY_GET</span></code><a class="headerlink" href="#sssftr-se05x-key-get" title="Permalink to this headline"></a></h3>
<p>When there is no use case to fetch a key from the secure element to the host
via the SSS APIs, this can be set to <code class="docutils literal notranslate"><span class="pre">0</span></code>.</p>
</div>
<div class="section" id="sssftr-se05x-key-set">
<h3><span class="section-number">3.8.4.11. </span><code class="docutils literal notranslate"><span class="pre">SSSFTR_SE05X_KEY_SET</span></code><a class="headerlink" href="#sssftr-se05x-key-set" title="Permalink to this headline"></a></h3>
<p>When there is no use case to inject a key into the secure element from the
host this can be set to <code class="docutils literal notranslate"><span class="pre">0</span></code>. note that the keys can still be provisioned
remotely for authenticated sessions this just removes the code from the host
middleware.</p>
</div>
<div class="section" id="sssftr-se05x-rsa">
<h3><span class="section-number">3.8.4.12. </span><code class="docutils literal notranslate"><span class="pre">SSSFTR_SE05X_RSA</span></code><a class="headerlink" href="#sssftr-se05x-rsa" title="Permalink to this headline"></a></h3>
<p>Removes the code related to RSA features of the secure element from the
middleware when we set this to <code class="docutils literal notranslate"><span class="pre">0</span></code>.</p>
</div>
</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>