mDocs Verifier SDK

Overview

The mDocs verifier SDK is based on the ISO/IEC 18013-5 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.

The general responsibilities of the SDK can be summarised as the following:

  • Manage a list of trusted issuer certificates which presented mDocs can be validated against.

  • Interface with a holder to request presentations of issued mDocs as per ISO/IEC 18013-5.

  • Manage a list of mDocs status lists which is used to check the revocation status.

In this SDK mDocs are referred to as Mobile Credentials.

Supported ISO/IEC 18013-5 Features

ISO/IEC 18013-5 as a standard contains many different features, some of which are not currently supported by this SDK. Below is a summary of supported features:

FeatureOptions SupportedDefault Option Selected
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

System requirements

This SDK is developed in the Kotlin programming language and is meant for integration into Android applications. It currently supports Android 7 (API level 24) and above.

SDK Change Log

1.0.1

Breaking changes

  • All functions may now throw standard Errors that were previously masked.

  • All non-public methods and classes are now marked as internal or private.

  • The global.mattr.mobilecredentialverifier package was renamed to global.mattr.mobilecredential.verifier.

  • The DataTransportException exception was renamed to DataTransportDisconnectedException.

Features

  • The SDK now supports checking the revocation and suspension status of presented mDocs:

    • The requestMobileCredentials function now takes an skipStatusCheck boolean flag that will skip the status check when set to true. Defaults to false.

  • Operations now throw an UnsupportedCurveException exception when encountering an unsupported cryptographic curve.

  • Storage engine replacement, resulting in the removal the Realm dependency.

  • HTTP Client replacement to support Android 7, resulting in the removal of the OkHttp dependency.

  • Increased debug logging throughout SDK.

  • Updated all 3rd party libraries to recent versions.

Sample app

  • Continues to show credential after session has ended.

  • No longer ends session when receiving an invalid credential.

0.6.1 (Tech preview release)

Features

  • SDK Docs improvements.

0.6.0 (Internal release)

Features

  • SDK Docs improvements.

Licence & Compliance

  1. Request or download the MATTR Pi SDK Trial Licence Agreement and the MATTR Customer Agreement and review these terms carefully.

  2. Sign and return the MATTR SDK Trial Licence Agreement to us.

Packages

Link copied to clipboard
Link copied to clipboard