WillyJL 89a7636d4e Merge passy from https://github.com/bettse/passy vor 7 Monaten
..
.catalog 89a7636d4e Merge passy from https://github.com/bettse/passy vor 7 Monaten
.github 89a7636d4e Merge passy from https://github.com/bettse/passy vor 7 Monaten
images 6611b64919 Merge passy from https://github.com/bettse/passy vor 8 Monaten
lib 2818c6cca5 Merge passy from https://github.com/bettse/passy vor 9 Monaten
reference 08628d25f2 Merge passy from https://github.com/bettse/passy vor 9 Monaten
scenes 4a2ed7cfff Merge passy from https://github.com/bettse/passy vor 7 Monaten
.clang-format 6354d44c1e Add passy from https://github.com/bettse/passy vor 9 Monaten
.gitignore 6354d44c1e Add passy from https://github.com/bettse/passy vor 9 Monaten
.gitsubtree 6354d44c1e Add passy from https://github.com/bettse/passy vor 9 Monaten
CODE_OF_CONDUCT.md 89a7636d4e Merge passy from https://github.com/bettse/passy vor 7 Monaten
CONTRIBUTING.md c7efef4010 Merge passy from https://github.com/bettse/passy vor 7 Monaten
LICENSE fbada1f715 Merge passy from https://github.com/bettse/passy vor 8 Monaten
README.md 89a7636d4e Merge passy from https://github.com/bettse/passy vor 7 Monaten
SECURITY.md c7efef4010 Merge passy from https://github.com/bettse/passy vor 7 Monaten
application.fam 6611b64919 Merge passy from https://github.com/bettse/passy vor 8 Monaten
bsearch.c 2818c6cca5 Merge passy from https://github.com/bettse/passy vor 9 Monaten
eMRTD.asn1 2818c6cca5 Merge passy from https://github.com/bettse/passy vor 9 Monaten
memmem.c 2818c6cca5 Merge passy from https://github.com/bettse/passy vor 9 Monaten
passy.c 2818c6cca5 Merge passy from https://github.com/bettse/passy vor 9 Monaten
passy.h 2818c6cca5 Merge passy from https://github.com/bettse/passy vor 9 Monaten
passy.png 6611b64919 Merge passy from https://github.com/bettse/passy vor 8 Monaten
passy_common.c 5fed652ef9 Merge passy from https://github.com/bettse/passy vor 9 Monaten
passy_common.h 2818c6cca5 Merge passy from https://github.com/bettse/passy vor 9 Monaten
passy_i.h e1247ae33d Merge passy from https://github.com/bettse/passy vor 9 Monaten
passy_reader.c d3d0255027 Merge passy from https://github.com/bettse/passy vor 8 Monaten
passy_reader.h 5347f915fc Merge passy from https://github.com/bettse/passy vor 9 Monaten
secure_messaging.c 6354d44c1e Add passy from https://github.com/bettse/passy vor 9 Monaten
secure_messaging.h 6354d44c1e Add passy from https://github.com/bettse/passy vor 9 Monaten

README.md

Passy: Flipper Zero Passport Reader

Passy is a tool for reading electronic passports (ePassports/eMRTDs) using the Flipper Zero device. It extracts and decodes data securely stored in modern passports, designed for hobbyists, researchers, and security professionals.


Features

  • Reads and decodes ePassport data from a wide range of countries
  • Utilizes MRZ (Machine Readable Zone) information for secure access
  • Extensible for new country support—contribute your flag!
  • Advanced menu for debugging and exploring additional data groups (DGs)

Tested with the following countries

🇺🇸 🇨🇱 🇫🇷 🇬🇧 🇵🇭 🇷🇺 🇹🇼 🇺🇦 🇦🇿 🇨🇦 🇮🇹 🇪🇸 🇪🇪 🇨🇭 🇦🇺 🇭🇰

If it works for yours, submit a PR to add your country flag!


Usage

eMRTDs are secured to prevent unauthorized reading. The key for accessing the data is derived from:

  • Passport number
  • Date of birth
  • Date of expiry

Use the Flipper Zero to scan your passport’s NFC chip and enter the required information.


Limitations

  • Advanced menu is hidden unless Debug mode is enabled
  • Some data groups (DGs) are not fully parsed under "advanced" menu
  • Country coverage is limited (see above)

Development

Prerequisites

  • Flipper Zero device (updated firmware recommended)
  • ufbt for building
  • asn1c ASN.1 compiler (for protocol/data parsing)

Installation

Clone this repository:

git clone https://github.com/bettse/passy.git
cd passy

Build the ASN.1 code (optional, required for development):

asn1c -D ./lib/asn1 -no-gen-example -pdu=all eMRTD.asn1

Roadmap / To Do

  • Support PACE protocol
  • Add support for more countries' passports
  • Improve parsing of additional DGs

Contributing

Contributions are welcome! If Passy works with a new country, feel free to:

  1. Add your country’s flag to the list above
  2. Submit a pull request

License

MIT License


Acknowledgments

  • Inspired by the global ePassport community
  • Powered by Flipper Zero and open-source tooling