Package-level declarations

Types

Link copied to clipboard
@Serializable
data class DCQLAmbiguousClaimsQuery(val id: DCQLClaimsQueryIdentifier? = null, val values: List<DCQLExpectedClaimValue>? = null, val path: DCQLClaimsPathPointer) : DCQLClaimsQuery
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
@Serializable(with = DCQLClaimsQuerySerializer::class)
sealed interface DCQLClaimsQuery
Link copied to clipboard
@Serializable
value class DCQLClaimsQueryIdentifier(val string: String)

OID4VP 1.0, 6.3: id: … A string identifying the particular claim. The value MUST be a non-empty string consisting of alphanumeric, underscore (_), or hyphen (-) characters. Within the particular claims array, the same id MUST NOT be present more than once.

Link copied to clipboard

A non-empty array of objects as defined in Section 6.3 that specifies claims in the requested Credential.

Link copied to clipboard
sealed interface DCQLClaimsQueryResult
Link copied to clipboard
object DCQLClaimsQuerySerializer : JsonContentPolymorphicSerializer<DCQLClaimsQuery>
Link copied to clipboard
sealed interface DCQLCredential
Link copied to clipboard
Link copied to clipboard
sealed interface DCQLCredentialQuery
Link copied to clipboard
@Serializable
value class DCQLCredentialQueryIdentifier(val string: String)

OID4VP 1.0, 6.1: id: REQUIRED. A string identifying the Credential in the response and, if provided, the constraints in credential_sets. The value MUST be a non-empty string consisting of alphanumeric, underscore (_), or hyphen (-) characters. Within the Authorization Request, the same id MUST NOT be present more than once.

Link copied to clipboard

Relevant references: OID4VP 1.0, 6: credentials: REQUIRED. A non-empty array of Credential Queries as defined in Section 6.1 that specify the requested Credentials.

Link copied to clipboard
Link copied to clipboard
object DCQLCredentialQuerySerializer : JsonContentPolymorphicSerializer<DCQLCredentialQuery>
Link copied to clipboard
@Serializable
data class DCQLCredentialSetQuery(val options: NonEmptyList<List<DCQLCredentialQueryIdentifier>>, val required: Boolean = true)

OpenID4VP 1.0, 6.2. Credential Set Query

Link copied to clipboard
@Serializable
data class DCQLCredentialSubmissionOption<Credential : Any>(val credential: Credential, val matchingResult: DCQLCredentialQueryMatchingResult)

Passes an empty constraint object as per https://github.com/openid/OpenID4VP/issues/590

Link copied to clipboard
Link copied to clipboard
@Serializable
data class DCQLIsoMdocClaimsQuery(val id: DCQLClaimsQueryIdentifier? = null, val values: List<DCQLExpectedClaimValue>? = null, val path: DCQLClaimsPathPointer, val intentToRetain: Boolean? = null) : DCQLClaimsQuery
Link copied to clipboard
data class DCQLIsoMdocCredential(val claimStructure: DCQLCredentialClaimStructure.IsoMdocStructure, val documentType: String, val satisfiesCryptographicHolderBinding: Boolean, val authorityKeyIdentifiers: Collection<DCQLAuthorityKeyIdentifier>) : DCQLCredential
Link copied to clipboard
@Serializable
data class DCQLIsoMdocCredentialQuery(val id: DCQLCredentialQueryIdentifier, val meta: DCQLIsoMdocCredentialMetadataAndValidityConstraints, val claims: DCQLClaimsQueryList<DCQLIsoMdocClaimsQuery>? = null, val claimSets: NonEmptyList<List<DCQLClaimsQueryIdentifier>>? = null, val multiple: Boolean = DCQLCredentialQuery.Defaults.MULTIPLE, val trustedAuthorities: NonEmptyList<DCQLTrustedAuthorityQueryEntry>? = null, val requireCryptographicHolderBinding: Boolean = DCQLCredentialQuery.Defaults.REQUIRE_CRYPTOGRAPHIC_HOLDER_BINDING, val format: CredentialFormatEnum = CREDENTIAL_FORMAT) : DCQLCredentialQuery
Link copied to clipboard
@Serializable
data class DCQLIsoMdocZkCredentialQuery(val id: DCQLCredentialQueryIdentifier, val meta: DCQLIsoMdocZkCredentialMetadataAndValidityConstraints, val claims: DCQLClaimsQueryList<DCQLIsoMdocClaimsQuery>? = null, val claimSets: NonEmptyList<List<DCQLClaimsQueryIdentifier>>? = null, val multiple: Boolean = DCQLCredentialQuery.Defaults.MULTIPLE, val trustedAuthorities: NonEmptyList<DCQLTrustedAuthorityQueryEntry>? = null, val requireCryptographicHolderBinding: Boolean = DCQLCredentialQuery.Defaults.REQUIRE_CRYPTOGRAPHIC_HOLDER_BINDING, val format: CredentialFormatEnum = CREDENTIAL_FORMAT) : DCQLCredentialQuery
Link copied to clipboard
@Serializable
data class DCQLIsoMdocZkSystemSpec(val id: String, val system: String, val circuitHash: String, val numAttributes: Long, val version: Long, val blockEncHash: Long? = null, val blockEncSig: Long? = null)

Proposed DCQL ZK System Specification for OpenID4VP requests targeting ISO mDoc zero-knowledge proofs See: https://google.github.io/longfellow-zk/docs/protocols/

