Skip to content

feat(attestation-api): expose GPU attestation through HTTP API#44

Draft
AmeanAsad wants to merge 2 commits into
feat/nvidia-gpu-atts-libfrom
feat/nvidia-gpu-atts-api
Draft

feat(attestation-api): expose GPU attestation through HTTP API#44
AmeanAsad wants to merge 2 commits into
feat/nvidia-gpu-atts-libfrom
feat/nvidia-gpu-atts-api

Conversation

@AmeanAsad

Copy link
Copy Markdown
Collaborator

Stacked on top of #43. Merge that first.

Summary

  • Wires the lib's GPU attestation into the REST service so one client can drive the full attest+verify flow over HTTP.
  • /attest accepts nvidia_gpu: true (gated by the new nvidia-gpu-attest feature) and returns a top-level nvidia_gpu bundle alongside CPU evidence.
  • /verify accepts nvidia_gpu plus nvidia_gpu_user_nonce / nvidia_gpu_required / nvidia_gpu_expected_archs, and surfaces verified GPU claims under result.claims.nvidia_gpu.
  • New CachedNrasProvider shares the service's moka cert cache for JWKS. JWKS is pre-warmed on startup and refreshed at half the configured TTL. NRAS URLs overridable via config or NV_NRAS_{GPU,SWITCH}_URL.
  • The nvidia-gpu-attest feature is opt-in — verifier-only deployments don't pull the NVIDIA C++ SDK / bindgen toolchain.

Test plan

  • cargo fmt --all -- --check
  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo test --workspace
  • /attest + /verify round-trip with nvidia_gpu: true on a CC-mode host

AmeanAsad added 2 commits May 24, 2026 12:44
Wires the NVIDIA GPU attestation primitives from the attestation crate
into the REST service so a single client can drive the full
attest+verify flow over HTTP.

  - /attest accepts `nvidia_gpu: true` (requires the new
    nvidia-gpu-attest feature) and returns a top-level `nvidia_gpu`
    bundle alongside the CPU evidence
  - /verify accepts the same `nvidia_gpu` field plus
    `nvidia_gpu_user_nonce` / `nvidia_gpu_required` /
    `nvidia_gpu_expected_archs` params and surfaces the verified GPU
    claims under `result.claims.nvidia_gpu`

The verifier is wired with a new CachedNrasProvider that shares the
service's moka cert cache for JWKS lookups. JWKS is pre-warmed on
startup, refreshed in the background at half the configured TTL, and
forcefully refetched on kid rotation. NRAS endpoint URLs can be
overridden via config or NV_NRAS_{GPU,SWITCH}_URL env vars.

The nvidia-gpu-attest cargo feature is opt-in: verifier-only
deployments don't pull the NVIDIA C++ SDK / bindgen toolchain. Default
builds remain SDK-free.
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.

1 participant