google / tpm-js

Learn how to use your Trusted Platform Module (TPM)

Home Page:https://google.github.io/tpm-js/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Interactive TPM simulator with codelabs

Overview

TPM-JS lets you experiment with a software TPM device in your browser. It's an educational tool that teaches you how to use a TPM device to secure your workflows. The codelab like sessions cover topics such as key generation, measured boot, remote attestation and sealing.

Screenshots

Welcome screen: Welcome Screen

Keys codelab: Keys codelab

PCRs codelab: PCRs codelab

Architecture

TPM-JS includes the following libraries:

The libraries are compiled to WebAssembly, and accessed via Javascript.

Dependencies

Build

Initialize git submodules:

git submodule update --init

Activate emsdk:

source {EMSDK PATH}/emsdk_env.sh

Build TPM-JS:

mkdir bulid-web
cd build-web
emcmake cmake ..
make -j4

Run unit-tests:

make check

Alternatively, you can build the project using the provided Docker file.

One time initialization:

./dcmake.sh

Then build using:

./dmake.sh -j4

Serve Files

Add the line application/wasm wasm to /etc/mime.types.

Serve files from the built web package:

cd build-web/web
python3 -m http.server --bind 127.0.0.1 8000

Disclaimer

This is not an official Google product (experimental or otherwise), it is just code that happens to be owned by Google.

About

Learn how to use your Trusted Platform Module (TPM)

https://google.github.io/tpm-js/

License:Apache License 2.0


Languages

Language:C++ 45.5%Language:HTML 35.9%Language:JavaScript 13.9%Language:CMake 2.5%Language:Dockerfile 1.1%Language:CSS 0.5%Language:Python 0.4%Language:Shell 0.3%