GPU Evidence Source#

Functions for creating GPU evidence sources.

Functions#

void nvat_gpu_evidence_source_free(nvat_gpu_evidence_source_t *gpu_evidence_source)

nvat_rc_t nvat_gpu_evidence_source_from_json_file(nvat_gpu_evidence_source_t *out_source, const char *file_path)

Create a nvat_gpu_evidence_source that will read existing evidence from the given source file.

nvat_rc_t nvat_gpu_evidence_source_nvml_create(nvat_gpu_evidence_source_t *out_source)

Create a nvat_gpu_evidence_source that will collect evidence from all GPUs accessible on the system via NVML.

Functions#

void nvat_gpu_evidence_source_free(
nvat_gpu_evidence_source_t *gpu_evidence_source,
)#
nvat_rc_t nvat_gpu_evidence_source_from_json_file(
nvat_gpu_evidence_source_t *out_source,
const char *file_path,
)#

Create a nvat_gpu_evidence_source that will read existing evidence from the given source file.

The source file must be a JSON file with the following schema:

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "version": {
        "type": "string",
        "description": "The version of the evidence format.",
        "enum": ["1.0"]
      },
      "arch": {
        "type": "string",
        "description": "The GPU architecture of the evidence.",
        "enum": ["Hopper", "Blackwell"]
      },
      "nonce": {
        "type": "string",
        "description": "The nonce used to collect the evidence.",
        "format": "hex"
      },
      "vbios_version": {
        "type": "string",
        "description": "The version of the BIOS.",
        "format": "hex"
      },
      "driver_version": {    
        "type": "string",
        "description": "The version of the driver.",
        "format": "hex"
      },
      "evidence": {
        "type": "string",
        "description": "The base64-encoded evidence.",
        "format": "base64"
      },
      "certificate": {
        "type": "string",
        "description": "The base64-encoded certificate chain.",
        "format": "base64"
      }
    }
  }
}

Parameters:
  • out_source – A pointer to the evidence source that will return the evidence from the file.

  • file_path – The path to the file to deserialize the evidence from.

nvat_rc_t nvat_gpu_evidence_source_nvml_create(
nvat_gpu_evidence_source_t *out_source,
)#

Create a nvat_gpu_evidence_source that will collect evidence from all GPUs accessible on the system via NVML.