ConfirmationClaim

@Serializable
data class ConfirmationClaim(val jsonWebKey: JsonWebKey? = null, val encryptedSymmetricKey: JweEncrypted? = null, val keyId: String? = null, val jsonWebKeySetUrl: String? = null, val jsonWebKeyThumbprint: String? = null, val keyType: WalletAttestationKeyType? = null, val userAuthentication: WalletAttestationUserAuthentication? = null)(source)

Structure to declare posession of a particular proof-of-possesion key, to be included in JsonWebToken.confirmationClaim

See RFC 7800

Constructors

Link copied to clipboard
constructor(jsonWebKey: JsonWebKey? = null, encryptedSymmetricKey: JweEncrypted? = null, keyId: String? = null, jsonWebKeySetUrl: String? = null, jsonWebKeyThumbprint: String? = null, keyType: WalletAttestationKeyType? = null, userAuthentication: WalletAttestationUserAuthentication? = null)

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
@SerialName(value = "jwe")
@Serializable(with = JweEncryptedSerializer::class)
val encryptedSymmetricKey: JweEncrypted? = null

RFC 7800: When the key held by the presenter is a symmetric key, the encryptedSymmetricKey member is an encrypted JsonWebKey encrypted to a key known to the recipient using the JWE Compact Serialization containing the symmetric key.

Link copied to clipboard
@SerialName(value = "jwk")
val jsonWebKey: JsonWebKey? = null

RFC 7800: When the key held by the presenter is an asymmetric private key, the jsonWebKey member is a JsonWebKey representing the corresponding asymmetric public key.

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

RFC 7800: The proof-of-possession key can be passed by reference instead of being passed by value. This is done using the "jku" member. Its value is a URI (RFC3986) that refers to a resource for a set of JSON- encoded public keys represented as a JsonWebKeySet, one of which is the proof-of-possession key. If there are multiple keys in the referenced JWK Set document, a keyId member MUST also be included with the referenced key's JWK also containing the same keyId value.

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

RFC 9449: JWK SHA-256 Thumbprint confirmation method. The value of the jsonWebKeyThumbprint member MUST be the base64url encoding (as defined in RFC7515) of the JWK SHA-256 Thumbprint (according to RFC7638) of the DPoP public key (in JWK format) to which the access token is bound.

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

RFC 7800: The proof-of-possession key can also be identified by the use of a Key ID instead of communicating the actual key, provided the recipient is able to obtain the identified key using the Key ID.

Link copied to clipboard
@SerialName(value = "key_type")
val keyType: WalletAttestationKeyType? = null

OID4VC HAIP: String that asserts the security mechanism the Wallet uses to manage the private key associated with the public key given in the cnf claim. This mechanism is based on the capabilities of the execution environment of the Wallet, this might be a secure element (in case of a wallet residing on a smartphone) or a Cloud-HSM (in case of a cloud Wallet).

Link copied to clipboard
@SerialName(value = "user_authentication")
val userAuthentication: WalletAttestationUserAuthentication? = null

OID4VC HAIP: String that asserts the security mechanism the Wallet uses to authenticate the user to authorize access to the private key associated with the public key given in the cnf claim.

Functions

Link copied to clipboard