Mobile driver's license (mDL) settings

A list of all valid configuration settings for the config.txt file which relate to reading mobile driver's licenses (or other mobile ID documents, such as eID or photoID) as tap data, over a BLE GATT server, when the VTAP PRO is in Local mode. Reading mobile driver's licenses requires an additional VTAP feature license.

Note: Bluetooth is only available on VTAP100-PRO-BW hardware.

mDLMode enables reading mobile driver's license (mDL) data from a phone. An NFC tap of the phone initiates the read, then the data is transferred over an encoded Bluetooth service. The phone may initiate a static handover, where the phone specifies the data transfer process to the VTAP reader, or a negotiated handover, where the VTAP reader and phone will negotiate (over NFC) the mechanism for the data transfer. This handover message to the VTAP reader is a tap of pass type H, which can be queried using a ?type command. The mDL data returned to the VTAP reader appears as a tap of pass type M.

You use the mDLRead setting to choose the data elements you want to retrieve from any mobile driver's license. mDLFormat allows you to adjust the format of the mDL data retrieved, as just a list of values, rather than data element names and values, with pre- or postfix characters or different separators to suit your application. If the Bluetooth connection and speed of data transfer is an issue, you can adjust the mDLTimeout to limit the time a VTAP reader should wait to receive mDL data.

mDLDocType and mDLNamespace are settings to allow other mobile ID documents to be used, in addition to mobile driver's licenses.

New from v2.5.0.2
mDLMode
Definition:

Turns mobile driver's license (mDL) reading on or off. (Cannot be enabled at the same time as BTKeyboardMode or BTServerMode). When enabled this will disable the ECP frame in the NFC polling loop. Note: Reading mobile driver's licenses requires an additional VTAP feature license.

Options:

=N enables mDL reading starting with an NFC tap from a phone,
=0 switches it off (default)

Default value: =0
Example value: =N
New from v2.5.0.2
mDLRead
Definition:

This determines which fields will be read from any mobile driver's license (mDL).

Options:

Any data elements from the mDL specification ISO/IEC 18013-5 (currently available as a 2024 working draft for consultation) such as family_name, birth_date, age_over_18. These items are listed under Data model > mDL data, and are now part of the IANA JSON Web Token Claims registry in RFC 7519.

Use a comma to separate fields to be retrieved in a list.

Unless data elements are specified against this setting nothing will be read.

Default value: N/A
Example value: =family_name,birth_date,age_over_18
New from v2.5.0.2
mDLTimeout
Definition:

This limits the amount of time a VTAP reader will wait for a user to OK release of data from a mobile driver's license (mDL). A VTAP reader cannot request mDL data from another user until this time period has expired, so the appropriate value will be chosen to optimise usability in a particular application.

Options:

Number of seconds. Default is 30s.

Default value: =30
Example value: =15
New from v2.5.0.2
mDLFormat
Definition:

This allows you to define a format in which to output mobile driver's license (mDL) data.

Options:

By default mobile driver's license information will be formatted as <item_id>=<item_value>|<item_id>=<item_value> which might be family_name=Doe|birth_date=2001-12-31|age_over_18=true

You define a preferred format using these placeholders, to retrieve data in any order, with repetition if needed:
%n - the name of the next mDL item,
%v - the value of the next mDL item,
%XX , where XX is a two character hex digit representing the binary value of a character to use (URL encoding style),
%% would append '%' to the output,
%<item_id> - the value of an mDL field, replacing <item_id> with a data element from the mDL specification ISO/IEC 18013-5 (currently available as a 2024 working draft for consultation), such as family_name, birth_date, age_over_18.

Note: Be aware that using too many %n or %v items, or different numbers of them could produce odd results. The lists of items are counted independently and will repeat if needed, so the 4th call for a value item in a list of only 3 will wrap and return the 1st one again.

Placing any part of the list of placeholders ending with a separator character in square brackets, as in the default =[%n=%v|], will repeat that format for as many name-value pairs of items exist in the mDL data.

You can place pre- or postfix characters before and/or after the part in square brackets if needed.

Default value: =[%n=%v|]
Example value: =[Value %n=%v, ]%0A
New from v2.5.0.2
mDLVerifyIssuerCert
Definition:

This allows you to require that the Issuer's Certificate is verified to be Certificate Authority certified, before any mDL data can be retrieved.

Options:

=0 disabled (currently the default as certificates are not yet widely available)
=1 enabled

Default value: =0
Example value: =1
New from v2.5.0.2
mDLDocType
Definition:

This allows you to provide a list of mobile ID document types that could be read, if available, to find the field chosen in mDLRead from any mobile ID document type and namespace pair.

Options:

The list is comma separated, with the nth document type listed being associated with the nth namespace listed against mDLNamespace.

This is subject to a 127 character limit for the line in config.txt, and a limit of 20 types.

Default value: =org.iso.18013.5.1.mDL
Example value: =org.iso.18013.5.1.mDL,org.iso.23220.photoid.1
New from v2.5.0.2
mDLNamespace
Definition:

This allows you to provide a list of mobile ID namespaces that could be read, if available, to find the field chosen in mDLRead from any mobile ID document type and namespace pair.

Options:

The list is comma separated, with the nth namespace listed being associated with the nth document type listed against mDLDocType.

This is subject to a 127 character limit for the line in config.txt, and a limit of 20 types.

Default value: =org.iso.18013.5.1
Example value: =org.iso.18013.5.1,org.iso.23220.1