Mobile Credential Holder SDK
Overview
The Mobile Credential Holder SDK is based around the ISO/IEC 18013-5:2021 standard which establishes an interoperable digital representation for mobile based credentials such as mobile drivers licenses (mDL). However, this SDK is designed to work for more then just mDLs, but rather any conforming mobile document (mdoc) - a term defined in ISO/IEC 18013-5:2021. “Mobile Credentials” is the MATTR product term equivalent of “mdoc”.
This SDK is developed in the Kotlin programming language and is meant for integration into Android applications. It currently supports Android API level 24 to 34.
The general responsibilities of the SDK can be summarised as the following:
Generate, store and manage access to Mobile Credentials issued to an application integrating the SDK.
Generate, store and manage access to device keys which are bound to issued Mobile Credentials.
Manage a list of trusted issuer certificates which issued Mobile Credentials can be validated against.
Interface with a Mobile Credentials verifier and present an issued Mobile Credential inspection/verification as per ISO 18013-5.
Interface with a Mobile Credentials issuer to obtain a Mobile Credential as per OpenID4VCI (OpenID for Verifiable Credential Issuance).
Supported ISO/IEC 18013-5:2021 Features
ISO/IEC 18013-5:2021 as a standard contains many different features, some of which are not currently supported by this SDK. Below is a summary of supported features:
Device Engagement | QR Code-based | QR Code-based |
Device Retrieval Data Transport | BLE-based with mDocPeripheralServer and mDocCentralClient mode | BLE-based using mDocPeripheralServer |
Ephemeral Session Key Curve | NIST P-*-based keys | P-256-based key using Secure Enclave |
Device Authentication Mode | Both Digital Signature and ECDH-agreed MAC | Digital Signature, P-256-based key using Secure Enclave |