tsemrtd
simple library for eMRTD datagroups
site
•
docs
- Simple: Hides decoding process and provides simple and modern API
- Type-Safe: Most of the APIs are strictly typed to help your workflow
- Compliance: Fully complies with ICAO 9303, ISO/IEC 19794 and other standards
- Supports Bun, Node.js, Deno, Browsers, Cloudflare Workers
- Supports CSCA masterlist's (ICAO PKD)
# from NPM
npm i @li0ard/tsemrtd
# from JSR
bunx jsr add @li0ard/tsemrtd import { DG1 } from "@li0ard/tsemrtd";
const file = await Bun.file("EF_DG1.bin").bytes();
const data = DG1.load(file);
console.log(data);
// P<D<<MUSTERMANN<<ERIKA<<<<<<<<<<<<<<<<<<<<<<
// C11T002JM4D<<9608122F1310317<<<<<<<<<<<<<<<6import { DG2 } from "@li0ard/tsemrtd";
const file = await Bun.file("EF_DG2.bin").bytes();
const data = DG2.load(file);
await Bun.write("image.jp2",data[0].imageData);| Name | Descripion |
|---|---|
| COM | Manifest |
| DG1 | MRZ Info |
| DG2 | Face image |
| DG3 | Fingerprint image (Optional) |
| DG4 | Iris image (Optional) |
| DG5 | Displayed image (Optional) |
| DG7 | Signature image (Optional) |
| DG11 | Additional personal data (Optional) |
| DG12 | Additional document data (Optional) |
| DG14 | EAC/PACE data (Conditionally mandatory) |
| DG15 | Active authentication data (Conditionally mandatory) |
| SOD | Security object of document |
Library doesn't support datagroups #6,8,9,10,13,16 because they are defined for optional information for each state.
- jmrtd - An Open Source Java Implementation of eMRTD
- ICAO 9303 - Specifications to MRTD
- ISO/IEC 19794(-4/-5/-6) - Specifications to Biometric Information Encoding (BioAPI)
- ISO/IEC 39794(-4/-5/-6) - Specifications to biometric data interchange formats
- NIST IR 6529A - Specifications to CBEFF
- BSI TR-03110 - Specifications to EAC/PACE