Package-level declarations

Types

Link copied to clipboard
@Serializable
data class AuthenticationRequestParameters(val responseType: String? = null, val clientId: String, val redirectUrl: String? = null, val scope: String? = null, val state: String? = null, val nonce: String? = null, val claims: AuthnRequestClaims? = null, val clientMetadata: RelyingPartyMetadata? = null, val clientMetadataUri: String? = null, val idTokenHint: String? = null, val request: String? = null, val requestUri: String? = null, val idTokenType: String? = null, val presentationDefinition: PresentationDefinition? = null, val presentationDefinitionUrl: String? = null, val authorizationDetails: Set<AuthorizationDetails>? = null, val clientIdScheme: OpenIdConstants.ClientIdScheme? = null, val walletIssuer: String? = null, val userHint: String? = null, val issuerState: String? = null, val responseMode: OpenIdConstants.ResponseMode? = null, val responseUrl: String? = null, val audience: String? = null, val issuer: String? = null, val issuedAt: Instant? = null, val resource: String? = null, val codeChallenge: String? = null, val codeChallengeMethod: String? = null, val lang: String? = null, val credentialID: String? = null, val signatureQualifier: String? = null, val numSignatures: Int? = null, val hashes: List<ByteArray>? = null, val hashAlgorithmOID: String? = null, val description: String? = null, val accountToken: JsonWebToken? = null, val clientData: String? = null)

Contents of an OIDC Authentication Request.

Link copied to clipboard
@Serializable
data class AuthenticationResponseParameters(val code: String? = null, val idToken: String? = null, val vpToken: JsonElement? = null, val presentationSubmission: PresentationSubmission? = null, val state: String? = null, val issuer: String? = null, val audience: String? = null, val expiration: Instant? = null, val response: String? = null)

Contents of an OIDC Authentication Response.

Link copied to clipboard
@Serializable
data class AuthnRequestClaims(val idTokenMap: Map<String, AuthnRequestSingleClaim?>? = null, val userInfoMap: Map<String, AuthnRequestSingleClaim?>? = null)
Link copied to clipboard
@Serializable
data class AuthnRequestSingleClaim(val essential: Boolean? = null, val value: String? = null, val values: Array<String>? = null)
Link copied to clipboard
@Serializable
sealed class AuthorizationDetails
Link copied to clipboard
@Serializable
data class BatchCredentialIssuanceMetadata(val batchSize: Int)
Link copied to clipboard
Link copied to clipboard
@Serializable
data class CredentialOffer(val credentialIssuer: String, val configurationIds: Collection<String>, val grants: CredentialOfferGrants? = null)
Link copied to clipboard
@Serializable
data class CredentialOfferGrants(val authorizationCode: CredentialOfferGrantsAuthCode? = null, val preAuthorizedCode: CredentialOfferGrantsPreAuthCode? = null)

OID4VCI: Object indicating to the Wallet the Grant Types the Credential Issuer's Authorization Server is prepared to process for this Credential Offer. Every grant is represented by a name/value pair. The name is the Grant Type identifier; the value is an object that contains parameters either determining the way the Wallet MUST use the particular grant and/or parameters the Wallet MUST send with the respective request(s).

Link copied to clipboard
@Serializable
data class CredentialOfferGrantsAuthCode(val issuerState: String? = null, val authorizationServer: String? = null)
Link copied to clipboard
@Serializable
data class CredentialOfferGrantsPreAuthCode(val preAuthorizedCode: String, val transactionCode: CredentialOfferGrantsPreAuthCodeTransactionCode? = null, val waitIntervalSeconds: Int? = 5, val authorizationServer: String? = null)
@Serializable
data class CredentialOfferGrantsPreAuthCodeTransactionCode(val inputMode: String? = "numeric", val length: Int? = null, val description: String? = null)
Link copied to clipboard
@Serializable
data class CredentialOfferUrlParameters(val credentialOffer: JsonObject? = null, val credentialOfferUrl: String? = null)

OID4VCI: The Credential Issuer sends Credential Offer using an HTTP GET request or an HTTP redirect to the Wallet's Credential Offer Endpoint defined in Section 11.1.The Credential Offer object, which is a JSON-encoded object with the Credential Offer parameters, can be sent by value or by reference.

