Skip to content

Commit 4e434c1

Browse files
Google APIscopybara-github
authored andcommitted
feat: add Nvidia Attestation proto message with its relevant fields and ConfidentialGke options
PiperOrigin-RevId: 866189208
1 parent b95e828 commit 4e434c1

File tree

4 files changed

+134
-4
lines changed

4 files changed

+134
-4
lines changed

google/cloud/confidentialcomputing/v1/BUILD.bazel

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,6 @@ load(
329329

330330
csharp_proto_library(
331331
name = "confidentialcomputing_csharp_proto",
332-
extra_opts = [],
333332
deps = [":confidentialcomputing_proto"],
334333
)
335334

google/cloud/confidentialcomputing/v1/confidentialcomputing_v1.yaml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,15 @@ documentation:
1414
description: Gets information about a location.
1515

1616
- selector: google.cloud.location.Locations.ListLocations
17-
description: Lists information about the supported locations for this service.
17+
description: |-
18+
Lists information about the supported locations for this service.
19+
This method can be called in two ways:
20+
21+
* **List all public locations:** Use the path `GET /v1/locations`.
22+
* **List project-visible locations:** Use the path
23+
`GET /v1/projects/{project_id}/locations`. This may include public
24+
locations as well as private or other locations specifically visible
25+
to the project.
1826
1927
http:
2028
rules:

google/cloud/confidentialcomputing/v1/service.proto

Lines changed: 125 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
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.
227327
message 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.
511616
message 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

google/cloud/confidentialcomputing/v1alpha1/BUILD.bazel

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,6 @@ load(
327327

328328
csharp_proto_library(
329329
name = "confidentialcomputing_csharp_proto",
330-
extra_opts = [],
331330
deps = [":confidentialcomputing_proto"],
332331
)
333332

0 commit comments

Comments
 (0)