PRODUCTS

wolfTPM Portable TPM 2.0 Library

Trusted Platform Module (TPM, also known as ISO/IEC 11889) is an international standard for a secure cryptoprocessor, a dedicated microcontroller designed to secure hardware through integrated cryptographic keys. Computer programs can use a TPM to authenticate hardware devices, since each TPM chip has a unique and secret RSA key burned in as it is produced.

wolfTPM is a portable TPM 2.0 project, designed for embedded use. It is highly portable, due to having been written in native C, having a single IO callback for SPI hardware interface, no external dependencies, and its compacted code with low resource usage.

Due to wolfTPM's portability, it is generally very easy to compile on new platforms.  If your desired platform is not listed as supported or you would like assistance porting wolfTPM, please contact wolfSSL at info@wolfssl.com.

Download Now
Get the latest open source GPLv2 version now!

Version:  1.3.0
Release Date: 07/20/2018
View ChangeLog

Highlights

  • Provides all TPM 2.0 API’s in compliance with the specification.
  • Uses the TPM Interface Specification (TIS) to communicate over SPI.
  • Includes wrappers for Key Generation, RSA encrypt/decrypt, ECC sign/verify and ECDH.

Portable

  • Native C code designed for embedded use.
  • Single IO callback for hardware SPI interface.
  • No external dependencies.
  • Compact code size and minimal memory use.

Platform and Language Support

wolfTPM is built for maximum portability and is generally very easy to compile on new platforms.  If your desired platform is not listed under the supported operating environments, please contact us.

wolfTPM supports the C programming language as a primary interface. If you have interest in using wolfTPM in another programming language that it does not currently supported, please contact us.

Commercial Support

Support packages for wolfTPM are available on an annual basis directly from wolfSSL.  With three different package options, you can compare them side-by-side and choose the package that best fits your specific needs.  Please see our Support Packages page for more details or contact us with any questions.

wolfSSL Training Course

Interested in getting trained by security experts on subjects related to wolfSSL and SSL/TLS?  Learn more.

Features

  • This implementation provides all TPM 2.0 API’s in compliance with the specification.
  • This uses the TPM Interface Specification (TIS) to communicate over SPI.
  • The design allows for easy portability to different platforms:
    • Native C code designed for embedded use.
    • Single IO callback for hardware SPI interface.
    • No external dependencies.
    • Compact code size and minimal memory use.
  • Examples for the Raspberry Pi and STM32 with CubeMX.
  • Includes example code for most TPM2 native API’s.
  • Includes wrappers for Key Generation, RSA encrypt/decrypt, ECC sign/verify and ECDH.
  • Testing done using the Infineon OPTIGA SLB9670 module and LetsTrust TPM for Raspberry Pi.

Supported Chipmakers

Supported Operating Environments

  • Raspberry Pi, STM32
  • If you would like to test wolfTPM on another environment, let us know and we’ll be happy to support you.

Licensing and Ordering:

wolfTPM is dual licensed under both the GPLv2 and commercial licensing.  For more information, please see the following links.