NanoSMP

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.

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)