--- title: "NanoSMP" source_url: https://dev.digicert.com/trustcore-sdk/nanosmp.html --- The NanoSMP (Security Module Plugin) connector defines a provider interface layer for Secure Elements (SE) to integrate with NanoTAP (Trust Anchor Platform). The NanoTAP layer provides transport protocols and applications with a simple set of APIs to seamlessly integrate with any type of secure element. To build a connector with NanoSMP, the security module provider must register and implement the APIs based on the capabilities supported by the secure element. > **Info** > > Each NanoSMP connector is a licensed extension of NanoTAP for a specific type of secure element (i.e., processor) and target operating environment (i.e., operating system). NanoSMP is available in two models: ## License This project is available under a **dual-license model**: - **Open Source License**: [GNU Affero General Public License v3 (AGPL v3)](https://github.com/digicert/trustcore/blob/main/LICENSE.md): This license allows you to use, modify, and distribute the code for free in accordance with AGPL terms. - **Commercial License**: If you wish to use TrustCore SDK in a proprietary or commercial product (e.g., embedded in closed-source firmware or commercial SaaS applications), a commercial license is available under DigiCert’s [Master Services Agreement](https://www.digicert.com/master-services-agreement/) (MSA). Contact us at [sales@digicert.com](mailto:sales@digicert.com) for commercial licensing details. ## Key features The NanoSMP connector provides the following features, depending on the capabilities supported by the secure element: - Small memory footprint - Speeds integration and testing of complex cryptographic secure functions for your product - Threadless, asynchronous architecture - Guaranteed GPL-free code that protects your intellectual property - API abstraction layer that provides APIs for the transport protocol stack and polyglot applications - APIs for discovery, provisioning, context management, session management and secure functions. - Extensible set of secure functions for cryptographic operations, random number generation, secure (measured, authenticated) storage, attestation, and key storage. ## System requirements ### Memory requirements The NanoSMP connector for TPM 2.0/1.2 has a minimum memory footprint of 640KB. Typical memory usage is with a full set of ciphers and may vary (decrease or increase) based on 32/64-bit, x86/ARM/MIPS, reduced set of ciphers, static/shared library, and compile flags. ### Supported operating systems - Linux - Microsoft® Windows - FreeRTOS - ThreadX ### Supported operating platforms - Infineon® TPM 2.0/1.2 (Windows, Linux) - ST-Micro® TPM 2.0/1.2 (Windows, Linux) - Atmel® TPM 2.0/1.2 (Windows, Linux) - NXP A71CH (FreeRTOS) - Renesas S5 (ThreadX) - PKCS#11-based SIM (Linux) ## In this section - [NanoSMP for TPM 2.0](https://dev.digicert.com/md/trustcore-sdk/nanosmp/nanosmp-for-tpm-2-0.md)