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:

Inspection system:
The API makes it possible to read, decode, and validate
the information on the chip
(for some of these tasks JMRTD will need access to the issuing country's
country signing root certificates).

Enrollment / personalization system:
The API also allows to encode information by complying to the relevant standards.

Testing framework:
JMRTD was developed initially
to test conformance and security of ePassport implementations.

Extended access control (EAC) and supplemental access control (SAC/PACE) supported

LDS 1.7 decoding and encoding

CBEFF datagroups fully supported

JPEG2000 and WSQ encoded biometric images supported

Project History, Contributions, Background

JMRTD was initially developed in 2006 as part of a research project of the
Digital Security group (at the time known as the Security of Systems group)
at Radboud University in Nijmegen.
The research was sponsored by the Dutch
Ministry of Internal Affairs.
In this project the host API was connected to model-based test generation
systems TorX
and GAST
in an attempt to find vulnerabilities in the Dutch implementation of
the ePassport. The applet was developed to have an independent
implementation to test the model and the test-systems.

In 2011 ScanTech IT asked
Novay to bring JMRTD's encoding functionality
for the biometric image datagroups (which can hold images of the face,
fingerprints, iris, and handwritten signature) up to a standards compliant
level (e.g., compliant to ISO 19785, ISO 19794). ScanTech IT uses this
functionality in their biometric enrollment stations
which are used at many of the Danish Muncipalities (Kommuner) as part of
the issuing process for the second generation Danish ePassport.

In 2013 Novay implemented another proof-of-concept
Android app on top of JMRTD as part of an EIT ICT Labs project.

DexLab (Jeroen van Beek) has a couple of relevant tools:
eCl0wn
can read ePassports and runs on Nokia NFC handsets.
The THC-ePassport
is the ePassport emulating JavaCard applet used in the August 2008 Times articles.
These were likely also used in the "hack" of the British ID
card by Adam Laurie and Jeroen van Beek, reported on in the
Daily Mail
in August 2009.

The EJBCA project is a Java based CA server with support for
ePassport certificates. (JMRTD's handling of CV certificates for EAC actually depends on EJBCA code.)