# README

Intel® Trust Authority TPM Adapter for Go

· 10/23/2024 ·

This version of the TPM (Trusted Platform Module) adapter provides a set of APIs for interacting with TPMs. The adapter can be used to read and write NV indexes, read PCRs, and get quotes. In this release the adapter supports Microsoft Azure* confidential virtual machines with Intel® Trust Domain Extensions (Intel® TDX) and vTPM 2.0.

The TPM adapter is used to get evidence from the vTPM. The evidence is endorsed by the Azure-provided attestation key (AK), which is contained in the Intel TDX quote's runtime data. The Azure CVM with Intel TDX adapter (go-aztdx) is used to get evidence from the Intel TDX trust domain TEE. The evidence from the vTPM and the Intel TDX is combined and sent to Intel Trust Authority for composite attestation. If attestation is successful, Intel Trust Authority issues a JWT (JSON Web Token) that can be used to verify the integrity of the vTPM and the Intel TDX trust domain.

For detailed documentation of the TPM adapter, see the TPM API Reference in the Intel Trust Authority documentation.

Prerequisites

  • Go 1.22 or later

Usage

You'll need to import the following packages into your project to attest an Azure confidential VM with Intel TDX and vTPM:

import(
	"github.com/intel/trustauthority-client/aztdx"
	"github.com/intel/trustauthority-client/go-connector"
	"github.com/intel/trustauthority-client/tpm"
)

Code of Conduct and Contributing

See the CONTRIBUTING file for information on how to contribute to this project. The project follows the Code of Conduct.

License

This library is distributed under the BSD-style license found in the LICENSE file.



* Other names and brands may be claimed as the property of others.

# Functions

NewCompositeEvidenceAdapterWithOptions creates a new composite adapter for the host's TPM.
Default TPM factory that creates a TrustedPlatformModule implementation suitable for use with a physical/linux device or TPM simulator.
No description provided by the author
WithAkHandle specifies the ak handle to use during quote generation.
WithDeviceType specifies the type of TPM device to use.
WithImaLogs will include the IMA log into TPM evidence using the specified 'imaPath' parameter.
WithOwnerAuth specifies the owner password used to communicate with the TPM.
WithPcrSelections configures which PCRs to include during TPM quote generation.
WithUefiEventLogs will include the UEFI event log into TPM evidence using the specified 'uefiLogPath'.

# Constants

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Variables

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Structs

PcrSelection is a struct that contains the hash algorithm and the list of PCRs that will be included in quotes/pcr data.

# Interfaces

TpmFactory is an interface for creating TrustedPlatformModule instances.
No description provided by the author

# Type aliases

TpmAdapterOptions for creating an evidence adapter using the host's TPM.
No description provided by the author