This is the first post in a series of articles aimed at presenting tpm-ca-certificates!
It’s a project I’ve been working on for several months now, and I want to highlight it because I find it particularly cool in many ways that I’ll explore in this series.
Overview
The project’s goal can be summarized in one sentence: democratize the validation of TPM (Trusted Platform Module) authenticity.
By authenticity, we mean the formal verification (via a cryptographic signature mechanism) that a TPM is genuine.
How?
By providing a bundle that centralizes trust authority certificates supplied by TPM manufacturers.
tpm-ca-certificates centralizes:
- 32: root certificates
- 158: intermediate certificates
- 9: manufacturers
Source: bundle published on May 24, 2026
But before going further, it’s important to understand the mechanism by which we can validate a TPM.
If you want a quick introduction to TPMs, check out tpm-pills!
Note: I’m the content author (so this is self-promotion ^_^).
Understanding the Root of Trust of a TPM
If we simplify to the extreme, a TPM is a device complying with a specification defined by a consortium called TCG (Trusted Computing Group). For a manufacturer to mass-produce a TPM, they must follow this specification and obtain certification (see certified manufacturers list).
All this is well and good, but how can we be sure a TPM is authentic? To do this, imagine that at the factory, the manufacturer issues one (or more) certificates attesting to the TPM’s authenticity. Then, these certificates are typically stored in the TPM1 as shown in the diagram below:

Note: image generated by ChatGPT
This certificate is called the Endorsement Key (EK) Certificate and it’s unique for each TPM; it’s essentially its identity card.
The same principle is also used in latest Yubico to guarantee that a key pair was generated by the device and not imported.
Next, validation relies on the principle of the chain of trust of a PKI (Public Key Infrastructure):

Note: image generated by ChatGPT
What pain point does tpm-ca-certificates address?
On paper, things seem simple… but in practice, this step is arduous because TCG (or another organization) doesn’t provide a centralized bundle with all the trust roots. It’s each user’s or organization’s responsibility to fetch these elements from the manufacturer’s website (assuming the information is available). With information being sparse and difficult to obtain, most tools that interact with a TPM don’t even verify its authenticity, which is quite paradoxical since a TPM is supposed to guarantee security. By comparison, it’s like trusting a TLS certificate presented to us without EVER verifying its chain of trust…
tpm-ca-certificates aims to solve this problem by providing a centralized open source bundle and SDKs 2 to facilitate the integration of TPM validation in applications.
Is this project the first initiative of its kind?
Not really, Windows also maintains a bundle available here. Where tpm-ca-certificates distinguishes itself is through its open source approach 3, certain concepts (which will be detailed in upcoming posts), and the provision of SDKs (Software Development Kits) to ease integration in existing applications.
You can find a detailed comparison here.
Conclusion
In this post, we explained what motivated me to create tpm-ca-certificates, in the next one, we’ll see how it works.
Why this name?
tpm-ca-certificates is a tribute to the ca-certificates project. The latter is used in many Linux distro for building the TLS truststore