Skip to main content

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.

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).

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)