Skip to content

Integrate go-nvtrust to collect GPU attestation#676

Merged
yawangwang merged 1 commit intogoogle:mainfrom
yawangwang:integrate_go_nvtrust_h100
Feb 27, 2026
Merged

Integrate go-nvtrust to collect GPU attestation#676
yawangwang merged 1 commit intogoogle:mainfrom
yawangwang:integrate_go_nvtrust_h100

Conversation

@yawangwang
Copy link
Collaborator

Integrate the OSS library go-nvtrust into tdx attester to collect confidential GPU attestation.

@yawangwang yawangwang force-pushed the integrate_go_nvtrust_h100 branch 4 times, most recently from c250cfe to 14cc828 Compare February 24, 2026 22:34
@yawangwang yawangwang marked this pull request as ready for review February 24, 2026 22:41
@yawangwang yawangwang requested review from alexmwu and jkl73 February 24, 2026 22:41
return finalNonce[:]
}

func (t *tdxAttestRoot) GetDeviceAttestation(nonce []byte) (*verifier.DeviceAttestation, error) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if we should have a separate device RoT. It seems strange to have this be a method under the TDX attestation root.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The logic in my mind goes like:

  1. Launcher already detects supported devices due to drivers.
  2. Launcher installs drivers but does not put GPU into ready state.
  3. Launcher calls MeasureEvent with the GPU's DeviceAttestation proto.
  4. Launcher puts GPUs into ready state.
  5. Collect attestation evidence for runtime (tbd if needed) in the Attest call

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's also my understanding. Updated the PR to have launcher pass only the supported ones into the attestation agent.


// CollectAttestationEvidence assumes CC GPU devices are in place w/ driver support
// and will try to collect raw attestation evidence and convert it to known data models.
func CollectAttestationEvidence(handler gpu.NvmlHandler, nonce []byte) (*models.NvidiaAttestation, error) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will need a bit of refactoring to use the protos, but that can be done in a follow-up CL

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed

@yawangwang yawangwang force-pushed the integrate_go_nvtrust_h100 branch 3 times, most recently from 9f0eff2 to 56ead1b Compare February 26, 2026 02:24
@yawangwang yawangwang force-pushed the integrate_go_nvtrust_h100 branch 4 times, most recently from 24ba60a to 31ef7f4 Compare February 27, 2026 19:22
@yawangwang yawangwang force-pushed the integrate_go_nvtrust_h100 branch from 31ef7f4 to 42dc7b4 Compare February 27, 2026 19:34
@yawangwang yawangwang merged commit 3ced14c into google:main Feb 27, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants