BoundedAuthorityProtocol.V1.DecodedProof (Bounded Authority Protocol v1.0.0)

Copy Markdown View Source

Closed bounded decoded proof with explicitly unevaluated verification.

Returned by BoundedAuthorityProtocol.V1.decode_proof/2 for diagnosis only; it is never a verified value.

Fields

  • version - the contract-major, always 1.
  • proof_id - the jti claim: non-empty StringOrURI of at most identifier_bytes (512) UTF-8 bytes.
  • method - the htm claim, byte-for-byte as signed.
  • target_uri - the htu claim; decode refuses a value that is not already in normal form.
  • issued_at - the iat claim, integer Unix time in seconds.
  • nonce - the nonce claim, or nil when absent. Redacted by inspect/2.
  • invocation_id - the ba_inv claim, a lowercase RFC 4122 UUID.
  • operation - the ba_op claim, the operation name.
  • grant_hash - the decoded ath claim: the raw 32-byte SHA-256 of the grant compact the proof names.
  • request_hash - the decoded ba_req claim: the raw 32-byte request digest.
  • holder_public_key - the holder's raw 32-byte Ed25519 public key, decoded from the header JWK.
  • holder_thumbprint - the raw 32-byte RFC 7638 thumbprint of the header JWK.
  • verification - always :not_evaluated: no signature, key or expected context was checked.

Summary

Types

t()

An unverified decoded proof.

Types

t()

@type t() :: %BoundedAuthorityProtocol.V1.DecodedProof{
  grant_hash: binary(),
  holder_public_key: binary(),
  holder_thumbprint: binary(),
  invocation_id: binary(),
  issued_at: integer(),
  method: binary(),
  nonce: nil | binary(),
  operation: binary(),
  proof_id: binary(),
  request_hash: binary(),
  target_uri: binary(),
  verification: :not_evaluated,
  version: 1
}

An unverified decoded proof.