MRTDREADER(1)

πŸ’– mrtdreader β€” the manual page, bestie edition πŸ’–

okay so you found yourself in the mrtdreader(1) section of the General Commands Manual and you're like "what is this" β€” don't worry, I got you. sit down, grab a boba, let's go πŸ§‹βœ¨


🌸 NAME 🌸

mrtdreader β€” a reader for machine-readable travel documents, aka MRTDs, aka ✨passports✨


πŸ¦‹ SYNOPSIS πŸ¦‹

mrtdreader [options] <MRZ>

πŸ’… DESCRIPTION πŸ’…

so this manual page is the brief little rundown of the mrtdreader command. short and sweet, we love that for us.

here's the tea: mrtdreader takes the content of the Machine-readable zone (the MRZ, yes) of a Machine-readable travel document (an MRTD), and then it reads out some data from that MRTD via RFID/NFC and dumps the facial image to a file. it's giving "wireless passport reading" and honestly? iconic.

MRTDs like passports these days usually have an RFID chip inside holding all kinds of data. The Basic Access Control (BAC) scheme is supported through the library libmrtd, and mrtdreader is literally the example program that ships together with libmrtd. it uses several cryptographic functions to do the decryption of the MRTD content that needs doing. and the key for the BAC scheme? derived from the Machine-readable zone (MRZ) that's printed right on the MRTD. the physical passport is the password, periodt πŸ’€

Content of MRTDs:

EF.DG1  - 0101 - MRZ
EF.DG2  - 0102 - Facial image
EF.DG3  - 0103 - Fingerprint
EF.DG4  - 0104 - Iris
EF.DG5  - 0105 - Portrait
EF.DG6  - 0106 - RFU
EF.DG7  - 0107 - Displayed signature
EF.DG8  - 0108 - Data features
EF.DG9  - 0109 - Structure features
EF.DG10 - 010A - Substance features
EF.DG11 - 010B - Additional personal details
EF.DG12 - 010C - Additional document features
EF.DG13 - 010D - Optional details
EF.DG14 - 010E - EAC
EF.DG15 - 010F - AA Public key
EF.DG16 - 0110 - Persons to notify
EF.CA   - 011C -
EF.SOD  - 011D - Security object data - hash values
EF.COM  - 011E - EF.COM

look at all those data groups. a whole wardrobe of them. πŸ’œ


✨ OPTIONS ✨

okay so here's the vibe check on how these work πŸ‘‘

if the MRZ is given on the command line, the following options are ignored. completely. they don't get a say. and if the MRZ is not specified, then all three of the following options must be specified, and the MRZ will be calculated from them. it's all or nothing, bestie.

  • -p <passport-number> β€” with this parameter you can specify the passport number. it consists of a maximum of 9 ASCII letters or digits. note that if this one is specified, -b and -e must be specified too. no solo acts around here 🫢
  • -b <date-of-birth> β€” specify the date of birth in the format YYMMDD. note that if this one is specified, -p and -e must also be specified. yes, they're a package deal.
  • -e <expiration-date> β€” specify the expiration date in the format YYMMDD. note that if this one is specified, -p and -b must also be specified. the trio stays together, always πŸ’–

πŸŽ€ AUTHOR πŸŽ€

this manual page was written by Ruben Undheim <ruben.undheim@gmail.com>, for the Debian project (and may be used by others). shoutout to Ruben, thank you for your service πŸ«‘πŸ’


and that's the whole page, bestie!! written for the Debian project, dated December 01, 2014 β€” a classic, a legend, an elder scroll of passport reading. go forth and read those MRTDs πŸ’…πŸŒˆβœ¨