object

# `jwt_jwk`

JSON Web Key normalization and key material helpers.

Availability:
`logtalk_load(jwt(loader))`
Author: Paulo Moura
Version: 1:0:0
Date: 2026-07-06
Compilation flags:
`static, context_switching_calls`
Imports:
`public` jwt_helpers
Uses:
jwt_der
Remarks:
(none)
Inherited public predicates:
check_option/1 check_options/1 default_option/1 default_options/1 option/2 option/3 valid_option/1 valid_options/1

## Public predicates

### `public_key_pem/2`

Converts a supported JWK public key into PEM SubjectPublicKeyInfo text.

Compilation flags:
`static`
Template:
`public_key_pem(Key,PEM)`
Mode and number of proofs:
`public_key_pem(+term,-atom)` - `one_or_error`
Exceptions:
`Key` is not a supported RSA or P-256 EC public JWK:
`domain_error(jwt_jwk_public_key,Key)`
`Key` contains Base64URL data with characters outside the Base64URL alphabet:
`representation_error(base64)`

### `symmetric_key_bytes/2`

Extracts symmetric key bytes from an atom, byte wrapper, or octet JWK.

Compilation flags:
`static`
Template:
`symmetric_key_bytes(Key,Bytes)`
Mode and number of proofs:
`symmetric_key_bytes(+term,-list(byte))` - `one_or_error`
Exceptions:
`Key` is not an atom, byte wrapper, or octet JWK with Base64URL key material:
`domain_error(jwt_symmetric_key,Key)`
`Key` contains Base64URL data with characters outside the Base64URL alphabet:
`representation_error(base64)`

### `compatible_key/2`

Succeeds when a key is compatible with the requested JWT algorithm.

Compilation flags:
`static`
Template:
`compatible_key(Key,Algorithm)`
Mode and number of proofs:
`compatible_key(+term,+atom)` - `zero_or_one`

## Protected predicates

(no local declarations; see entity ancestors if any)

## Private predicates

(no local declarations; see entity ancestors if any)

## Operators

(none)