SignatureRequestParameters

@Serializable
data class SignatureRequestParameters(val responseType: String, val clientId: String, val clientIdScheme: OpenIdConstants.ClientIdScheme? = null, val responseMode: OpenIdConstants.ResponseMode? = null, val responseUrl: String? = null, val nonce: String, val state: String? = null, val signatureQualifier: SignatureQualifier = SignatureQualifier.EU_EIDAS_QES, val documentDigests: List<OAuthDocumentDigest>, val documentLocations: List<DocumentLocation>, val hashAlgorithmOid: ObjectIdentifier = Digest.SHA256.oid, val clientData: String?) : RequestParameters(source)

In the Wallet centric model this is the request coming from the Driving application to the wallet which starts the process

This should not be confused with the CSC-related extensions to AuthenticationRequestParameters which are used by the wallet to communicate with the QTSP using OAuth2

Constructors

Link copied to clipboard
constructor(responseType: String, clientId: String, clientIdScheme: OpenIdConstants.ClientIdScheme? = null, responseMode: OpenIdConstants.ResponseMode? = null, responseUrl: String? = null, nonce: String, state: String? = null, signatureQualifier: SignatureQualifier = SignatureQualifier.EU_EIDAS_QES, documentDigests: List<OAuthDocumentDigest>, documentLocations: List<DocumentLocation>, hashAlgorithmOid: ObjectIdentifier = Digest.SHA256.oid, clientData: String?)

Properties

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

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 = "client_id_scheme")
val clientIdScheme: OpenIdConstants.ClientIdScheme? = null

OID4VP: OPTIONAL. A string identifying the scheme of the value in the client_id Authorization Request parameter (Client Identifier scheme). The clientIdScheme parameter namespaces the respective Client Identifier. If an Authorization Request uses the clientIdScheme parameter, the Wallet MUST interpret the Client Identifier of the Verifier in the context of the Client Identifier scheme. If the parameter is not present, the Wallet MUST behave as specified in RFC6749. If the same Client Identifier is used with different Client Identifier schemes, those occurrences MUST be treated as different Verifiers. Note that the Verifier needs to determine which Client Identifier schemes the Wallet supports prior to sending the Authorization Request in order to choose a supported scheme.

Link copied to clipboard
@SerialName(value = "documentDigests")
val documentDigests: List<OAuthDocumentDigest>

UC5 Draft REQUIRED. An array composed of entries for every document to be signed

Link copied to clipboard
@SerialName(value = "documentLocations")
val documentLocations: List<DocumentLocation>

UC5 Draft REQUIRED. An array composed of entries for every document to be signed

Link copied to clipboard
@Transient
val hashAlgorithm: Digest
Link copied to clipboard
@SerialName(value = "hashAlgorithmOID")
val hashAlgorithmOid: ObjectIdentifier

UC5 Draft REQUIRED. String containing the OID of the hash algorithm used to generate the hashes listed in documentDigests

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

OIDC: OPTIONAL. String value used to associate a Client session with an ID Token, and to mitigate replay attacks. The value is passed through unmodified from the Authentication Request to the ID Token. Sufficient entropy MUST be present in the nonce values used to prevent attackers from guessing values.

Link copied to clipboard
@SerialName(value = "response_mode")
val responseMode: OpenIdConstants.ResponseMode? = null

OAuth 2.0 Responses: OPTIONAL. Informs the Authorization Server of the mechanism to be used for returning Authorization Response parameters from the Authorization Endpoint. This use of this parameter is NOT RECOMMENDED with a value that specifies the same Response Mode as the default Response Mode for the Response Type used. SHOULD be direct post

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 = "response_uri")
val responseUrl: String? = null

OID4VP: OPTIONAL. The Response URI to which the Wallet MUST send the Authorization Response using an HTTPS POST request as defined by the Response Mode direct_post. The Response URI receives all Authorization Response parameters as defined by the respective Response Type. When the response_uri parameter is present, the redirect_uri Authorization Request parameter MUST NOT be present. If the redirect_uri Authorization Request parameter is present when the Response Mode is direct_post, the Wallet MUST return an invalid_request Authorization Response error.

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

UC5 Draft REQUIRED. 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
fun getCscDocumentDigests(signatureFormat: SignatureFormat, signAlgorithm: X509SignatureAlgorithm, signAlgoParam: Asn1Element? = null, signedProps: List<JsonObject>? = null, conformanceLevel: ConformanceLevel? = ConformanceLevel.ADESBB, signedEnvelopeProperty: SignedEnvelopeProperty? = SignedEnvelopeProperty.defaultProperty(signatureFormat)): CscDocumentDigest