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 EngagementQR Code-basedQR Code-based
Device Retrieval Data TransportBLE-based with mDocPeripheralServer and mDocCentralClient modeBLE-based using mDocPeripheralServer
Ephemeral Session Key CurveNIST P-*-based keysP-256-based key using Secure Enclave
Device Authentication ModeBoth Digital Signature and ECDH-agreed MACDigital Signature, P-256-based key using Secure Enclave

Packages

Link copied to clipboard
Link copied to clipboard