Link copied to clipboard
data class DCQLIsoMdocZkSystemType(val systemSpecs: List<DCQLIsoMdocZkSystemSpec>, val zkRequired: Boolean = false)
Link copied to clipboard
@Serializable
data class DCQLJsonClaimsQuery(val id: DCQLClaimsQueryIdentifier? = null, val values: List<DCQLExpectedClaimValue>? = null, val path: DCQLClaimsPathPointer) : DCQLClaimsQuery
Link copied to clipboard
@Serializable
data class DCQLJwtVcCredentialQuery(val id: DCQLCredentialQueryIdentifier, val meta: DCQLJwtVcCredentialMetadataAndValidityConstraints, val claims: DCQLClaimsQueryList<DCQLJsonClaimsQuery>? = null, val claimSets: NonEmptyList<List<DCQLClaimsQueryIdentifier>>? = null, val multiple: Boolean = DCQLCredentialQuery.Defaults.MULTIPLE, val trustedAuthorities: NonEmptyList<DCQLTrustedAuthorityQueryEntry>? = null, val requireCryptographicHolderBinding: Boolean = DCQLCredentialQuery.Defaults.REQUIRE_CRYPTOGRAPHIC_HOLDER_BINDING, val format: CredentialFormatEnum = CREDENTIAL_FORMAT) : DCQLCredentialQuery

OpenID4VP 1.0, 6.1. Credential Query

Link copied to clipboard
@Serializable
data class DCQLQuery(val credentials: DCQLCredentialQueryList<DCQLCredentialQuery>, val credentialSets: NonEmptyList<DCQLCredentialSetQuery>? = null)
Link copied to clipboard
Link copied to clipboard
data class DCQLSdJwtCredential(val claimStructure: DCQLCredentialClaimStructure.JsonBasedStructure, val type: String, val satisfiesCryptographicHolderBinding: Boolean, val authorityKeyIdentifiers: Collection<DCQLAuthorityKeyIdentifier>) : DCQLCredential
Link copied to clipboard
@Serializable
data class DCQLSdJwtCredentialQuery(val id: DCQLCredentialQueryIdentifier, val meta: DCQLSdJwtCredentialMetadataAndValidityConstraints, val claims: DCQLClaimsQueryList<DCQLJsonClaimsQuery>? = null, val claimSets: NonEmptyList<List<DCQLClaimsQueryIdentifier>>? = null, val multiple: Boolean = DCQLCredentialQuery.Defaults.MULTIPLE, val trustedAuthorities: NonEmptyList<DCQLTrustedAuthorityQueryEntry>? = null, val requireCryptographicHolderBinding: Boolean = DCQLCredentialQuery.Defaults.REQUIRE_CRYPTOGRAPHIC_HOLDER_BINDING, val format: CredentialFormatEnum = CREDENTIAL_FORMAT) : DCQLCredentialQuery

OpenID4VP 1.0, 6.1. Credential Query

Link copied to clipboard
@Serializable
data class DCQLTrustedAuthority(val type: DCQLTrustedAuthorityType, val values: List<String>)
@Serializable
data class DCQLTrustedAuthorityQueryEntryETSITrustedList(val values: NonEmptyList<String>, val type: DCQLTrustedAuthorityType = DCQL_TRUSTED_AUTHORITY_TYPE) : DCQLTrustedAuthorityQueryEntry
@Serializable
data class DCQLTrustedAuthorityQueryEntryOpenIDFederation(val values: NonEmptyList<String>, val type: DCQLTrustedAuthorityType = DCQL_TRUSTED_AUTHORITY_TYPE) : DCQLTrustedAuthorityQueryEntry
Link copied to clipboard
data class DCQLVcJwsCredential(val claimStructure: DCQLCredentialClaimStructure.JsonBasedStructure, val satisfiesCryptographicHolderBinding: Boolean, val authorityKeyIdentifiers: Collection<DCQLAuthorityKeyIdentifier>, val types: Collection<String>) : DCQLCredential
Link copied to clipboard
@Serializable
data class DCQLX509CredentialQuery(val id: DCQLCredentialQueryIdentifier, val meta: X509MetadataQuery, val claims: DCQLClaimsQueryList<DCQLJsonClaimsQuery>? = null, val claimSets: NonEmptyList<List<DCQLClaimsQueryIdentifier>>? = null, val multiple: Boolean = DCQLCredentialQuery.Defaults.MULTIPLE, val trustedAuthorities: NonEmptyList<DCQLTrustedAuthorityQueryEntry>? = null, val requireCryptographicHolderBinding: Boolean = DCQLCredentialQuery.Defaults.REQUIRE_CRYPTOGRAPHIC_HOLDER_BINDING, val format: CredentialFormatEnum = CREDENTIAL_FORMAT) : DCQLCredentialQuery

ETSI TS 119 432 Annex A.6.3: selects an X.509 signing credential using CSC metadata constraints. Request parsing is supported; X.509 signing and submission validation require a separate QES flow.

Link copied to clipboard
@Serializable
data class X509MetadataQuery(val certificateFingerprints: List<Hash>? = null, val certificatePolicies: List<String> = emptyList(), val keys: List<X509KeyInfo>? = null) : DCQLCredentialMetadataAndValidityConstraints

CSC Data Model Bindings 1.0.0 section 8.1 / ETSI TS 119 432 Annex A.6.3: metadata constraints for an X.509 signing credential in a DCQL query.

Functions

Link copied to clipboard

Renders this DCQL query as an ISO 18013-5 DeviceRequest, to be used for ISO/IEC 18013-7 Annex C flows over the W3C Digital Credentials API.