MCPcopy Index your code
hub / github.com/google/go-tpm

github.com/google/go-tpm @v0.9.8

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.9.8 ↗ · + Follow
1,675 symbols 6,052 edges 126 files 1,257 documented · 75% 63 cross-repo links
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Go-TPM

Go-TPM is a Go library that communicates directly with a TPM device on Linux or Windows machines.

The libraries don't implement the entire spec for neither 1.2 nor 2.0. If you need a command that's missing, contributions are welcome!

Please note that this is not an official Google product.

Structure

The tpm directory contains TPM 1.2 client library. This library is in "maintenance mode".

The legacy/tpm2 directory contains the legacy TPM 2.0 client library.

The tpm2 directory contains the prototype "TPMDirect" TPM 2.0 API, which is intended to (eventually) be 1:1 with the TPM 2.0 spec. Please report issues, complaints, or suggestions using the label https://github.com/google/go-tpm/labels/tpmdirect.

The examples directory contains some simple examples for both legacy versions of the spec.

TPM 1.2

TPM 1.2 support currently has no maintainer. None of the TPM 2.0 maintainers have expertise on 1.2 either.

As such, TPM 1.2 library is in "maintenance" mode - all PRs with new functionality or non-critical fixes will be rejected.

If you'd like to volunteer to maintain the TPM 1.2 library, you can do so via an issue. You don't have to be a Googler to volunteer.

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Function 714
Method 483
Struct 340
TypeAlias 103
Interface 32
FuncType 3

Languages

Go100%

Modules by API surface

tpm2/tpm2.go310 symbols
tpm2/structures.go269 symbols
legacy/tpm2/tpm2.go151 symbols
legacy/tpm2/structures.go81 symbols
tpm2/sessions.go72 symbols
legacy/tpm2/test/tpm2_test.go57 symbols
tpm/tpm.go50 symbols
tpm/structures.go44 symbols
tpm2/reflect.go35 symbols
tpm/tpm_test.go32 symbols
tpm/commands.go28 symbols
tpm2/marshalling.go26 symbols

For agents

$ claude mcp add go-tpm \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page