Skip to content

V2-03: Freeze evidence schema v2 and the detached signature manifest #10

Description

@DevFoundry-labs

Outcome

Freeze a portable evidence format that separately establishes byte integrity, trusted signing origin, and control assurance quality.

Contract requirements

  • Define allowlisted evidence schema v2 and stable collection/timestamp ordering.
  • Freeze canonical UTF-8 bytes and completion-event cutoff behavior.
  • Define a domain-separated signing statement containing evidence digest, case ID, schema version, completion event hash, and key ID.
  • Use Ed25519 with a detached deterministic manifest.
  • Require an operator-supplied trusted public key or pinned fingerprint by default.
  • Define signed, unsigned, legacy-v1, digest-mismatch, signature-failure, and trust-anchor-mismatch results.
  • Define key loading, rotation, encrypted-key behavior, and signing-required failure semantics.
  • Freeze CLI exit codes and machine-readable output.
  • Publish cross-platform golden evidence/signature vectors and tamper cases.

Acceptance criteria

  • A verifier can validate transferred evidence without database access.
  • A bundled public key is never silently treated as trusted origin.
  • Historical evidence remains verifiable after key rotation.
  • Re-export at the same completion cutoff produces identical evidence bytes.
  • Private signing material cannot enter SQLite, logs, evidence, fixtures, or distributions.
  • Evidence v1 remains readable and is accurately labeled legacy_digest_only.

Planning source

.dev/v2/EVIDENCE_V2_SPEC.md.

Dependencies

Blocked by #8. Pilot evidence-consumer and key-ownership findings must be reflected before implementation issues open.

Metadata

Metadata

Assignees

No one assigned

    Labels

    evidenceAudit evidence, signatures, or verificationsecuritySecurity boundary, threat model, or assurance worksize:MMedium change with several acceptance pathsv2Planned for the v0.2.0 pilot-ready release

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions