Package-level declarations

Types

Link copied to clipboard
@Serializable
@SerialName(value = "AtomicAttribute2023")
data class AtomicAttribute2023(val id: String, val name: String, val value: String, val mimeType: String) : CredentialSubject

VC spec leaves the representation of a single credential open to implementations. We decided to make a "generic" one, i.e. with custom name, value and mimeType.

Link copied to clipboard
Link copied to clipboard

According to "Transaction Data entries as defined in D3.1: UC Specification WP3" the encoding is JSON and every entry is serialized to a base64 encoded string

Link copied to clipboard
Link copied to clipboard
@Serializable
sealed interface CredentialPresentation
Link copied to clipboard
Link copied to clipboard
@Serializable
abstract class CredentialSubject

Base class for the subject of a VerifiableCredential, see subclasses of this class, e.g. AtomicAttribute2023.

Link copied to clipboard

In OpenID4VP, the claims to be presented are described using a JSONPath, so compiling this to a JsonElement seems reasonable.

Link copied to clipboard
object InstantDescriptor : SerialDescriptor

Sets the correct CBOR tag (0u) when serializing instants from LocalDateOrInstant.Instant

Link copied to clipboard
class InstantStringSerializer : KSerializer<Instant>
Link copied to clipboard
data class IsoDocumentParsed(val mso: MobileSecurityObject, val validItems: List<IssuerSignedItem> = listOf(), val invalidItems: List<IssuerSignedItem> = listOf(), val freshnessSummary: CredentialFreshnessSummary.Mdoc)
Link copied to clipboard
@Serializable
data class KeyBindingJws(val issuedAt: Instant? = null, val audience: String, val challenge: String, val sdHash: ByteArray, val transactionData: List<TransactionDataBase64Url>? = null, val transactionDataHashes: List<@Serializable(with = ByteArrayBase64UrlSerializer::class) ByteArray>? = null, val transactionDataHashesAlgorithm: String? = null)

Key Binding JWT for SD-JWT, per spec draft-ietf-oauth-selective-disclosure-jwt-08

Link copied to clipboard
object LocalDateDescriptor : SerialDescriptor

Sets the correct CBOR tag (1004u) when serializing local dates from LocalDateOrInstant.LocalDate

Link copied to clipboard

Might be used for expiry_date or issue_date in EU PIDs, where issuers may put in a "tdate" or "full-date"

Link copied to clipboard
Link copied to clipboard
data object MediaTypes
Link copied to clipboard
class NullableInstantLongSerializer : KSerializer<Instant?>
Link copied to clipboard
class NullableInstantStringSerializer : KSerializer<Instant?>
Link copied to clipboard
Link copied to clipboard
data class SelectiveDisclosureItem(val salt: ByteArray, val claimName: String?, val claimValue: JsonElement)

Selective Disclosure item in SD-JWT format

Link copied to clipboard
@Serializable
data class Status(val statusList: StatusListInfo)

specification: https://www.ietf.org/archive/id/draft-ietf-oauth-status-list-06.html#name-status-claim

Link copied to clipboard
sealed interface StatusListToken
Link copied to clipboard
Link copied to clipboard
@Serializable
data class VerifiableCredential(val id: String, val type: Collection<String>, val issuer: String, val issuanceDate: Instant, val expirationDate: Instant?, val credentialStatus: Status? = null, val credentialSubject: CredentialSubject)

The core of the W3C VC Data Model: a credential.

Link copied to clipboard
@Serializable
data class VerifiableCredentialJws(val vc: VerifiableCredential, val subject: String, val notBefore: Instant, val issuer: String, val expiration: Instant?, val jwtId: String)

JWS representation of a VerifiableCredential.

Link copied to clipboard
@Serializable
data class VerifiableCredentialSdJwt(val subject: String? = null, val notBefore: Instant? = null, val issuer: String, val expiration: Instant? = null, val issuedAt: Instant? = null, val jwtId: String? = null, val disclosureDigests: Collection<String>? = null, val verifiableCredentialType: String, val statusElement: JsonElement? = null, val selectiveDisclosureAlgorithm: String? = null, val confirmationClaim: ConfirmationClaim? = null)
Link copied to clipboard
@Serializable
data class VerifiablePresentation(val id: String, val type: String, val verifiableCredential: Collection<String>)

A Verifiable Presentation (see W3C VC Data Model), containing one or more VerifiableCredentials.

Link copied to clipboard
@Serializable
data class VerifiablePresentationJws(val vp: VerifiablePresentation, val challenge: String, val issuer: String, val audience: String, val jwtId: String)

JWS representation of a VerifiablePresentation.

Link copied to clipboard
data class VerifiablePresentationParsed(val id: String, val type: String, val freshVerifiableCredentials: Collection<VcJwsVerificationResultWrapper> = listOf(), val notVerifiablyFreshVerifiableCredentials: Collection<VcJwsVerificationResultWrapper> = listOf(), val invalidVerifiableCredentials: Collection<String> = listOf())

Intermediate class used by at.asitplus.wallet.lib.agent.Validator.verifyVpJws when parsing a verifiable presentation, and also by at.asitplus.wallet.lib.agent.VerifierAgent.verifyPresentationVcJwt.

Properties

Link copied to clipboard
var serializerModuleCollection: SerializersModule
Link copied to clipboard