NanoSMP
2 minute read
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.
Note
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): 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 (MSA). Contact us at 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)