From 82970edd1df819f89c7106f0599db21f0c320890 Mon Sep 17 00:00:00 2001 From: Ralf Anton Beier Date: Sat, 8 Aug 2026 09:16:16 +0200 Subject: [PATCH] =?UTF-8?q?rivet:=20REQ-23=20verified=20=E2=80=94=20real?= =?UTF-8?q?=20offline=20keyless=20verification=20landed=20(#229)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merged to main as 255a597; oracle 619/0, clean-room all-confirmed, #219 closed. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_012aR3Md1h46K9wAUWMQiESH --- artifacts/dev/features.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/artifacts/dev/features.yaml b/artifacts/dev/features.yaml index f7eb877..ecf4afc 100644 --- a/artifacts/dev/features.yaml +++ b/artifacts/dev/features.yaml @@ -653,7 +653,7 @@ artifacts: - id: REQ-23 type: requirement title: Real offline keyless verification (Rekor SET + Fulcio chain + ECDSA P-256) - status: draft + status: verified description: "AirGappedVerifier::verify_crypto is a stub: it neither verifies the Rekor SET nor anchors the cert chain to the bundle's Fulcio roots, and extract_public_key_from_cert feeds full SPKI DER to an ed25519-only path that requires 32 raw bytes — so it fails for any real Fulcio cert (which are ECDSA P-256). Implement genuine offline Sigstore keyless verification: verify the Rekor inclusion/SET, anchor the leaf cert to provisioned Fulcio roots, support ECDSA P-256 (curve-agile, per DD-8), and add an in-library SigstoreBundle::verify(&trust_bundle, artifact_digest) so there is a verify-blob --bundle equivalent that does not shell out to cosign. Fails-closed today (errors), so not a silent-accept hole, but the advertised offline-keyless path is unusable. Unblocks varve offline manifest verification." tags: [soundness, keyless, offline, airgapped] fields: