gmrtd

package module
v0.0.0-...-1733d6c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 22, 2025 License: MIT Imports: 0 Imported by: 0

README ยถ

Coverage Lines of Code Security Rating Maintainability Rating Reliability Rating Vulnerabilities Code Smells Technical Debt codecov codebeat badge Go Report Card

gmrtd

Go library for reading Machine Readable Travel Documents (MRTDs), such as Passports and Identity Cards.

As specified by the International Civil Aviation Organization (ICAO), in Doc Series 9303.

Demo application for use with a PCSC NFC Reader is available here.

Sample Documents

The following are sample documents that have been read:

Country
(Type,Year)
PACE Chip Authentication Ext
Len
LDS
Ver
๐Ÿ‡ฆ๐Ÿ‡บ Australia
(P,2016)
n/a (BAC) AA-rsaEncryption Yes 0107
๐Ÿ‡ฆ๐Ÿ‡น Austria
(P,2023)
PACE-ECDH-GM-AES-CBC-CMAC-128
brainpoolP256r1
CA-ECDH-AES-CBC-CMAC-128
brainpoolP256r1
Yes 0107
๐Ÿ‡จ๐Ÿ‡ฆ Canada
(PP,2023)
PACE-ECDH-GM-AES-CBC-CMAC-128
secp384r1
CA-ECDH-AES-CBC-CMAC-128
secp384r1
No 0108
๐Ÿ‡จ๐Ÿ‡ณ China
(PO,2018)
n/a (BAC) AA-rsaEncryption No 0107
๐Ÿ‡ซ๐Ÿ‡ฎ Finland
(I,2023)
PACE-ECDH-GM-AES-CBC-CMAC-256
brainpoolP384r1
PACE-ECDH-CAM-AES-CBC-CMAC-256
brainpoolP384r1
Yes 0108
๐Ÿ‡ซ๐Ÿ‡ฎ Finland
(P,2024)
PACE-ECDH-GM-AES-CBC-CMAC-256
brainpoolP384r1
PACE-ECDH-CAM-AES-CBC-CMAC-256
brainpoolP384r1
Yes 0108
๐Ÿ‡ซ๐Ÿ‡ท France
(P,2017)
PACE-ECDH-GM-AES-CBC-CMAC-256
secp256r1
(Issue #9)
secp256t1
Yes 0107
๐Ÿ‡ซ๐Ÿ‡ท France
(ID,2024)
PACE-ECDH-GM-AES-CBC-CMAC-256
brainpoolP256r1
PACE-ECDH-IM-AES-CBC-CMAC-256
brainpoolP256r1
(PACE-IM not supported)
CA-ECDH-AES-CBC-CMAC-256
brainpoolP256r1
Yes 0108
๐Ÿ‡ฉ๐Ÿ‡ช Germany
(P,2023)
PACE-ECDH-GM-AES-CBC-CMAC-128
brainpoolP256r1
PACE-ECDH-CAM-AES-CBC-CMAC-128
brainpoolP256r1
CA-ECDH-AES-CBC-CMAC-128
brainpoolP256r1
Yes 0108
๐Ÿ‡ฒ๐Ÿ‡พ Malaysia
(P,2023)
n/a (BAC) CA-ECDH-3DES-CBC-CBC
brainpoolP256r1
Yes 0107
๐Ÿ‡ณ๐Ÿ‡ฟ New Zealand
(P,2017)
PACE-ECDH-GM-3DES-CBC-CBC
brainpoolP256r1
AA-rsaEncryption No 0107
๐Ÿ‡ต๐Ÿ‡ญ Philippines
(P,2020)
n/a (BAC) AA-rsaEncryption Yes 107
๐Ÿ‡ท๐Ÿ‡บ Russia
(P,2020)
n/a (BAC) CA-ECDH-3DES-CBC-CBC
secp192
Yes 0107
๐Ÿ‡ธ๐Ÿ‡ฌ Singapore
(PA,2023)
PACE-ECDH-GM-AES-CBC-CMAC-256
brainpoolP256r1
n/a Yes 0108
๐Ÿ‡น๐Ÿ‡ผ Taiwan
(P,2024)
PACE-ECDH-GM-AES-CBC-CMAC-256
secp256r1
n/a Yes 0107
๐Ÿ‡ฌ๐Ÿ‡ง United Kingdom
(P,2021)
PACE-ECDH-GM-AES-CBC-CMAC-256
secp256r1
CA-ECDH-AES-CBC-CMAC-256
secp256r1
Yes 0108
๐Ÿ‡บ๐Ÿ‡ธ United States
(P,2021)
n/a (BAC) n/a ? 0107

Contributors

Made with contrib.rocks.

Documentation ยถ

Overview ยถ

Package gmrtd provides mechanisms for reading and validating ICAO 9303 travel documents.

Directories ยถ

Path Synopsis
Package activeauth implements the 'Active Authentication' mechanism for verifying the authenticity of the Contactless IC.
Package activeauth implements the 'Active Authentication' mechanism for verifying the authenticity of the Contactless IC.
Package bac implements the 'Basic Access Control' (BAC) authentication protocol.
Package bac implements the 'Basic Access Control' (BAC) authentication protocol.
Package chipauth implements the 'Chip Authentication' mechanism for verifying the authenticity of the Contactless IC.
Package chipauth implements the 'Chip Authentication' mechanism for verifying the authenticity of the Contactless IC.
Package cms implements the 'Cryptographic Message Syntax' (CMS) as described in RFC-5652.
Package cms implements the 'Cryptographic Message Syntax' (CMS) as described in RFC-5652.
Package cryptoutils provides cryptographic utility functions.
Package cryptoutils provides cryptographic utility functions.
Package document implements data structures for representing the content of the MRTD.
Package document implements data structures for representing the content of the MRTD.
Package iso7816 implements utilities for interacting with the Contactless IC.
Package iso7816 implements utilities for interacting with the Contactless IC.
Package mrz provides utilities for parsing the 'Machine Readable Zone' (MRZ).
Package mrz provides utilities for parsing the 'Machine Readable Zone' (MRZ).
Package oid provides utilities relating to ASN.1 'Object Identifiers' (OIDs).
Package oid provides utilities relating to ASN.1 'Object Identifiers' (OIDs).
Package pace supports the 'Password Authenticated Connection Establishment' (PACE) authentication protocol.
Package pace supports the 'Password Authenticated Connection Establishment' (PACE) authentication protocol.
Package password provides utilities for generating MRTD passwords (MRZ,MRZi,CAN) used during BAC/PACE authentication.
Package password provides utilities for generating MRTD passwords (MRZ,MRZi,CAN) used during BAC/PACE authentication.
Package TLV provides support for 'Tag-Length-Value' (TLV) formatted data.
Package TLV provides support for 'Tag-Length-Value' (TLV) formatted data.
Package utils provides generic utilities.
Package utils provides generic utilities.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL