<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[wolfSSL - Embedded SSL Library — Announcing wolfTPM v4.1.0]]></title>
		<link>https://www.wolfssl.com/forums/topic2554-announcing-wolftpm-v410.html</link>
		<atom:link href="https://www.wolfssl.com/forums/feed-rss-topic2554.xml" rel="self" type="application/rss+xml" />
		<description><![CDATA[The most recent posts in Announcing wolfTPM v4.1.0.]]></description>
		<lastBuildDate>Tue, 14 Jul 2026 21:47:32 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Announcing wolfTPM v4.1.0]]></title>
			<link>https://www.wolfssl.com/forums/post8874.html#p8874</link>
			<description><![CDATA[<p><a href="https://www.wolfssl.com/products/wolftpm/">wolfTPM v4.1.0</a> delivers the post-quantum upgrade path we promised in v4.0.0, alongside a major round of firmware TPM (fwTPM) hardening. It delivers three headline capabilities:</p><ul><li><p><strong>TPM 2.0 v1.85 Post-Quantum Cryptography</strong>: ML-DSA and ML-KEM native and in the fwTPM.</p></li></ul><ul><li><p><strong>fwTPM Hardening</strong>: Dictionary Attack protection to the TCG spec, SPDM secured transport, and session, policy, and NV fixes.</p></li></ul><ul><li><p>Runtime TPM Locality Control: select locality 0-4 at runtime with a single API call.</p></li></ul><p>All of it runs on the same wolfCrypt engine trusted in FIPS 140-3 and DO-178C DAL A deployments.</p><p><span class="bbu"><strong>Feature 1: TPM 2.0 v1.85 Post-Quantum Cryptography</strong></span><br />v4.0.0 shipped with post-quantum support listed as coming soon. It is here. The fwTPM now implements the TPM 2.0 v1.85 post-quantum algorithms: ML-DSA sign/verify and <strong>ML-KEM</strong> encapsulate/decapsulate, with seed handling to TCG Phase B, ML-DSA primary keys via TPM2_CreateLoaded, PQC parameter encryption in the examples, and dedicated PQC CI and fuzz coverage.</p><p><strong>Build Only What You Use</strong><br />Post-quantum keys and code are large, so v4.1.0 adds layered build macros to trim the PQC footprint to the operations you actually perform:</p><div class="codebox"><pre><code>--enable-pqc                          # lean ML-DSA + ML-KEM subset
--enable-mldsa[=all|sign-only|verify-only|no]
--enable-mlkem[=all|enc|dec|no]
--disable-hash-mldsa</code></pre></div><p>–enable-pqc now selects the lean PQC subset, while –enable-v185 remains the full specification build. Per-algorithm (WOLFTPM_MLDSA, WOLFTPM_MLKEM) and per-operation macros each have a matching WOLFTPM_NO_* opt-out. New _ex session, OAEP, and PQC-hash wrappers round out the API, and the build enforces a wolfSSL v5.8.0+ PQC floor with upstream-drift CI.</p><p><span class="bbu"><strong>Feature 2: fwTPM Hardening</strong></span><br />The firmware TPM introduced in v4.0.0 received a major round of work to close the gap with discrete hardware.</p><p><strong>Dictionary Attack Protection to the TCG Spec</strong><br /></p><ul><li><p>noDA honored on objects (TPMA_OBJECT_noDA), not just NV indices.</p></li></ul><ul><li><p>failedTries persisted in NV, including the non-orderly-shutdown +1 penalty.</p></li></ul><ul><li><p>recoveryTime self-heal and separate lockoutRecovery, with DA properties reported via TPM2_GetCapability.</p></li></ul><ul><li><p>New wrappers wolfTPM2_DictionaryAttackLockReset and wolfTPM2_DictionaryAttackParameters, a da_check example, and a CI retry harness.</p></li></ul><p><strong>Sessions, Policy, and NV</strong><br /></p><ul><li><p>Transient state kept across command-port reconnects.</p></li></ul><ul><li><p>continueSession set in the password-auth response, and PolicyAuthorize zero-ticket handling.</p></li></ul><ul><li><p>Append-only NV journal for write-once flash ports.</p></li></ul><ul><li><p>Optional transparent TPM_RC_RETRY handling for TPMs that momentarily report busy. Opt in via TPM2_SetCommandRetries or -DWOLFTPM_MAX_RETRIES=N.</p></li></ul><ul><li><p>SPDM secured transport extended to the fwTPM, and FIPS 140-3 capability reporting.</p></li></ul><p><strong>Feature 3: Runtime TPM Locality Control</strong><br />TPM locality lets a platform distinguish measurements made by trusted early boot code (DRTM) from ordinary software. The new wolfTPM2_SetLocality(dev, locality) API selects locality 0-4 at runtime, and the PCR reset example takes a -loc=n flag. It works on the TIS/SPI driver and the fwTPM over socket and TIS/SHM; platforms without a locality interface cleanly return NOT_COMPILED_IN.</p><p>The fwTPM per-PCR locality enforcement was replaced with a single source-of-truth table matching the TCG PC Client profile. Behavior change: <strong>DRTM PCRs 17-22 can no longer be extended from locality 0</strong>, exactly as the specification requires.</p><p><strong>Other v4.1.0 Release Improvements</strong><br /></p><ul><li><p>New crypto-primitive examples (getrandom, hash, AES, ECDH) and a WOLFTPM2_ECC_DEFAULT_CURVE option.</p></li></ul><ul><li><p>Optional hardware-reset HAL: –enable-hal-reset pulses the nRST line via the Linux GPIO char device.</p></li></ul><ul><li><p>Freestanding builds via WOLFTPM_NO_STD_HEADERS for bare-metal targets without a standard C library.</p></li></ul><ul><li><p>SBOM generation (make sbom): CycloneDX and SPDX documents for EU Cyber Resilience Act (CRA) compliance.</p></li></ul><ul><li><p>Fixed TPM_CAP_ALGS / TPM_CAP_COMMANDS capability paging, and Nations NS350 example fixes.</p></li></ul><ul><li><p>Extensive security hardening: automated Fenrir review, Coverity fixes across the fwTPM paths, and CodeQL/Semgrep review gates.</p></li></ul><ul><li><p>CI and build improvements: expanded CMake tests, a GHCR container image, and nightly fuzzing.</p></li></ul><p><span class="bbu"><strong>Getting Started</strong></span><br /></p><div class="codebox"><pre><code>git clone https://github.com/wolfSSL/wolfTPM.git
cd wolfTPM
git checkout v4.1.0
./configure --enable-fwtpm --enable-pqc
make &amp;&amp; make check</code></pre></div><ul><li><p>Release notes: <a href="https://github.com/wolfSSL/wolfTPM/releases/tag/v4.1.0">github.com/wolfSSL/wolfTPM/releases/tag/v4.1.0</a></p></li></ul><ul><li><p>Changelog: <a href="https://github.com/wolfSSL/wolfTPM/blob/master/ChangeLog.md">ChangeLog.md</a></p></li></ul><ul><li><p>Examples: examples/ directory, including the new da_check, PCR-locality, and crypto-primitive demos.</p></li></ul><p>For commercial licensing, FIPS 140-3 integration, DO-178C DAL A qualification kits, custom HAL ports, or help deploying TPM 2.0 v1.85 post-quantum, contact <a href="mailto:facts@wolfSSL.com">facts@wolfSSL.com</a> or +1 425 245 8247.</p><p><strong><a href="https://www.wolfssl.com/download/">Download</a> wolfSSL Now</strong></p>]]></description>
			<author><![CDATA[null@example.com (shizuka)]]></author>
			<pubDate>Tue, 14 Jul 2026 21:47:32 +0000</pubDate>
			<guid>https://www.wolfssl.com/forums/post8874.html#p8874</guid>
		</item>
	</channel>
</rss>
