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.
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
tpmdirect
The examples
directory contains some simple examples for both legacy versions
of the spec.
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.