Did you know ... Search Documentation:
Pack logtalk -- logtalk-3.102.0/docs/apis/_sources/paseto_0.rst.txt

.. index:: single: paseto .. _paseto/0:

.. rst-class:: right

object

paseto

Facade for PASETO v4 JSON claims encryption, signing, authentication, validation, and key selection.

| Availability: | logtalk_load(paseto(loader))

| Author: Paulo Moura | Version: 1:0:0 | Date: 2026-08-08

| Compilation flags: | static, context_switching_calls

| Imports: | public :ref:`paseto_helpers <paseto_helpers/0>` | public :ref:`paseto_claims_helpers <paseto_claims_helpers/0>` | Uses: | :ref:`list <list/0>` | :ref:`paseto_claims <paseto_claims/0>` | :ref:`paseto_keys <paseto_keys/0>` | :ref:`paseto_v4 <paseto_v4/0>`

| Remarks: | (none)

| Inherited public predicates: | Â :ref:`options_protocol/0::check_option/1` Â :ref:`options_protocol/0::check_options/1` Â :ref:`options_protocol/0::default_option/1` Â :ref:`options_protocol/0::default_options/1` Â :ref:`options_protocol/0::option/2` Â :ref:`options_protocol/0::option/3` Â :ref:`options_protocol/0::valid_option/1` Â :ref:`options_protocol/0::valid_options/1` Â

.. contents:: :local: :backlinks: top

Public predicates

.. index:: encrypt/4 .. _paseto/0::encrypt/4:

encrypt/4 ^^^^^^^^^^^^^

Encrypts a JSON claims object as a v4.local token.

| Compilation flags: | static

| Template: | encrypt(Claims,Key,Token,Options) | Mode and number of proofs: | encrypt(+term,+list(byte),-atom,+list(compound)) - one_or_error

| Exceptions: | Claims is not a JSON object or contains duplicate members: | domain_error(paseto_json_object,Claims) | Key is not a list of 32 bytes: | type_error(list(byte,32),Key) | The footer kid conflicts with the key_id/1 option: | domain_error(paseto_footer_key_id,Existing-KeyId) | Options is a variable: | instantiation_error | Options is neither a variable nor a list: | type_error(list,Options) | An element Option of the list Options is a variable: | instantiation_error | An element Option of the list Options is neither a variable nor a compound term: | type_error(compound,Option) | An element Option of the list Options is a compound term but not a valid option: | domain_error(option,Option)


.. index:: decrypt/4 .. _paseto/0::decrypt/4:

decrypt/4 ^^^^^^^^^^^^^

Authenticates and decrypts a v4.local claims token using a key or key set.

| Compilation flags: | static

| Template: | decrypt(Token,KeyOrKeySet,Claims,Options) | Mode and number of proofs: | decrypt(+atom,+term,-term,+list(compound)) - zero_or_one_or_error

| Exceptions: | Token is not a canonical v4.local token: | domain_error(paseto_v4_token,Token) | KeyOrKeySet is an invalid key set: | domain_error(paseto_key_set,KeyOrKeySet) | No key can be selected from KeyOrKeySet: | existence_error(paseto_key,local-KeyId) | The authenticated payload is not a JSON object: | domain_error(paseto_json_object,Claims) | The claims do not satisfy the validation policy: | domain_error(paseto_claims,Reason) | Options is a variable: | instantiation_error | Options is neither a variable nor a list: | type_error(list,Options) | An element Option of the list Options is a variable: | instantiation_error | An element Option of the list Options is neither a variable nor a compound term: | type_error(compound,Option) | An element Option of the list Options is a compound term but not a valid option: | domain_error(option,Option)


.. index:: decrypt/5 .. _paseto/0::decrypt/5:

decrypt/5 ^^^^^^^^^^^^^

Authenticates and decrypts a v4.local claims token and returns its authenticated footer JSON object.

| Compilation flags: | static

| Template: | decrypt(Token,KeyOrKeySet,Claims,Footer,Options) | Mode and number of proofs: | decrypt(+atom,+term,-term,-term,+list(compound)) - zero_or_one_or_error

