tsemrtd
simple library for eMRTD datagroups
site
•
docs
Warning
tsemrtd is currently in alpha stage: the lib is not very stable yet, and there may be a lot of bugs feel free to try it out, though, any feedback is appreciated!
- 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 and ISO/IEC 19794 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"
let file = await Bun.file("EF_DG1.bin").bytes()
let data = DG1.load(Buffer.from(file))
console.log(data)
// P<D<<MUSTERMANN<<ERIKA<<<<<<<<<<<<<<<<<<<<<<
// C11T002JM4D<<9608122F1310317<<<<<<<<<<<<<<<6
import { DG2 } from "@li0ard/tsemrtd"
let file = await Bun.file("EF_DG2.bin").bytes()
let data = DG2.load(Buffer.from(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)
- NIST IR 6529A - Specifications to CBEFF
- BSI TR-03110 - Specifications to EAC/PACE