1- // Copyright 2025 Google LLC
1+ // Copyright 2026 Google LLC
22//
33// Licensed under the Apache License, Version 2.0 (the "License");
44// you may not use this file except in compliance with the License.
@@ -192,6 +192,13 @@ message VerifyAttestationRequest {
192192 [(google.api.field_behavior ) = OPTIONAL ];
193193 }
194194
195+ // An optional device attestation report.
196+ oneof device_attestation {
197+ // Optional. An Nvidia attestation report for GPU and NVSwitch devices.
198+ NvidiaAttestation nvidia_attestation = 9
199+ [(google.api.field_behavior ) = OPTIONAL ];
200+ }
201+
195202 // Required. The name of the Challenge whose nonce was used to generate the
196203 // attestation, in the format `projects/*/locations/*/challenges/*`. The
197204 // provided Challenge will be consumed, and cannot be used again.
@@ -223,6 +230,99 @@ message VerifyAttestationRequest {
223230 string attester = 8 [(google.api.field_behavior ) = OPTIONAL ];
224231}
225232
233+ // An Nvidia attestation report for GPU and NVSwitch devices.
234+ // Contains necessary attestation evidence that the client collects for
235+ // verification.
236+ message NvidiaAttestation {
237+ // GpuInfo contains the attestation evidence for a GPU device.
238+ message GpuInfo {
239+ // Optional. The UUID of the GPU device.
240+ string uuid = 1 [(google.api.field_behavior ) = OPTIONAL ];
241+
242+ // Optional. The driver version of the GPU.
243+ string driver_version = 2 [(google.api.field_behavior ) = OPTIONAL ];
244+
245+ // Optional. The vBIOS version of the GPU.
246+ string vbios_version = 3 [(google.api.field_behavior ) = OPTIONAL ];
247+
248+ // Optional. The GPU architecture type.
249+ GpuArchitectureType gpu_architecture_type = 4
250+ [(google.api.field_behavior ) = OPTIONAL ];
251+
252+ // Optional. The raw attestation certificate chain for the GPU device.
253+ bytes attestation_certificate_chain = 5
254+ [(google.api.field_behavior ) = OPTIONAL ];
255+
256+ // Optional. The raw attestation report for the GPU device.
257+ // This field contains SPDM request/response defined in
258+ // https://www.dmtf.org/sites/default/files/standards/documents/DSP0274_1.1.0.pdf
259+ bytes attestation_report = 6 [(google.api.field_behavior ) = OPTIONAL ];
260+ }
261+
262+ // SwitchInfo contains the attestation evidence for a NVSwitch device.
263+ message SwitchInfo {
264+ // Optional. The UUID of the NVSwitch device.
265+ string uuid = 1 [(google.api.field_behavior ) = OPTIONAL ];
266+
267+ // Optional. The raw attestation certificate chain for the NVSwitch device.
268+ bytes attestation_certificate_chain = 2
269+ [(google.api.field_behavior ) = OPTIONAL ];
270+
271+ // Optional. The raw attestation report for the NvSwitch device.
272+ // This field contains SPDM request/response defined in
273+ // https://www.dmtf.org/sites/default/files/standards/documents/DSP0274_1.1.0.pdf
274+ bytes attestation_report = 3 [(google.api.field_behavior ) = OPTIONAL ];
275+ }
276+
277+ // Single GPU Passthrough (SPT) attestation.
278+ message SinglePassthroughAttestation {
279+ // Optional. Single GPU quote.
280+ GpuInfo gpu_quote = 1 [(google.api.field_behavior ) = OPTIONAL ];
281+ }
282+
283+ // Protected PCIe (PPCIE) attestation.
284+ // Eight Hopper GPUs with Four NVSwitch Passthrough.
285+ message ProtectedPcieAttestation {
286+ // Optional. A list of GPU infos.
287+ repeated GpuInfo gpu_quotes = 1 [(google.api.field_behavior ) = OPTIONAL ];
288+
289+ // Optional. A list of SWITCH infos.
290+ repeated SwitchInfo switch_quotes = 2
291+ [(google.api.field_behavior ) = OPTIONAL ];
292+ }
293+
294+ // MultiGpuSecurePassthroughAttestation contains the attestation evidence
295+ // for a Multi-GPU Secure Passthrough (MPT) attestation.
296+ message MultiGpuSecurePassthroughAttestation {
297+ // Optional. A list of GPU quotes.
298+ repeated GpuInfo gpu_quotes = 1 [(google.api.field_behavior ) = OPTIONAL ];
299+ }
300+
301+ // GpuArchitectureType enumerates the supported GPU architecture types.
302+ enum GpuArchitectureType {
303+ // Unspecified GPU architecture type.
304+ GPU_ARCHITECTURE_TYPE_UNSPECIFIED = 0 ;
305+
306+ // Hopper GPU architecture type.
307+ GPU_ARCHITECTURE_TYPE_HOPPER = 8 ;
308+
309+ // Blackwell GPU architecture type.
310+ GPU_ARCHITECTURE_TYPE_BLACKWELL = 10 ;
311+ }
312+
313+ // The Confidential Computing feature that the attestation is for.
314+ oneof cc_feature {
315+ // Single GPU Passthrough (SPT) attestation.
316+ SinglePassthroughAttestation spt = 1 ;
317+
318+ // Protected PCIe (PPCIE) attestation.
319+ ProtectedPcieAttestation ppcie = 2 ;
320+
321+ // Multi-GPU Secure Passthrough (MPT) attestation.
322+ MultiGpuSecurePassthroughAttestation mpt = 3 ;
323+ }
324+ }
325+
226326// A TDX Attestation quote.
227327message TdxCcelAttestation {
228328 // Optional. The Confidential Computing Event Log (CCEL) ACPI table. Formatted
@@ -474,6 +574,11 @@ message VerifyConfidentialSpaceRequest {
474574
475575 // Optional. A collection of fields that modify the token output.
476576 ConfidentialSpaceOptions options = 7 [(google.api.field_behavior ) = OPTIONAL ];
577+
578+ // Optional. An optional Nvidia attestation report, used to populate hardware
579+ // rooted claims for Nvidia devices.
580+ NvidiaAttestation nvidia_attestation = 8
581+ [(google.api.field_behavior ) = OPTIONAL ];
477582}
478583
479584// GceShieldedIdentity contains information about a Compute Engine instance.
@@ -509,6 +614,22 @@ message VerifyConfidentialSpaceResponse {
509614// needed for this service to verify Confidential GKE platform state of the
510615// requestor.
511616message VerifyConfidentialGkeRequest {
617+ // Token options for Confidential GKE attestation.
618+ message ConfidentialGkeOptions {
619+ // Optional. Optional string to issue the token with a custom audience
620+ // claim. Required if custom nonces are specified.
621+ string audience = 1 [(google.api.field_behavior ) = OPTIONAL ];
622+
623+ // Optional. Optional parameter to place one or more nonces in the eat_nonce
624+ // claim in the output token. The minimum size for JSON-encoded EATs is 10
625+ // bytes and the maximum size is 74 bytes.
626+ repeated string nonce = 3 [(google.api.field_behavior ) = OPTIONAL ];
627+
628+ // Optional. Optional specification for how to sign the attestation token.
629+ // Defaults to SIGNATURE_TYPE_OIDC if unspecified.
630+ SignatureType signature_type = 4 [(google.api.field_behavior ) = OPTIONAL ];
631+ }
632+
512633 // Required. A tee attestation report, used to populate hardware rooted
513634 // claims.
514635 oneof tee_attestation {
@@ -526,6 +647,9 @@ message VerifyConfidentialGkeRequest {
526647 type : "confidentialcomputing.googleapis.com/Challenge"
527648 }
528649 ];
650+
651+ // Optional. A collection of fields that modify the token output.
652+ ConfidentialGkeOptions options = 3 [(google.api.field_behavior ) = OPTIONAL ];
529653}
530654
531655// VerifyConfidentialGkeResponse response is returened once a Confidential GKE
0 commit comments