Link copied to clipboard
@Serializable
data class CredentialRequestParameters(val credentialIdentifier: String? = null, val format: CredentialFormatEnum? = null, val credentialResponseEncryption: SupportedAlgorithmsContainer? = null, val docType: String? = null, val claims: Map<String, Map<String, RequestedCredentialClaimSpecification>>? = null, val credentialDefinition: SupportedCredentialFormatDefinition? = null, val sdJwtVcType: String? = null, val proof: CredentialRequestProof? = null, val proofs: CredentialRequestProofContainer? = null)
Link copied to clipboard
@Serializable
data class CredentialRequestProof(val proofType: OpenIdConstants.ProofType, val jwt: String? = null, val cwt: String? = null)
Link copied to clipboard
@Serializable
data class CredentialRequestProofContainer(val proofType: OpenIdConstants.ProofType, val jwt: Set<String>? = null)
Link copied to clipboard
@Serializable
data class CredentialRequestProofSupported(val supportedSigningAlgorithms: Collection<String>)
Link copied to clipboard
@Serializable
data class CredentialResponseParameters(val format: CredentialFormatEnum? = null, val credential: String? = null, val acceptanceToken: String? = null, val clientNonce: String? = null, val clientNonceExpiresIn: Duration? = null)
Link copied to clipboard
@Serializable
data class CredentialSubjectMetadataSingle(val mandatory: Boolean? = null, val valueType: String? = null, val display: Set<DisplayProperties>? = null)

OID4VCI: W3C VC: To express the specifics about the claim, the most deeply nested value MAY be an object that includes the following parameters defined by this specification (other parameters MAY also be used).

Link copied to clipboard
@Serializable
data class DisplayLogoProperties(val url: String? = null, val uri: String? = null, val altText: String? = null)

OID4VCI: OPTIONAL. Object with information about the logo of the Credential.

Link copied to clipboard
@Serializable
data class DisplayProperties(val name: String? = null, val locale: String? = null, val logo: DisplayLogoProperties? = null, val description: String? = null, val backgroundColor: String? = null, val backgroundImage: DisplayLogoProperties? = null, val textColor: String? = null)

OID4VCI: OPTIONAL. Array of objects, where each object contains the display properties of the supported Credential for a certain language.

Link copied to clipboard
@Serializable
data class DocumentDigestCSCEntry(val hash: ByteArray, val label: String)

CSC: Entry for document to be signed

Link copied to clipboard
object DurationSecondsIntSerializer : KSerializer<Duration>
Link copied to clipboard
object HashesSerializer : KSerializer<List<ByteArray>>

CSC: Multiple hash values can be passed as comma separated values, e.g. oauth2/authorize?hash=dnN3ZX.. .ZmRm,ZjIxM3… Z2Zk,…

Link copied to clipboard
@Serializable
data class IdToken(val issuer: String, val audience: String, val issuedAt: Instant, val expiration: Instant, val subject: String, val nonce: String, val subjectJwk: JsonWebKey? = null)

OpenID Connect ID Token, usually signed as JWS in id_token in a URL

Link copied to clipboard
Link copied to clipboard
object IdTokenTypeSerializer : KSerializer<IdTokenType>
Link copied to clipboard
@Serializable
data class IssuerMetadata(val issuer: String? = null, val credentialIssuer: String, val authorizationServers: Set<String>? = null, val credentialEndpointUrl: String, val deferredCredentialEndpointUrl: String? = null, val notificationEndpointUrl: String? = null, val credentialResponseEncryption: SupportedAlgorithmsContainer? = null, val batchCredentialIssuance: BatchCredentialIssuanceMetadata? = null, val signedMetadata: String? = null, val displayProperties: Set<DisplayProperties>? = null, val supportedCredentialConfigurations: Map<String, SupportedCredentialFormat>? = null)

Metadata about the credential issuer in OpenID4VCI

Link copied to clipboard
@Serializable
data class JwtVcIssuerMetadata(val issuer: String, val jsonWebKeySet: JsonWebKeySet? = null, val jsonWebKeySetUrl: String? = null)

Metadata about the credential issuer in SD-JWT VC

Link copied to clipboard
@Serializable
data class OAuth2AuthorizationServerMetadata(val issuer: String, val authorizationEndpoint: String? = null, val pushedAuthorizationRequestEndpoint: String? = null, val requirePushedAuthorizationRequests: Boolean? = null, val tokenEndpoint: String? = null, val jsonWebKeySetUrl: String? = null, val registrationEndpoint: String? = null, val scopesSupported: Set<String>? = null, val responseTypesSupported: Set<String>? = null, val responseModesSupported: Set<String>? = null, val grantTypesSupported: Set<String>? = null, val tokenEndPointAuthMethodsSupported: Set<String>? = null, val tokenEndPointAuthSigningAlgValuesSupported: Set<String>? = null, val subjectTypesSupported: Set<String>? = null, val idTokenSigningAlgorithmsSupportedStrings: Set<String>? = null, val requestObjectSigningAlgorithmsSupportedStrings: Set<String>? = null, val subjectSyntaxTypesSupported: Set<String>? = null, val idTokenTypesSupported: Set<IdTokenType>? = null, val presentationDefinitionUriSupported: Boolean = true, val vpFormatsSupported: VpFormatsSupported? = null, val clientIdSchemesSupported: Set<String>? = null, val dpopSigningAlgValuesSupportedStrings: Set<String>? = null, val serviceDocumentation: String? = null, val uiLocalesSupported: Set<String>? = null, val opPolicyUri: String? = null, val opTosUri: String? = null, val revocationEndpoint: String? = null, val revocationEndpointAuthMethodsSupported: Set<String>? = null, val revocationEndpointAuthSigningAlgValuesSupported: Set<String>? = null, val introspectionEndpoint: String? = null, val introspectionEndpointAuthMethodsSupported: Set<String>? = null, val introspectionEndpointAuthSigningAlgValuesSupported: Set<String>? = null, val codeChallengeMethodsSupported: Set<String>? = null)

