@@ -237,6 +237,79 @@ message AttestedCosState {
237237 SemanticVersion launcher_version = 3 ;
238238 HealthMonitoringState health_monitoring = 4 ;
239239 GpuDeviceState gpu_device_state = 5 ;
240+ NvidiaAttestationReport nvidia_attestation_report = 6 ;
241+ }
242+
243+ // Enumerates the supported GPU architecture types.
244+ enum GpuArchitectureType {
245+ // Unspecified GPU architecture type.
246+ GPU_ARCHITECTURE_TYPE_UNSPECIFIED = 0 ;
247+ // Reserved for other GPU architecture types to support future use cases.
248+ reserved 1 , 2 , 3 , 4 , 5 , 6 , 7 ;
249+ // Hopper GPU architecture type.
250+ GPU_ARCHITECTURE_TYPE_HOPPER = 8 ;
251+ // Blackwell GPU architecture type.
252+ GPU_ARCHITECTURE_TYPE_BLACKWELL = 10 ;
253+ }
254+
255+ message GpuInfo {
256+ // The unique identifier of the GPU.
257+ string uuid = 1 ;
258+
259+ // Driver version obtained from the GPU's attestation report.
260+ string driver_version = 2 ;
261+
262+ // VBIOS version obtained from the GPU's attestation report.
263+ string vbios_version = 3 ;
264+
265+ // The architecture type of the GPU.
266+ GpuArchitectureType gpu_architecture_type = 4 ;
267+
268+ // The verified attestation certificate chain for the GPU device.
269+ bytes attestation_certificate_chain = 5 ;
270+
271+ // This field contains SPDM request/response defined in
272+ // https://www.dmtf.org/sites/default/files/standards/documents/DSP0274_1.1.0.pdf
273+ bytes attestation_report = 6 ;
274+ }
275+
276+ // An Nvidia attestation report for GPU and NVSwitch devices.
277+ // Contains necessary attestation evidence that the client collects for
278+ // verification.
279+ message NvidiaAttestationReport {
280+ // Single GPU Passthrough (SPT) attestation.
281+ message SinglePassthroughAttestation {
282+ // Single GPU quote.
283+ GpuInfo gpu_quote = 1 ;
284+ }
285+
286+ // MultiGpuSecurePassthroughAttestation contains the attestation evidence
287+ // for a Multi-GPU Secure Passthrough (MPT) attestation.
288+ message MultiGpuSecurePassthroughAttestation {
289+ // A list of GPU quotes.
290+ repeated GpuInfo gpu_quotes = 1 ;
291+ }
292+
293+ // The Confidential Computing feature that the attestation is for.
294+ oneof cc_feature {
295+ // Single GPU Passthrough (SPT) attestation.
296+ SinglePassthroughAttestation spt = 1 ;
297+
298+ // Multi-GPU Secure Passthrough (MPT) attestation.
299+ MultiGpuSecurePassthroughAttestation mpt = 3 ; // MPT attestation.
300+ }
301+
302+ // The nonce used for GPU attestation.
303+ bytes nonce = 4 ;
304+
305+ reserved 2 ;
306+ }
307+
308+ message DeviceAttestationReport {
309+ oneof report {
310+ // An Nvidia attestation report for GPU and NVSwitch devices.
311+ NvidiaAttestationReport nvidia_report = 1 ;
312+ }
240313}
241314
242315message EfiApp {
0 commit comments