@li0ard/tsemrtd
v0.3.4
Published
simple library for eMRTD. supports browsers, node, bun and more!
Maintainers
Readme
Features
- 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)
Installation
# from NPM
npm i @li0ard/tsemrtd
# from JSR
bunx jsr add @li0ard/tsemrtd Usage
Get MRZ
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<<<<<<<<<<<<<<<6Extract and save photo
import { 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);Supported DG's
| 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.
Links
- 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
