CharterAgreementProtocol.PartyDescriptor (Charter Agreement Protocol v0.2.0)

Copy Markdown View Source

CAP never authorizes.

Closed Party Descriptor codec and predecessor-bound signature verifier.

Descriptor-chain continuity proves possession linkage between key sets. It does not establish organizational identity, legal validity, or authority.

Summary

Functions

Decode and structurally validate one canonical descriptor envelope.

Return the descriptor's domain-separated content digest.

Verify one descriptor at genesis or against an already verified predecessor.

Types

t()

@type t() :: %CharterAgreementProtocol.PartyDescriptor{
  attestation_hints: [
    CharterAgreementProtocol.PartyDescriptor.AttestationHint.t()
  ],
  descriptor_number: pos_integer(),
  effective_from: CharterAgreementProtocol.Timestamp.t(),
  envelope: CharterAgreementProtocol.CompactJws.t(),
  extension_outcome: CharterAgreementProtocol.Extension.Outcome.t(),
  extensions: CharterAgreementProtocol.Json.value(),
  party_id: nil | binary(),
  prev_descriptor_digest: nil | binary(),
  protocol_revision: 1 | 2,
  verification_keys: [
    CharterAgreementProtocol.PartyDescriptor.VerificationKey.t()
  ]
}

Functions

decode(compact, limits)

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

Decode and structurally validate one canonical descriptor envelope.

digest(party_descriptor)

@spec digest(t()) :: binary()

Return the descriptor's domain-separated content digest.

verify(compact, predecessor, limits)

Verify one descriptor at genesis or against an already verified predecessor.