Nincs leírás

Eric Betts ae6793b74f Merge pull request #27 from abcMarcus/main 7 hónapja
.catalog 37fe6d4fec Added AU and HK flag 7 hónapja
.github 4ece979e10 PULL_REQUEST_TEMPLATE 7 hónapja
images 0939786adf Save epassport logos 8 hónapja
lib 7238894af2 Add com reading and asn1 parsing 9 hónapja
reference 37b252d2a2 reference material 9 hónapja
scenes a193ddf9a2 uppercase all letters in passport number 8 hónapja
.clang-format 9fe02b0a3e Clear history 9 hónapja
.gitignore 9fe02b0a3e Clear history 9 hónapja
CODE_OF_CONDUCT.md 16e0bfa0f8 CODE_OF_CONDUCT 7 hónapja
CONTRIBUTING.md 2472d5f5f4 Create CONTRIBUTING.md 7 hónapja
LICENSE b8c7803b36 Create LICENSE 8 hónapja
README.md 37fe6d4fec Added AU and HK flag 7 hónapja
SECURITY.md 8c3b9715df Create SECURITY.md 7 hónapja
application.fam 7581bc2191 more changelog items 8 hónapja
bsearch.c 88e7f838eb trying to use asn1c to decode DG1 9 hónapja
eMRTD.asn1 7238894af2 Add com reading and asn1 parsing 9 hónapja
memmem.c 89e36f2e4e Look for jpeg header in first 100 bytes of DG2 9 hónapja
passy.c 194c9778d1 For all other DG, grab the header and show that 9 hónapja
passy.h 9ea747ecc9 restructure UI 9 hónapja
passy.png 36d65b1f64 new icon 8 hónapja
passy_common.c 6c42d1b981 Fix for document numbers containing Q-Z 9 hónapja
passy_common.h 68c87dcbe2 Fix calculation of file length 9 hónapja
passy_i.h 80348d61d7 Restart NFC scanner is unhandled protocol is found 9 hónapja
passy_reader.c 81360b90d7 Correct fallback when dg2 image header can't be found 8 hónapja
passy_reader.h 8611f0508c Accept 4A protocol 9 hónapja
secure_messaging.c 7c05345f96 DRY up key diversification 9 hónapja
secure_messaging.h 633e3da57d handle dynamic passport number length 9 hónapja

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