This implements RFC8414 All descriptions taken from section 2.

Link copied to clipboard
@Serializable
data class OidcAddressClaim(val formatted: String? = null, val street: String? = null, val locality: String? = null, val region: String? = null, val postalCode: String? = null, val country: String? = null)
Link copied to clipboard
@Serializable
data class OidcUserInfo(val subject: String, val name: String? = null, val givenName: String? = null, val familyName: String? = null, val middleName: String? = null, val nickname: String? = null, val preferredUsername: String? = null, val profile: String? = null, val picture: String? = null, val website: String? = null, val email: String? = null, val emailVerified: Boolean? = null, val gender: String? = null, val birthDate: String? = null, val timezone: String? = null, val locale: String? = null, val phoneNumber: String? = null, val phoneNumberVerified: Boolean? = null, val address: OidcAddressClaim? = null, val ageOver18: Boolean? = null, val updatedAt: Instant? = null)
Link copied to clipboard
data class OidcUserInfoExtended(val userInfo: OidcUserInfo, val jsonObject: JsonObject)

Holds a deserialized OidcUserInfo as well as a JsonObject with other properties, that could not been parsed.

Link copied to clipboard
Link copied to clipboard
@Serializable
data class RelyingPartyMetadata(val redirectUris: List<String>? = null, val jsonWebKeySet: JsonWebKeySet? = null, val jsonWebKeySetUrl: String? = null, val idTokenSignedResponseAlgString: String? = null, val authorizationSignedResponseAlgString: String? = null, val authorizationEncryptedResponseAlgString: String? = null, val authorizationEncryptedResponseEncodingString: String? = null, val idTokenEncryptedResponseAlgString: String? = null, val idTokenEncryptedResponseEncodingString: String? = null, val subjectSyntaxTypesSupported: Set<String>? = null, val vpFormats: FormatHolder? = null, val clientIdScheme: OpenIdConstants.ClientIdScheme? = OpenIdConstants.ClientIdScheme.PreRegistered)
Link copied to clipboard
@Serializable
data class RequestedCredentialClaimSpecification(val mandatory: Boolean? = null, val valueType: String? = null, val display: Collection<DisplayProperties>? = null)
Link copied to clipboard
@Serializable
data class SupportedAlgorithmsContainer(val supportedAlgorithmsStrings: Set<String>, val supportedEncryptionAlgorithmsStrings: Set<String>? = null, val encryptionRequired: Boolean? = null)
Link copied to clipboard
@Serializable
data class SupportedCredentialFormat

OID4VCI: Object that describes specifics of the Credential that the Credential Issuer supports issuance of. This object contains a list of name/value pairs, where each name is a unique identifier of the supported Credential being described. This identifier is used in the Credential Offer to communicate to the Wallet which Credential is being offered.

Link copied to clipboard
@Serializable
data class SupportedCredentialFormatDefinition(val types: Set<String>? = null, val credentialSubject: Map<String, CredentialSubjectMetadataSingle>? = null)

OID4VCI: W3C VC: REQUIRED. Object containing the detailed description of the Credential type. It consists of at least the following two parameters: type, credentialSubject`.

Link copied to clipboard
@Serializable
data class TokenRequestParameters(val grantType: String, val code: String? = null, val scope: String? = null, val resource: String? = null, val redirectUrl: String, val clientId: String, val authorizationDetails: Set<AuthorizationDetails>? = null, val preAuthorizedCode: String? = null, val transactionCode: String? = null, val codeVerifier: String? = null, val clientData: String? = null)
Link copied to clipboard
@Serializable
data class TokenResponseParameters(val accessToken: String, val refreshToken: String? = null, val tokenType: String, val expires: Duration, val scope: String? = null, val clientNonce: String? = null, val clientNonceExpiresIn: Duration? = null, val authorizationPending: Boolean? = null, val interval: Duration? = null, val authorizationDetails: Set<AuthorizationDetails>? = null, val credentialId: String? = null)
Link copied to clipboard
@Serializable
data class VpFormatsSupported(val vcJwt: SupportedAlgorithmsContainer? = null, val vcJsonLd: SupportedAlgorithmsContainer? = null, val jsonLinkedData: SupportedAlgorithmsContainer? = null)

OID4VP: An object containing a list of key value pairs, where the key is a string identifying a Credential format supported by the Wallet. Valid Credential format identifier values are defined in Annex E of OpenID.VCI. Other values may be used when defined in the profiles of this specification.

Properties

Link copied to clipboard
val jsonSerializer: Json