TPM-JS lets you experiment with a software Trusted Platform Module (TPM) in your browser. TPM-JS includes the following libraries:

The TSS library provides high-level APIs to the TPM. It manages TPM resources, marshals command buffers and unmarshals response buffers.

The simulator executes TPM commands. It maintains internal state and uses the BoringSSL library for cryptographic operations.


TPMs are remarkable! They are passive, low-end devices that offer strong security guarantees.

In this site we'll learn how TPMs work. We'll see how to use the TPM as a cryptographic device. We'll cover topics such as key generation, measured boot, PCRs, remote attestation and key sealing.

The code for this website can be found at github.com/google/tpm-js.