Skip to content

proof.objects@1 — envelope/JCS/hash-chain/schema validation #4

Description

@iret77

proof.objects@1 — envelope / JCS canonicalization / hash chain / schema validation. The correctness keystone of the whole project (R6): if two implementations don't canonicalize byte-identically, multi-party co-signing is dead. Pure, deterministic logic — no I/O, no chain.

Verification (research.md, A1): ANP §6.3 confirms the two canonical forms (signing form without proof; anchored form with proof), JCS (RFC 8785), and "proof[] entries MUST appear in the same order as their corresponding signers[]" — exactly this interface.

Scope (ProofObjectsService, plan.md §5.2)

  • buildEnvelope(input) — ANP §6.1
  • canonicalizeForSigning(obj) — JCS, proof removed (ANP §6.3)
  • canonicalizeAnchored(obj) — incl. proof[]
  • assembleProofs(obj, sigs) — deterministic order (ANP §6.3, "byte-identical anchored form")
  • validate(obj) — against the registered JSON schema
  • Conformance test vectors from ANP Appendix A as fixtures (A1)
  • Pin anp_version + hash against the content-addressed registry (research.md F6)

Done

Byte-identical canonicalization across two independent runs · all Appendix-A vectors green · CI gate active.

ANP backflow (mandatory, §1.4)

Defines the memorandum schema → simultaneous PR against byte5ai/anp Appendix A (see matrix #2).

Blocked by: schema matrix (#2), naming (#1).
Refs: plan.md §4.1, §5.2, R6.

Metadata

Metadata

Assignees

No one assigned

    Labels

    anp-backflowTriggers a mandatory PR in byte5ai/anparea/objectsproof.objects@1 — envelope / JCS / hash chain / schematype/riskRisk mitigation (R-number)

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions