CscAuthenticationRequestParameters

@Serializable
data class CscAuthenticationRequestParameters(val responseType: String, val clientId: String, val redirectUrl: String? = null, val scope: String? = null, val state: String? = null, val requestUri: String? = null, val authorizationDetails: Set<AuthorizationDetails>? = null, val codeChallenge: String, val codeChallengeMethod: String? = null, val lang: String? = null, val credentialID: ByteArray? = null, val signatureQualifier: SignatureQualifier? = null, val numSignatures: Int? = null, val hashes: Hashes? = null, val hashAlgorithmOid: ObjectIdentifier? = null, val description: String? = null, val accountToken: JsonWebToken? = null, val clientData: String? = null) : RequestParameters(source)

Contents of an OIDC Authentication Request.

Usually, these parameters are appended to the Authorization Endpoint URL of the OpenId Provider (the Credential Issuer for OID4VCI).

Constructors

Link copied to clipboard
constructor(responseType: String, clientId: String, redirectUrl: String? = null, scope: String? = null, state: String? = null, requestUri: String? = null, authorizationDetails: Set<AuthorizationDetails>? = null, codeChallenge: String, codeChallengeMethod: String? = null, lang: String? = null, credentialID: ByteArray? = null, signatureQualifier: SignatureQualifier? = null, numSignatures: Int? = null, hashes: Hashes? = null, hashAlgorithmOid: ObjectIdentifier? = null, description: String? = null, accountToken: JsonWebToken? = null, clientData: String? = null)

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
@SerialName(value = "account_token")
val accountToken: JsonWebToken? = null

CSC: OPTIONAL To restrict access to the authorization server of a remote service, this specification introduces the additional account_token parameter to be used when calling the oauth2/authorize endpoint. This parameter contains a secure token designed to authenticate the authorization request based on an Account ID that SHALL be uniquely assigned by the signature application to the signing user or to the user’s application account

Link copied to clipboard
@SerialName(value = "authorization_details")
val authorizationDetails: Set<AuthorizationDetails>? = null

RFC9396: The request parameter authorization_details contains, in JSON notation, an array of objects. Each JSON object contains the data to specify the authorization requirements for a certain type of resource. The type of resource or access requirement is determined by the AuthorizationDetails.type field.

Link copied to clipboard
@SerialName(value = "clientData")
val clientData: String? = null

CSC: OPTIONAL Arbitrary data from the signature application. It can be used to handle a transaction identifier or other application-spe cific data that may be useful for debugging purposes

Link copied to clipboard
@SerialName(value = "client_id")
val clientId: String

OIDC: REQUIRED. OAuth 2.0 Client Identifier valid at the Authorization Server.

Link copied to clipboard
@SerialName(value = "code_challenge")
val codeChallenge: String

RFC7636: A challenge derived from the code verifier that is sent in the authorization request, to be verified against later.

Link copied to clipboard
@SerialName(value = "code_challenge_method")
val codeChallengeMethod: String? = null

RFC7636: A method that was used to derive code challenge.

Link copied to clipboard
@SerialName(value = "credentialID")
@Serializable(with = ByteArrayBase64UrlSerializer::class)
val credentialID: ByteArray? = null

CSC: REQUIRED-"credential" The identifier associated to the credential to authorize. This parameter value may contain characters that are reserved, unsafe or forbidden in URLs and therefore SHALL be url-encoded by the signature application

Link copied to clipboard
@SerialName(value = "description")
val description: String? = null

CSC: OPTIONAL A free form description of the authorization transaction in the lang language. The maximum size of the string is 500 characters

Link copied to clipboard
@SerialName(value = "hashAlgorithmOID")
val hashAlgorithmOid: ObjectIdentifier? = null

CSC: REQUIRED-"credential" String containing the OID of the hash algorithm used to generate the hashes

Link copied to clipboard
@SerialName(value = "hashes")
@Serializable(with = HashesSerializer::class)
val hashes: Hashes? = null

CSC: REQUIRED-"credential" One or more base64url-encoded hash values to be signed

Link copied to clipboard
@SerialName(value = "lang")
val lang: String? = null

CSC: Optional Request a preferred language according to RFC 5646

Link copied to clipboard
@SerialName(value = "numSignatures")
val numSignatures: Int? = null

CSC: Required-"credential" The number of signatures to authorize

Link copied to clipboard
@SerialName(value = "redirect_uri")
val redirectUrl: String? = null

OIDC: REQUIRED. Redirection URI to which the response will be sent. This URI MUST exactly match one of the Redirection URI values for the Client pre-registered at the OpenID Provider, with the matching performed as described in Section 6.2.1 of RFC3986 (Simple String Comparison).

Link copied to clipboard
@SerialName(value = "request_uri")
val requestUri: String? = null

OAuth 2.0 JAR: REQUIRED unless request is specified. The absolute URI, as defined by RFC3986, that is the Request Object URI referencing the authorization request parameters stated in Section 4 of RFC6749 (OAuth 2.0). If this parameter is present in the authorization request, request MUST NOT be present.

Link copied to clipboard
@SerialName(value = "response_type")
val responseType: String

OIDC: REQUIRED. OAuth 2.0 Response Type value that determines the authorization processing flow to be used, including what parameters are returned from the endpoints used. When using the Authorization Code Flow, this value is code.

Link copied to clipboard
@SerialName(value = "scope")
val scope: String? = null

OIDC: REQUIRED. OpenID Connect requests MUST contain the openid scope value. If the openid scope value is not present, the behavior is entirely unspecified. Other scope values MAY be present. Scope values used that are not understood by an implementation SHOULD be ignored. e.g. profile or com.example.healthCardCredential

Link copied to clipboard
@SerialName(value = "signatureQualifier")
val signatureQualifier: SignatureQualifier? = null

CSC: Required-"credential" This parameter contains the symbolic identifier determining the kind of signature to be created

Link copied to clipboard
@SerialName(value = "state")
val state: String? = null

OIDC: RECOMMENDED. Opaque value used to maintain state between the request and the callback. Typically, Cross-Site Request Forgery (CSRF, XSRF) mitigation is done by cryptographically binding the value of this parameter with a browser cookie.

Functions

Link copied to clipboard
open operator override fun equals(other: Any?): Boolean
Link copied to clipboard
open override fun hashCode(): Int
Link copied to clipboard