Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions artifacts/dev/features.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -649,3 +649,45 @@ artifacts:
model: claude-opus-4-8
timestamp: 2026-08-07T11:40:52Z
release: v0.10.0

- id: REQ-23
type: requirement
title: Real offline keyless verification (Rekor SET + Fulcio chain + ECDSA P-256)
status: draft
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:
release: v0.11.0
provenance:
created-by: ai-assisted
model: claude-opus-4-8
timestamp: 2026-08-07T17:16:23Z
release: v0.11.0

- id: REQ-24
type: requirement
title: Lightweight DSSE verify — extract dsse off the 179-crate wsc tree
status: draft
description: "wsc::dsse (DSSE sign/verify over arbitrary blobs — what a downstream offline verifier wants) lives only in the full wsc crate, whose default build pulls 179 crates (ring, rustls, ureq, rcgen, x509-parser, p256, webpki-roots). The dsse module's real deps are just base64, serde, serde_json, ed25519-compact. Move dsse into wsc-verify-core (21 crates) or a new wsc-dsse crate so an embedded/offline consumer (varve, the on-target verifier in #187) can verify DSSE without the registry/network stack. Complements the offline-keyless work."
tags: [offline, dsse, embedded, dependency-hygiene]
fields:
release: v0.11.0
provenance:
created-by: ai-assisted
model: claude-opus-4-8
timestamp: 2026-08-07T17:16:23Z
release: v0.11.0

- id: REQ-25
type: requirement
title: Close verify-core's own MC/DC Partial gaps (witness scenarios)
status: draft
description: "The witness MC/DC gate is now scoped to verify-core's own decisions (#128, v0.10.0). Its two decisions — varint.rs:29 and wasm_module/mod.rs:455 — are Partial: 5 gap conditions on linux CI (3 + 2). Add witness scenarios that supply the missing unique-cause rows so both reach full MC/DC, then lower SRC_BASELINE_GAP accordingly. Turns the gate from regression-guard into a coverage-complete gate for verify-core."
tags: [mcdc, witness, verification-completeness]
fields:
release: v0.11.0
provenance:
created-by: ai-assisted
model: claude-opus-4-8
timestamp: 2026-08-07T17:16:23Z
release: v0.11.0
Loading