wolfTPM
TPM 2.0 library: key generation, sealing, attestation and secure storage with a hardware TPM.
Install
# From the workspace root
curl -fsSL https://kartben.github.io/windrose/m/wolfssl.yaml \
-o zephyr/submanifests/wolfssl.yaml
curl -fsSL https://kartben.github.io/windrose/m/wolftpm.yaml \
-o zephyr/submanifests/wolftpm.yaml
west update wolfssl wolftpm
# From the workspace root
Invoke-WebRequest https://kartben.github.io/windrose/m/wolfssl.yaml `
-OutFile zephyr/submanifests/wolfssl.yaml
Invoke-WebRequest https://kartben.github.io/windrose/m/wolftpm.yaml `
-OutFile zephyr/submanifests/wolftpm.yaml
west update wolfssl wolftpm
Includes its dependency wolfssl.
- name: wolfssl url: https://github.com/wolfssl/wolfssl revision: master path: modules/crypto/wolfssl - name: wolftpm url: https://github.com/wolfssl/wolftpm revision: v3.10.0 path: modules/crypto/wolftpm
Add to projects in your west.yml, then run west update wolfssl wolftpm.
- Upstream has a newer release:
v4.2.0.
Details
About
wolfTPM is a lightweight, portable TPM 2.0 library optimized for embedded systems, RTOS environments, and resource-constrained devices. It provides a full TPM 2.0 implementation including support for cryptographic operations, key generation, secure storage, and attestation.
wolfTPM has been integrated as a Zephyr module with CMake and Kconfig support, making it simple to include TPM functionality in any Zephyr-based project. The module supports device tree integration for I2C communication with TPM devices - you can configure the I2C bus by setting WOLFTPM_ZEPHYR_I2C_BUS in user_settings.h to the node describing the I2C bus on your device. I2C speed can be configured with WOLFTPM_ZEPHYR_I2C_SPEED.
wolfTPM is dual licensed under GPLv3 and commercial licenses.