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)
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.
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.Scope (
ProofObjectsService, plan.md §5.2)buildEnvelope(input)— ANP §6.1canonicalizeForSigning(obj)— JCS,proofremoved (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 schemaanp_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
memorandumschema → simultaneous PR againstbyte5ai/anpAppendix A (see matrix #2).Blocked by: schema matrix (#2), naming (#1).
Refs: plan.md §4.1, §5.2, R6.