Package-level declarations

Types

Link copied to clipboard
object ByteStringWrapperItemsRequestSerializer : KSerializer<ByteStringWrapper<ItemsRequest>>
Link copied to clipboard
@Serializable
data class DeviceAuth(val deviceSignature: CoseSigned? = null, val deviceMac: CoseSigned? = null)

Part of the ISO/IEC 18013-5:2021 standard: Data structure for mdoc request (8.3.2.1.2.1)

Link copied to clipboard
@Serializable
data class DeviceKeyInfo(val deviceKey: CoseKey, val keyAuthorizations: KeyAuthorization? = null, val keyInfo: Map<Int, String>? = null)

Part of the ISO/IEC 18013-5:2021 standard: Data structure for MSO (9.1.2.4)

Link copied to clipboard
@Serializable
data class DeviceRequest(val version: String, val docRequests: Array<DocRequest>)

Part of the ISO/IEC 18013-5:2021 standard: Data structure for mdoc request (8.3.2.1.2.1)

Link copied to clipboard
@Serializable
data class DeviceResponse(val version: String, val documents: Array<Document>? = null, val documentErrors: Array<Pair<String, UInt>>? = null, val status: UInt)

Part of the ISO/IEC 18013-5:2021 standard: Data structure for mdoc request (8.3.2.1.2.1)

Link copied to clipboard
@Serializable
data class DeviceSigned(val namespaces: ByteArray, val deviceAuth: DeviceAuth)

Part of the ISO/IEC 18013-5:2021 standard: Data structure for mdoc request (8.3.2.1.2.1)

Link copied to clipboard
@Serializable
data class DocRequest(val itemsRequest: ByteStringWrapper<ItemsRequest>, val readerAuth: CoseSigned? = null)

Part of the ISO/IEC 18013-5:2021 standard: Data structure for mdoc request (8.3.2.1.2.1)

Link copied to clipboard
@Serializable
data class Document(val docType: String, val issuerSigned: IssuerSigned, val deviceSigned: DeviceSigned, val errors: Map<String, Map<String, Int>>? = null)

Part of the ISO/IEC 18013-5:2021 standard: Data structure for mdoc request (8.3.2.1.2.1)

Link copied to clipboard
@Serializable
data class DrivingPrivilege(val vehicleCategoryCode: String, val issueDate: LocalDate? = null, val expiryDate: LocalDate? = null, val codes: Array<DrivingPrivilegeCode>? = null)

Part of the ISO/IEC 18013-5:2021 standard: Data structure for Driving privileges (7.2.4)

Link copied to clipboard
@Serializable
data class DrivingPrivilegeCode(val code: String, val sign: String? = null, val value: String? = null)
Link copied to clipboard
@Serializable(with = ElementValueSerializer::class)
data class ElementValue(val bytes: ByteArray? = null, val date: LocalDate? = null, val string: String? = null, val drivingPrivilege: Array<DrivingPrivilege>? = null)

Convenience class to enable serialization of (nearly) "any" value in IssuerSignedItem.elementValue

Link copied to clipboard
object ElementValueSerializer : KSerializer<ElementValue>
Link copied to clipboard

ISO/IEC 5218 Codes for the representation of human sexes

Link copied to clipboard
object IsoSexEnumSerializer : KSerializer<IsoSexEnum?>
Link copied to clipboard
@Serializable
data class IssuerSigned(val namespaces: Map<String, IssuerSignedList>? = null, val issuerAuth: CoseSigned)

Part of the ISO/IEC 18013-5:2021 standard: Data structure for mdoc request (8.3.2.1.2.1)

Link copied to clipboard
@Serializable
data class IssuerSignedItem(val digestId: UInt, val random: ByteArray, val elementIdentifier: String, val elementValue: ElementValue)

Part of the ISO/IEC 18013-5:2021 standard: Data structure for mdoc request (8.3.2.1.2.1)

Link copied to clipboard
@Serializable(with = IssuerSignedListSerializer::class)
data class IssuerSignedList(val entries: List<ByteStringWrapper<IssuerSignedItem>>)

Convenience class with a custom serializer (IssuerSignedListSerializer) to prevent usage of the type Map<String, List<ByteStringWrapper<IssuerSignedItem>>> in IssuerSigned.namespaces.

Link copied to clipboard

Serializes IssuerSignedList.entries as an "inline list", having serialized instances of IssuerSignedItem as the values.

Link copied to clipboard
@Serializable
data class ItemsRequest(val docType: String, val namespaces: Map<String, ItemsRequestList>, val requestInfo: Map<String, String>? = null)

Part of the ISO/IEC 18013-5:2021 standard: Data structure for mdoc request (8.3.2.1.2.1)

Link copied to clipboard
@Serializable(with = ItemsRequestListSerializer::class)
data class ItemsRequestList(val entries: List<SingleItemsRequest>)

Convenience class with a custom serializer (ItemsRequestListSerializer) to prevent usage of the type Map<String, Map<String, Boolean>> in ItemsRequest.namespaces.

