Read your Passport in one Click

pyPassport (API) and ePassport Viewer (GUI) are two GPL-friendly tools that allow to read and check electronic passports. Additionally, they can save the content of a passport, export it (database, pdf file, etc.), and much more. pyPassport and ePassport Viewer can be tested on a provided sample file, but they require an RFID reader (cost about 30 euros) to work in practice. An optional optical reader can be plugged to avoid to type the MRZ of the passport. pyPassport and ePassport Viewer are compliant with Windows, Mac OS X, and Linux.

The two tools have been developped by Jean-François Houzard and Olivier Roger during their Master Thesis achieved under the supervision of Gildas Avoine in the Information Security Group of the UCL in Belgium.

  pyPassport

pyPassport is an API written in Python that allows to interact with electronic passports compliant with ICAO Doc9303. It provides an interface with the following functionalities:

  • Perform the Basic Access Control and Secure Messaging.
  • Perform the passive and active authentications.
  • Read the content of the ePassport, including pictures in JPEG2000 format.
  • Create "valid" auto-signed ePassport content.

pyPassport is released under GNU Lesser General Public License, Version 3 License.

  ePassport Viewer

ePassport Viewer is a GUI built on top of pyPassport. The software provides the following functionalities:

  • Read and display the results.
  • Save/Load a dump.
  • Export subset of data (Picture, Signature, Public key, Certificate).
  • Export a summary in XML or PDF format.
  • Verify the data's authenticity and integrity.

ePassport Viewer is released under GNU General Public License, Version 3 License.

Disclaimer

Before using pyPassport, you must be sure that you are allowed to read the contactless chip of your passport, according to the laws and regulations of the country that issued it.

Download

Files can be found on the project page:

Links

  • The JMRTD website provides some Country Signing Certificates that can be used with pyPassport.
  • You can learn more about electronic passports: "Belgian Biometric Passport does not get a pass..."
    by Gildas Avoine, Kassem Kalach, and Jean-Jacques Quisquater (2007).
  • Some related softwares:

Acknowledgment

We would like to thank J.-P. Szikora, M. Oostdijk, A.Laurie, I. Etingof, Ph. Teuwen, and M. Vuagnoux for their comments or advices.