BoundedAuthorityProtocol. ContentAssertion. V1
(Bounded Authority Protocol v1.0.0)
Copy Markdown
View Source
Explicit standalone content-assertion profile: signatures bind exact content digests, caller-supplied context and a bounded window. Verification never grants authority. The caller owns content semantics, trusted key selection, replay and durable lineage state.
Summary
Producers
Assembles and revalidates this profile at the maximum bounds.
Assembles and revalidates this profile under tightened bounds.
Hashes exact profile-parseable compact bytes; establishes no signature or trust.
Produces deterministic signing bytes for this closed profile.
Hashes nonempty exact content bytes in the fixed content domain; never parses them.
Decoders
Decodes bounded fields without evaluating the signature or trust.
Verifiers
Verifies against explicit public trust, complete expected context and time.
Checks pairwise lineage facts; caller owns their provenance, current trust and high-water state.
Producers
@spec assemble_compact(BoundedAuthorityProtocol.V1.SigningInput.t(), binary()) :: {:ok, binary()} | {:error, :invalid}
Assembles and revalidates this profile at the maximum bounds.
@spec assemble_compact( BoundedAuthorityProtocol.V1.SigningInput.t(), binary(), BoundedAuthorityProtocol.V1.Bounds.t() | map() ) :: {:ok, binary()} | {:error, :invalid}
Assembles and revalidates this profile under tightened bounds.
Since 0.9.0, assembly also refuses, with {:error, :invalid}, a
signature that no conforming signer emits: an Ed25519 signature whose S is not below the group
order or whose R is non-canonical or of small order (erratum 3). It never rewrites the
signature bytes it accepts.
@spec assertion_digest(binary(), BoundedAuthorityProtocol.V1.Bounds.t() | map()) :: {:ok, binary()} | {:error, :invalid}
Hashes exact profile-parseable compact bytes; establishes no signature or trust.
@spec assertion_signing_input( BoundedAuthorityProtocol.ContentAssertion.V1.ContentAssertion.t(), BoundedAuthorityProtocol.V1.Bounds.t() | map() ) :: {:ok, BoundedAuthorityProtocol.V1.SigningInput.t()} | {:error, :invalid}
Produces deterministic signing bytes for this closed profile.
@spec content_digest(binary(), BoundedAuthorityProtocol.V1.Bounds.t() | map()) :: {:ok, binary()} | {:error, :invalid}
Hashes nonempty exact content bytes in the fixed content domain; never parses them.
Decoders
@spec decode_assertion(binary(), BoundedAuthorityProtocol.V1.Bounds.t() | map()) :: {:ok, BoundedAuthorityProtocol.ContentAssertion.V1.DecodedContentAssertion.t()} | {:error, :invalid}
Decodes bounded fields without evaluating the signature or trust.
Verifiers
@spec verify_assertion( binary(), BoundedAuthorityProtocol.ContentAssertion.V1.ExpectedContentAssertion.t() ) :: {:ok, BoundedAuthorityProtocol.ContentAssertion.V1.ContentAssertionFacts.t()} | {:error, :invalid}
Verifies against explicit public trust, complete expected context and time.
@spec verify_successor( BoundedAuthorityProtocol.ContentAssertion.V1.ContentAssertionFacts.t(), BoundedAuthorityProtocol.ContentAssertion.V1.ContentAssertionFacts.t(), BoundedAuthorityProtocol.V1.Bounds.t() | map() ) :: :ok | {:error, :invalid}
Checks pairwise lineage facts; caller owns their provenance, current trust and high-water state.