CharterAgreementProtocol (Charter Agreement Protocol v0.2.1)

Copy Markdown View Source

CAP never authorizes.

Charter Agreement Protocol.

The implemented foundation provides strict base64url, bounded deterministic JSON decoding, RFC 8785 canonicalization, domain-separated tagged digests, typed value-free errors, table-driven artifact validation, and a drift-resistant conformance-corpus loader. Artifact-specific verification surfaces land on top of this foundation.

Summary

Functions

Build an Acceptance signing input after honest-signer set checks.

Assemble a validated signing input and exact raw 64-byte signature.

Build a typed set of charter artifacts without verifying them.

Decode one canonical unsigned Charter Revision.

Decode one canonical attached Party Descriptor.

Return one decoded Party Descriptor's content digest.

Build a canonical Party Descriptor signing input without signing.

Compute the unique governing revision in a verified view at one UTC instant.

Build a canonical Receipt signing input without signing.

Return one decoded Charter Revision's content digest.

Build a Termination signing input after honest-signer set checks.

Verify one Acceptance against exact revision and descriptor-chain facts.

Verify a complete caller-supplied charter artifact view.

Verify one Party Descriptor at genesis or against a verified predecessor.

Verify a complete in-view descriptor chain and retain fork evidence.

Verify one receipt against revision-only or full-chain context.

Verify one termination notice against exact revision and descriptor-chain facts.

Functions

acceptance_signing_input(input, set)

Build an Acceptance signing input after honest-signer set checks.

assemble_compact(input, signature)

@spec assemble_compact(term(), term()) ::
  {:ok, binary()} | {:error, CharterAgreementProtocol.Error.t()}

Assemble a validated signing input and exact raw 64-byte signature.

build_set(revisions, acceptances, terminations, descriptors)

@spec build_set(term(), term(), term(), term()) ::
  {:ok, CharterAgreementProtocol.ArtifactSet.t()}
  | {:error, CharterAgreementProtocol.Error.t()}

Build a typed set of charter artifacts without verifying them.

decode_charter_revision(bytes, limits)

Decode one canonical unsigned Charter Revision.

decode_party_descriptor(compact, limits)

Decode one canonical attached Party Descriptor.

descriptor_digest(descriptor)

@spec descriptor_digest(CharterAgreementProtocol.PartyDescriptor.t()) :: binary()

Return one decoded Party Descriptor's content digest.

descriptor_signing_input(input)

@spec descriptor_signing_input(term()) ::
  {:ok, CharterAgreementProtocol.SigningInput.t()}
  | {:error, CharterAgreementProtocol.Error.t()}

Build a canonical Party Descriptor signing input without signing.

governing_revision(chain_facts, at)

@spec governing_revision(term(), term()) ::
  {:ok, binary() | :contested | :none}
  | {:error, CharterAgreementProtocol.Error.t()}

Compute the unique governing revision in a verified view at one UTC instant.

receipt_signing_input(input)

@spec receipt_signing_input(term()) ::
  {:ok, CharterAgreementProtocol.SigningInput.t()}
  | {:error, CharterAgreementProtocol.Error.t()}

Build a canonical Receipt signing input without signing.

revision_digest(revision)

@spec revision_digest(CharterAgreementProtocol.CharterRevision.t()) :: binary()

Return one decoded Charter Revision's content digest.

termination_signing_input(input, set)

Build a Termination signing input after honest-signer set checks.

verify_acceptance(compact, revision, descriptor_chain, limits)

Verify one Acceptance against exact revision and descriptor-chain facts.

verify_chain(revisions, acceptances, descriptors, terminations, limits)

Verify a complete caller-supplied charter artifact view.

verify_descriptor(compact, predecessor, limits)

Verify one Party Descriptor at genesis or against a verified predecessor.

verify_descriptor_chain(compacts, limits)

Verify a complete in-view descriptor chain and retain fork evidence.

verify_receipt(compact, context, limits)

Verify one receipt against revision-only or full-chain context.

verify_termination(compact, revision, descriptor_chain, limits)

Verify one termination notice against exact revision and descriptor-chain facts.