Skip to content

docs: RFC 9421 proof capture profile#379

Merged
jithinraj merged 5 commits intomainfrom
docs/rfc9421-proof-profile
Feb 15, 2026
Merged

docs: RFC 9421 proof capture profile#379
jithinraj merged 5 commits intomainfrom
docs/rfc9421-proof-profile

Conversation

@jithinraj
Copy link
Member

Summary

  • Add normative profile spec (docs/specs/PEAC-PROOF-RFC9421.md) defining how receipts capture RFC 9421 HTTP Message Signature verification results
  • Add non-wire extension schema (specs/extensions/rfc9421-proof/0.1/schema.json) for validating the org.peacprotocol/rfc9421-proof@0.1 extension payload
  • Add 5 conformance vectors covering the full result space: verified, expired, key-not-found, base-mismatch, and verified-with-full-metadata
  • Update specs/conformance/fixtures/manifest.json with the new fixture entry

Design decisions

  • Extension on http.request interactions -- no new registry entries needed (http.request kind already exists)
  • Three-state result: verified / failed / unavailable (DD-49 alignment with policy binding model)
  • Privacy by construction: covered_components contains component names only (e.g., @method, content-digest), never actual header values
  • canonical_base_sha256: SHA-256 hash of the signature base string for audit trail, preferred over storing the raw base string
  • 6 reason codes: sig_valid, sig_expired, sig_future, sig_key_not_found, sig_alg_unsupported, sig_base_mismatch
  • No REGISTRIES.md changes -- the extension key is scoped to interaction evidence, not a new top-level registry entry

Test plan

  • JSON files parse without errors
  • pnpm build && pnpm lint && pnpm typecheck:core && pnpm test -- all pass (3734 tests)
  • bash scripts/guard.sh -- all checks pass
  • pnpm format:check -- clean
  • bash scripts/check-planning-leak.sh -- clean
  • Manifest hygiene test passes (version consistency within interaction category)

…mance vectors

- Add PEAC-PROOF-RFC9421.md normative profile spec defining how receipts
  capture RFC 9421 HTTP Message Signature verification results
- Add extension schema (specs/extensions/rfc9421-proof/0.1/schema.json)
  for validating the org.peacprotocol/rfc9421-proof@0.1 extension payload
- Add 5 conformance vectors: verified-signature, expired-signature,
  key-not-found, base-mismatch, verified-full-metadata
- Update manifest.json with rfc9421-proof fixture entry

Design decisions:
- Extension lives on http.request interactions (no new registry entries)
- Three-state result: verified/failed/unavailable (DD-49 alignment)
- Privacy by construction: covered_components = names only, never values
- canonical_base_sha256 for audit trail (not raw base string)
- Add RFC 9421 proof profile to SPEC_INDEX.md and specs/README.md
- Create conformance test validating fixtures against both
  InteractionEvidenceV01Schema (Zod) and extension JSON Schema (Ajv)
- Change "Minimum PEAC Version" to "Introduced in" in profile spec
Add Related Profiles section to TRANSPORT-PROFILES.md linking to
PEAC-PROOF-RFC9421.md for discoverability. Filed #380 for fixture
versioning model follow-up.
Create PROFILES.md as the central index for transport, proof capture,
and wire format profiles. Links from SPEC_INDEX.md and
TRANSPORT-PROFILES.md. Documents design principles (independence,
verification equivalence, extension-based, three-state results) and
lists upcoming profile categories.
@jithinraj jithinraj changed the title docs: RFC 9421 proof capture profile + extension schema + conformance vectors docs: RFC 9421 proof capture profile Feb 15, 2026
@jithinraj jithinraj merged commit 2946d8b into main Feb 15, 2026
7 checks passed
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