object

# `open_id_der`

DER and PEM helpers for OpenID Connect JWT signature verification.

Availability:
`logtalk_load(open_id(loader))`
Author: Paulo Moura
Version: 1:0:0
Date: 2026-07-08
Compilation flags:
`static, context_switching_calls`
Imports:
`public` open_id_helpers
Uses:
base64
list
user
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(open_id_jwk_public_key,Key)`
`Key` contains Base64URL data with characters outside the Base64URL alphabet:
`representation_error(base64)`

### `es256_signature_der/2`

Converts a raw ES256 signature into DER-encoded ASN.1 form.

Compilation flags:
`static`
Template:
`es256_signature_der(Signature,DER)`
Mode and number of proofs:
`es256_signature_der(+list(byte),-list(byte))` - `one_or_error`
Exceptions:
`Signature` is not a 64-byte raw ES256 signature:
`domain_error(open_id_es256_signature,Signature)`

## Protected predicates

(no local declarations; see entity ancestors if any)

## Private predicates

(no local declarations; see entity ancestors if any)

## Operators

(none)