| Exceptions: | Token is not a canonical v4.local token: | domain_error(paseto_v4_token,Token) | KeyOrKeySet is an invalid key set: | domain_error(paseto_key_set,KeyOrKeySet) | No key can be selected from KeyOrKeySet: | existence_error(paseto_key,local-KeyId) | The authenticated payload or footer is not a JSON object: | domain_error(paseto_json_object,JSON) | The claims do not satisfy the validation policy: | domain_error(paseto_claims,Reason) | Options is a variable: | instantiation_error | Options is neither a variable nor a list: | type_error(list,Options) | An element Option of the list Options is a variable: | instantiation_error | An element Option of the list Options is neither a variable nor a compound term: | type_error(compound,Option) | An element Option of the list Options is a compound term but not a valid option: | domain_error(option,Option)


.. index:: sign/4 .. _paseto/0::sign/4:

sign/4 ^^^^^^^^^^

Signs a JSON claims object as a v4.public token using an Ed25519 seed.

| Compilation flags: | static

| Template: | sign(Claims,Seed,Token,Options) | Mode and number of proofs: | sign(+term,+list(byte),-atom,+list(compound)) - one_or_error

| Exceptions: | Claims is not a JSON object or contains duplicate members: | domain_error(paseto_json_object,Claims) | Seed is not a list of 32 bytes: | type_error(list(byte,32),Seed) | The footer kid conflicts with the key_id/1 option: | domain_error(paseto_footer_key_id,Existing-KeyId) | Options is a variable: | instantiation_error | Options is neither a variable nor a list: | type_error(list,Options) | An element Option of the list Options is a variable: | instantiation_error | An element Option of the list Options is neither a variable nor a compound term: | type_error(compound,Option) | An element Option of the list Options is a compound term but not a valid option: | domain_error(option,Option)


.. index:: verify/4 .. _paseto/0::verify/4:

verify/4 ^^^^^^^^^^^^

Authenticates and validates a v4.public claims token using a public key or key set.

| Compilation flags: | static

| Template: | verify(Token,KeyOrKeySet,Claims,Options) | Mode and number of proofs: | verify(+atom,+term,-term,+list(compound)) - zero_or_one_or_error

| Exceptions: | Token is not a canonical v4.public token: | domain_error(paseto_v4_token,Token) | KeyOrKeySet is an invalid key set: | domain_error(paseto_key_set,KeyOrKeySet) | No key can be selected from KeyOrKeySet: | existence_error(paseto_key,(public-KeyId)) | The authenticated payload is not a JSON object: | domain_error(paseto_json_object,Claims) | The claims do not satisfy the validation policy: | domain_error(paseto_claims,Reason) | Options is a variable: | instantiation_error | Options is neither a variable nor a list: | type_error(list,Options) | An element Option of the list Options is a variable: | instantiation_error | An element Option of the list Options is neither a variable nor a compound term: | type_error(compound,Option) | An element Option of the list Options is a compound term but not a valid option: | domain_error(option,Option)


.. index:: verify/5 .. _paseto/0::verify/5:

verify/5 ^^^^^^^^^^^^

Authenticates and validates a v4.public claims token and returns its authenticated footer JSON object.

| Compilation flags: | static

| Template: | verify(Token,KeyOrKeySet,Claims,Footer,Options) | Mode and number of proofs: | verify(+atom,+term,-term,-term,+list(compound)) - zero_or_one_or_error

| Exceptions: | Token is not a canonical v4.public token: | domain_error(paseto_v4_token,Token) | KeyOrKeySet is an invalid key set: | domain_error(paseto_key_set,KeyOrKeySet) | No key can be selected from KeyOrKeySet: | existence_error(paseto_key,(public-KeyId)) | The authenticated payload or footer is not a JSON object: | domain_error(paseto_json_object,JSON) | The claims do not satisfy the validation policy: | domain_error(paseto_claims,Reason) | Options is a variable: | instantiation_error | Options is neither a variable nor a list: | type_error(list,Options) | An element Option of the list Options is a variable: | instantiation_error | An element Option of the list Options is neither a variable nor a compound term: | type_error(compound,Option) | An element Option of the list Options is a compound term but not a valid option: | domain_error(option,Option)


.. index:: claims/2 .. _paseto/0::claims/2:

claims/2 ^^^^^^^^^^^^

Decodes claims from a v4.public token without authenticating them. Rejects local tokens. The result must not be trusted.

| Compilation flags: | static

| Template: | claims(Token,Claims) | Mode and number of proofs: | claims(+atom,-term) - one_or_error

