Configure the CoRIM verifier#
Note: The CoRIM verifier is experimental. It is the direction for NVIDIA’s attestation-verification workflow, but its behavior, interfaces, supported evidence, and EAR output may change.
This page describes configuration for the CoRIM verifier. It is separate from the legacy attestation configuration, which uses an attestation context and a claims collection. For the end-to-end CoRIM workflow, see the CoRIM verifier guide.
HTTP and TLS#
The CoRIM store, OCSP client, and remote EAR verification APIs accept
nvat_http_options_t. Pass NULL to use the SDK defaults, or create options
with nvat_http_options_create_default() to configure retries, backoff,
connection and request timeouts, and custom TLS CA locations. Use the same
options handle for the components that should share those settings.
CoRIM sources#
Create nvat_corim_store_t before the local verifier. A new store includes
the NVIDIA RIM allowlist prefix. Configure the store before passing it to
nvat_local_corim_verifier_create(), which takes ownership on success.
Use nvat_corim_store_add_allowed_url_prefix() to permit additional
HTTPS rim-locator prefixes. The prefix check applies to the URL provided in the
evidence, before any rewrite.
Use nvat_corim_store_add_url_rewrite() when an allowed locator must be
fetched from a mirror or staging endpoint. A rewrite substitutes the first
matching prefix; rules are evaluated in insertion order. Because the original
URL is still allowlisted, a rewrite does not broaden which evidence-supplied
locators are accepted.
For repeated appraisals, enable the store cache before creating the verifier:
rc = nvat_corim_store_enable_in_memory_cache(
store, 16 * 1024 * 1024, 300); /* 16 MiB, five minutes */
The cache is bounded by total entry size and uses the effective URL after rewrites as its key. Select the size and lifetime to match the deployment’s reference-manifest update and availability requirements.
Verification controls#
CoRIM signature verification and certificate-revocation checking are enabled by default. Keep both enabled in production:
nvat_local_corim_verifier_set_verify_rim_signature()accepts unsigned CoRIMs when disabled.nvat_local_corim_verifier_set_verify_revocation()skips device and CoRIM signing-chain revocation checks when disabled.
These controls are intended for controlled development fixtures, not as a way to work around trust or availability failures in a deployed verifier.
Fallback inputs and input digests#
When evidence has no RIM locators, register fallback locators with
nvat_local_corim_verifier_add_backup_rim_locator(). When SPDM evidence
does not provide ECTs, set fallback ConciseEvidence with
nvat_local_corim_verifier_set_backup_spdm_coev(). These are fallbacks;
they do not replace valid data supplied by the evidence.
The verifier emits ear_nvidia_inputs.digests using SHA-256 by default when a
request does not specify digest algorithms. Change the default with
nvat_local_corim_verifier_set_default_hash_algorithms(), or pass zero
algorithms to disable this output. Algorithms requested by the input take
precedence over the default.
Signed EAR verification#
At a remote relying-party boundary, use the HTTP options above with
nvat_verify_ear(). Its optional nvat_jwt_validation_options_t controls
the allowed clock skew for iat, nbf, and exp; a default options handle
uses 60 seconds. See Signed EARs at a remote relying party
for the authentication and policy flow.