JMRTD: An Open Source Java Implementation of Machine Readable Travel Documents

JMRTD is an open source Java implementation of the Machine Readable Travel Document (MRTD) standards as specified by the International Civil Aviation Organization (ICAO). The electronic passport (or "ePassport"), which by now has been introduced in many countries, is an implementation of these standards.

JMRTD provides both a card side application (the "passport applet") and a host side API for accessing ePassports. The passport applet makes it possible to create your own passports (in case you're starting your own country). The applet is written in Java Card.

The host side Java API can be used in different scenarios:

Note that since version 0.5.x JMRTD focusses on delivering ICAO Doc 9303 compliant low level building blocks (card specific communication, cryptographic protocols for access and clone detection, encoding and decoding of LDS content) in a consistent and comprehensive SDK. Higher level functionality such as demonstration applications (the Java Swing UI application), trust management (LDAP CSCA Nasterlist certificate lookup), and offline verification of the results of the protocols (Passive Authentication) have been deprecated. A complete solution for document verification, based on JMRTD is InnoValor's ReadID.

The main features of JMRTD:



March 20, 2017: Version 0.5.13 of host API released Download
July 24, 2010: Version 0.0.2b of applet released Download


Use Maven Central for the current version of the host side API.

Get it on Google Play