Link copied to clipboard

Serializes ItemsRequestList.entries as an "inline map", having SingleItemsRequest.key as the map key and SingleItemsRequest.value as the map value, for the map represented by ItemsRequestList.

Link copied to clipboard
@Serializable
data class KeyAuthorization(val namespaces: Array<String>? = null, val dataElements: Map<String, Array<String>>? = null)

Part of the ISO/IEC 18013-5:2021 standard: Data structure for MSO (9.1.2.4)

Link copied to clipboard
@Serializable
data class MobileDrivingLicence(val familyName: String, val givenName: String, val dateOfBirth: LocalDate? = null, val issueDate: LocalDate, val expiryDate: LocalDate, val issuingCountry: String? = null, val issuingAuthority: String? = null, val licenceNumber: String, val portrait: ByteArray, val drivingPrivileges: List<DrivingPrivilege>, val unDistinguishingSign: String? = null, val administrativeNumber: String? = null, val sex: IsoSexEnum? = null, val height: UInt? = null, val weight: UInt? = null, val eyeColor: String? = null, val hairColor: String? = null, val placeOfBirth: String? = null, val placeOfResidence: String? = null, val portraitImageTimestamp: LocalDate? = null, val ageInYears: UInt? = null, val ageBirthYear: UInt? = null, val ageOver18: Boolean? = null, val issuingJurisdiction: String? = null, val nationality: String? = null, val residentCity: String? = null, val residentState: String? = null, val residentPostalCode: String? = null, val residentCountry: String? = null, val familyNameNationalCharacters: String? = null, val givenNameNationalCharacters: String? = null, val signatureOrUsualMark: ByteArray? = null)

Part of the ISO/IEC 18013-5:2021 standard: Data structure for mDL (7.2.1)

Link copied to clipboard
@Serializable
data class MobileDrivingLicenceJws(val doctype: String, val namespaces: MobileDrivingLicenceJwsNamespace, val issuedAt: Instant, val expiration: Instant?)

JWS representation of a MobileDrivingLicence, used e.g. in the payload of a JWS in a single instance of ServerResponse.documents

Link copied to clipboard
@Serializable
data class MobileDrivingLicenceJwsNamespace(val mdl: MobileDrivingLicence)

JWS representation of a MobileDrivingLicence.

Link copied to clipboard
@Serializable
data class MobileSecurityObject(val version: String, val digestAlgorithm: String, val valueDigests: Map<String, ValueDigestList>, val deviceKeyInfo: DeviceKeyInfo, val docType: String, val validityInfo: ValidityInfo)

Part of the ISO/IEC 18013-5:2021 standard: Data structure for MSO (9.1.2.4)

Link copied to clipboard
@Serializable
data class ServerItemsRequest(val docType: String, val namespaces: Map<String, Map<String, Boolean>>, val requestInfo: Map<String, String>? = null)

Part of the ISO/IEC 18013-5:2021 standard: Data structure for Server retrieval mdoc request (8.3.2.2.2.1)

Link copied to clipboard
@Serializable
data class ServerRequest(val version: String, val token: String, val docRequests: Array<ServerItemsRequest>)

Part of the ISO/IEC 18013-5:2021 standard: Data structure for Server retrieval mdoc request (8.3.2.2.2.1)

Link copied to clipboard
@Serializable
data class ServerResponse(val version: String, val documents: Array<String>, val documentErrors: Map<String, Int>? = null)

Part of the ISO/IEC 18013-5:2021 standard: Data structure for Server retrieval mdoc response (8.3.2.2.2.2)

Link copied to clipboard
data class SingleItemsRequest(val key: String, val value: Boolean)

Convenience class with a custom serializer (ItemsRequestListSerializer) to prevent usage of the type Map<String, Map<String, Boolean>> in ItemsRequest.namespaces.

Link copied to clipboard
@Serializable
data class ValidityInfo(val signed: Instant, val validFrom: Instant, val validUntil: Instant, val expectedUpdate: Instant? = null)

Part of the ISO/IEC 18013-5:2021 standard: Data structure for MSO (9.1.2.4)

Link copied to clipboard
data class ValueDigest(val key: UInt, val value: ByteArray)

Convenience class with a custom serializer (ValueDigestListSerializer) to prevent usage of the type Map<String, Map<UInt, ByteArray>> in MobileSecurityObject.valueDigests.

Link copied to clipboard
@Serializable(with = ValueDigestListSerializer::class)
data class ValueDigestList(val entries: List<ValueDigest>)

Convenience class with a custom serializer (ValueDigestListSerializer) to prevent usage of the type Map<String, Map<UInt, ByteArray>> in MobileSecurityObject.valueDigests.

Link copied to clipboard

Serialized the ValueDigestList.entries as an "inline map", meaning ValueDigest.key is the map key and ValueDigest.value the map value, for the map represented by ValueDigestList

Properties

Link copied to clipboard
val cborSerializer: Cbor

Functions

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard