Package-level declarations

Types

Link copied to clipboard
@Serializable
data class WrpClaim(val path: List<WrpClaimPathSegment>, val values: List<WrpClaimValue>? = null)

ETSI TS 119 475 V1.2.1 Annex C claim selector. EUDI TS5 registers paths only; WRPRC authorization rejects values until value constraints can be evaluated.

Link copied to clipboard
sealed interface WrpClaimPathSegment

A segment of the path pointer of a WrpClaim (ETSI TS 119 475 V1.2.1, B.2.10), which follows the claims path pointer of OpenID4VP (OpenID4VP 1.0, 7): a string selects the key of an object, null all elements of an array, and a non-negative integer the element of an array at that index.

Link copied to clipboard

Encodes names, indices and wildcards as strings, non-negative integers and null in JSON and CBOR. CBOR decoding tries text before integer, relying on kotlinx-serialization (since 1.10.0) checking the major type before consuming input, as Signum's CoseHeaderSerializer does for x5chain.

Link copied to clipboard
@Serializable(with = WrpClaimValueSerializer::class)
sealed interface WrpClaimValue

An expected value of a WrpClaim: a string, an integer, or a boolean (ETSI TS 119 475 V1.2.1, B.2.10).

Link copied to clipboard
object WrpClaimValueSerializer : KSerializer<WrpClaimValue>

Serializes a WrpClaimValue as a string, an integer, or a boolean in JSON and CBOR. CBOR decoding tries text, boolean, then integer; see WrpClaimPathSegmentSerializer.

Link copied to clipboard
Link copied to clipboard
@Serializable
data class WrpCredential(val format: String, val meta: WrpCredentialMeta, val claim: List<WrpClaim>? = null)

ETSI TS 119 475 V1.2.1 Annex C credential descriptor.

Link copied to clipboard
@Serializable
data class WrpCredentialMeta(val doctypeValue: String? = null, val vctValues: List<String>? = null)

ETSI TS 119 475 V1.2.1 Annex C credential metadata block.

Link copied to clipboard
@Serializable
sealed interface WrpCredentialMetaDomain
Link copied to clipboard
@Serializable
data class WrpIntermediary(val sub: String, val sname: String? = null)

ETSI TS 119 475 V1.2.1 Annex C intermediary reference.

Link copied to clipboard
@Serializable
data class WrpLangString(val lang: String, val value: String)

ETSI TS 119 475 V1.2.1 Annex C language-tagged string.

Link copied to clipboard
@Serializable
data class WrpPayload(val name: String? = null, val subjectLegalNames: List<String>? = null, val subjectGivenName: String? = null, val subjectFamilyName: String? = null, val subjectIdentifier: String, val country: String, val registryUri: String, val serviceDescription: List<WrpLangString>, val entitlements: List<String>, val privacyPolicy: String, val infoUris: List<String>? = null, val supportUris: List<String>, val supervisoryAuthority: WrpSupervisoryAuthority, val policyId: List<String>, val certificatePolicy: String, val iat: Instant, val status: WrpStatus, val purpose: List<WrpLangString>? = null, val credentials: List<WrpCredential>? = null, val intendedUseId: String? = null, val providesAttestations: List<WrpCredential>? = null, val publicBody: Boolean? = null, val intermediary: WrpIntermediary? = null, val exp: Instant? = null)

ETSI TS 119 475 V1.2.1 Annex C WRPRC payload.

Link copied to clipboard
@Serializable
data class WrpStatus(val statusList: WrpStatusList)

ETSI TS 119 475 V1.2.1 Annex C status block.

Link copied to clipboard
@Serializable
data class WrpStatusList(val idx: ULong, val uri: String)
Link copied to clipboard
@Serializable
data class WrpSupervisoryAuthority(val emails: List<String>? = null, val phones: List<String>? = null, val uris: List<String>? = null)

ETSI TS 119 475 V1.2.1 Annex C supervisory-authority contact block. Each field is absent if the register provides no value for it, and always encoded as an array, see WrpStringListSerializer.