| Exceptions: | Token is a variable: | instantiation_error | Token is neither a variable nor an atom: | type_error(atom,Token) | Token is not a canonical v4.public token: | domain_error(paseto_v4_token,Token) | Token has a malformed public payload: | domain_error(paseto_v4_public_payload,Token) | Token payload is not a JSON object: | domain_error(paseto_json_object,Claims)


.. index:: claim/3 .. _paseto/0::claim/3:

claim/3 ^^^^^^^^^^^

Looks up a value in a claims object.

| Compilation flags: | static

| Template: | claim(Claims,Name,Value) | Mode and number of proofs: | claim(+term,+atom,-term) - zero_or_one


.. index:: validate_claims/3 .. _paseto/0::validate_claims/3:

validate_claims/3 ^^^^^^^^^^^^^^^^^^^^^

Validates a claims object using a policy list and options.

| Compilation flags: | static

| Template: | validate_claims(Claims,Policy,Options) | Mode and number of proofs: | validate_claims(+term,+list(compound),+list(compound)) - one_or_error

| Exceptions: | Claims is not a JSON object or contains duplicate members: | domain_error(paseto_json_object,Claims) | Claims is missing a required claim Name: | domain_error(paseto_claims,missing(Name)) | Policy contains an invalid claim policy: | domain_error(paseto_claim_policy,ClaimPolicy) | A time claim has a non-numeric value: | type_error(time_number,Name-Value) | Options is a variable: | instantiation_error | Options is neither a variable nor a list: | type_error(list,Options) | An element Option of the list Options is a variable: | instantiation_error | An element Option of the list Options is neither a variable nor a compound term: | type_error(compound,Option) | An element Option of the list Options is a compound term but not a valid option: | domain_error(option,Option)


.. index:: validate_claim/3 .. _paseto/0::validate_claim/3:

validate_claim/3 ^^^^^^^^^^^^^^^^^^^^

Validates one claim policy.

| Compilation flags: | static

| Template: | validate_claim(Claims,ClaimPolicy,Options) | Meta-predicate template: | validate_claim(*,*,*) | Mode and number of proofs: | validate_claim(+term,+compound,+list(compound)) - one_or_error

| Exceptions: | Claims is missing the required claim Name: | domain_error(paseto_claims,missing(Name)) | The value of claim Name does not satisfy the policy: | domain_error(paseto_claim(Name),Value) | ClaimPolicy is not a supported claim policy: | domain_error(paseto_claim_policy,ClaimPolicy) | A time claim has an unknown validation kind: | domain_error(paseto_time_claim_kind,Kind) | A time claim has a non-numeric value: | type_error(time_number,Name-Value) | Options is a variable: | instantiation_error | Options is neither a variable nor a list: | type_error(list,Options) | An element Option of the list Options is a variable: | instantiation_error | An element Option of the list Options is neither a variable nor a compound term: | type_error(compound,Option) | An element Option of the list Options is a compound term but not a valid option: | domain_error(option,Option)


.. index:: peek_key_id/2 .. _paseto/0::peek_key_id/2:

peek_key_id/2 ^^^^^^^^^^^^^^^^^

Reads a kid value from the unauthenticated token footer for key selection. The result must not be trusted.

| Compilation flags: | static

| Template: | peek_key_id(Token,KeyId) | Mode and number of proofs: | peek_key_id(+atom,-atom) - zero_or_one_or_error

| Exceptions: | Token is a variable: | instantiation_error | Token is neither a variable nor an atom: | type_error(atom,Token) | Token is not a canonical v4 token: | domain_error(paseto_v4_token,Token) | Token footer is not a JSON object: | domain_error(paseto_json_object,Footer)


.. index:: validate_key_set/1 .. _paseto/0::validate_key_set/1:

validate_key_set/1 ^^^^^^^^^^^^^^^^^^^^^^

Validates a native PASETO key_set/1 term.

| Compilation flags: | static

| Template: | validate_key_set(KeySet) | Mode and number of proofs: | validate_key_set(+compound) - one_or_error

| Exceptions: | KeySet is not a valid key_set/1 term: | domain_error(paseto_key_set,KeySet) | KeySet contains an invalid key record Record: | domain_error(paseto_key_record,Record)


Protected predicates

(no local declarations; see entity ancestors if any)

Private predicates

(no local declarations; see entity ancestors if any)

Operators

(none)