在线商店

uFCoder könyvtár gsamupel olvasható úti文档(MRTD) támogatása

Bevezetes

A . A . zevelpel olvasható úti okmányokba (MRTD-k) ágyazott NFC-címkéből származó adatcsoportok olvasásának támogatása, beeveltve az ICAO előírásainak megfelele-útleveleket is, az uFCoder könyvtárban ker lt bevezetzsre。

Az implementáció támogatja Az NFC芯片hozzáférés alapszintz hozzáférés-vezérlési (BAC) mechanizmusát。A BAC lehetővé teszi和hitelesítést samas egy biztonságos kriptográfiai kommunikációs csatornát az MRTD-be ágyazott NFC-címkével。一个BAC tisztán一个3DES算法必须használó szimmetrikus kriptográfián alapul,忧郁,忧郁Icao 9303reszenekMegfelelően valósul梅格。

Az ICAO a Nemzetközi Polgári rex Szervezet (https://www.icao.int) roviditese。Az ICAO 9303 specifikáció szabványosítja Az MRTD-ket,请查收。请参阅国际民航组织文件9303号megtalalhato https://www.icao.int/publications/pages/publication.aspx?docnum=9303weboldalon。

Az MRTD-k alapszintz hozzáférés-vezérlését AzuFCoderkodtartamogatja阿兹5.0.12-esverziotol

Annak erdekeben, hogy előszor az MRTD-be agyazott NFC-cimkevel hitelesitse magat,在凯尔adnia dokumentum szamat,一个dokumentum tulajdonosanak szuletesi datumat es一dokumentum lejarati datumat一MRTD_MRZDataToMRZProtoKey () funkciohoz hogy megkapja“原型kulcsot”,amelyből mas szukseges biztonsagi kulcsok szarmaznak。“原型kulcs”megszerzesehez szukseges osszes adat的(dokumentumszam, dokumentum tulajdonosanak szuletesi datuma es一dokumentum lejarati datuma)机器可读区(MRZ) kodolasu igy一konyvtar rendelkezik MRTD_MRZSubjacentToMRZProtoKey () fuggvennyel, amee MRTD_MRZDataToMRZProtoKey () helyett hivhato梅格。Ez a f ggvvmacry null végződésű karakterláncot fogad el,即az MRZ文件szubjacent sorát tartalmazza。Az alábbi képernyőképen egy psm - lda látható Az mrz - reegy megjelölt szubjacent sorsorr, amelynek tartalmát parm - csm - lendkell átadnia a MRTD_MRZSubjacentToMRZProtoKey() f ggvsamnyhez。

epassport MRZ”width=

MRTD támogatás könyvtárfunkciók

MRTD_MRZDataToMRZProtoKey

Funkcio leirasa

Annak erdekeben, hogy kovetkezőlepesekben szukseges MRZ原型kulcsot kapja, meghivhatja ezt fuggvenyt, es零vegződesűkarakterlancokat adhat neki, amelyek tartalmazzak一dokumentum szamat,一个dokumentum tulajdonosanak szuletesi datumat es一dokumentum lejarati datumat。A funkció sikeres végrehajtása után az MRZ proto_key egy mrz_proto_key 25 bájtos tömbben tárolódik。

Funkciódeklaráció(奈尔夫)

UFR_STATUS (MRTD_MRZDataToMRZProtoKey)

Const char *date_of_birth

Const char *date_of_expiry;

uint8_t mrz_proto_key [25]);

Parameterek

doc_number 穆塔松egy null végződésű karakterláncra,即蓬托桑9 karakterből álló dokumentumszámot tartalmaz。
date_of_birth Mutasson egy null végződésű karakterláncra,即pontosan 6 karakterből áll, samas a sz letsamsi dátumot jelöli "ÉÉHHNN" formátumban。
date_of_expiry Mutasson egy null végződésű karakterláncra,即pontosan 6 karakterből áll, samas即“ÉÉHHNN”formátumban jelöli a lejárati dátumot。
mrz_proto_key Ez a bájttömb tartalmazza a számított MRZ proto-kulcsot a f - ggvsamysikeres végrehajtása után。Ennek a tömbnek legalább 25 bájtot kell lefoglalnia a f ggv录影带录影带hívása előtt。

MRTD_MRZSubjacentToMRZProtoKey

Funkcio leirasa

A következő lsampsamsekben sz kssamhys MRZ Proto Key megszerzsamssamhys TD3 MRZ formátum esetsamhys (88 teljesen karakter hosszú) meghívhatja ezt A f (ggvsamhys), neki egy null végződésű karakterláncot,即MRZ szubjacent sort tartalmaz。Az eMRTD文件umra nyomtatott TD3 MRZ formátum példája így nsamz ki:

P < UTOERIKSSON < < <安娜玛丽亚 <<<<<<<<<<<<<<<<<<<

L898902C36UTO7408122F1204159ZE184226B < < < < < 10

Ennek a f - gvsamnynek egy - MRZ - subbjacent sort tartalmazó, null végződésű karakterláncra mutató mutatót kell kapnia, pl。“L898902C36UTO7408122F1204159ZE184226B < < < < < 10”。

Funkciódeklaráció(奈尔夫)

UFR_STATUS MRTD_MRZSubjacentToMRZProtoKey(const char *mrz, uint8_t mrz_proto_key[25]);

Parameterek
MRZ MRZ-adatokat tartalmazó, null végződésű karakterláncra mutató mutató。Az ICAO Doc 9303-10 szerint, ahol három MRZ adatformátummal rendelkezik: TD1, TD2 vagy TD3 formátum。一艘TD1吊船装载90 karaktert tartalmaz,一艘TD2吊船装载72 karaktert ,一艘TD3吊船装载88 karaktert tartalmaz。
mrz_proto_key Ez a bájttömb tartalmazza a számított MRZ proto-kulcsot a f - ggvsamysikeres végrehajtása után。Ennek a tömbnek legalább 25 bájtot kell lefoglalnia a f ggv录影带录影带meghívása előtt。

MRTDAppSelectAndAuthenticateBac

Funkcio leirasa

Ezzel a funkcióval hitelesítheti magát az eMRTD NFC-címkén a BAC használatával。这是一个funkció biztonságos kommunikációs csatornát hoz lsamtre。A biztonsági csatorna karbantartása Asend_sequence_cntparameterrel tortenik。A csatorna munkamenetkulcsai一个ksenc(titkosításhozksmac (MAC kiszamitasahoz)。

Funkciódeklaráció(奈尔夫)

UFR_STATUS MRTDAppSelectAndAuthenticateBac(const uint8_t mrz_proto_key[25], uint8_t ksenc[16])

uint8_t ksmac [16],

uint64_t * send_sequence_cnt);

Parameterek

mrz_proto_key MRZ protokey a MRTD_MRZDataToMRZProtoKey() vagy MRTD_MRZSubjacentToMRZProtoKey() function előzetes hívásával szerezhetbebe
KSENC Ennek a tömbnek legalább 16 bájtot kell lefoglalnia a f ggvsamymeghívása előtt。Ez a tömb munkamenet-titkosítási kulcsot fog tartalmazni a f ggvsamysikeres végrehajtása után
KSMAC Ennek a tömbnek legalább 16 bájtot kell lefoglalnia a愈伤组织 ggv előtt。Ez a tömb tartalmaz egy munkamenetkulcsot a MAC kiszámításához a funkció sikeres végrehajtása után。
send_sequence_cnt A f ggvsamysikeres végrehajtása után A 64 bites的samtsamykkre mutató mutatót el kell menteni samstovábbítani kell az MRTDFileReadBacToHeap()的sams / vagyaz eMRTD olvasására szolgáló egysamyf ggvsamyk minden további hívásakor

MRTDFileReadBacToHeap

Funkcio leirasa

Ezzel a funkcióval fájlokat olvashat az eMRTD NFC címkéről。Ezt a f gvsamnyt csak akkor hívhatja meg, ha a korábban meghívott

fuggveny MRTDAppSelectAndAuthenticateBac()。一个ksenc samas ksmac munkamenetkulcsokat, valamint一个send_sequence_cnt parsamictert一个korábban meghívott

fuggveny MRTDAppSelectAndAuthenticateBac()。A f ggvsamysikeres hívása után A *kimenet A paramsamoter által megadott eMRTD-fájlból beolvasott fájladatokra file_index mutat。一个puffer, amelyben az adatok tárolódnak, automatikusan lefoglalja memóriahalomra和f ggvsamuz végrehajtása során。一个报亭数据采集了maximális mennyis3kb的数据。一个programozó felelőssége,一个hogy használat után megtisztítsa一个左左glalt adatokat (azaz A free(),一个szabványos C f ggv录影带录影带meghívásával)。

Funkciódeklaráció(奈尔夫)

UFR_STATUS MRTDFileReadBacToHeap(const uint8_t *file_index)

uint8_t * * kimenet,

uint32_t * output_length,

Const uint8_t = 0;

Const uint8_t ksmac[16];

Parameterek

file_index

Az eMRTD-ből beolvasni kívánt fájlt meghatározó param辽阔。Ez egy bájttömbre mutató mutató,即pontosan k bájtot tartalmaz az eMRTD fájl jelölésére。Ez a ksametbájt fájlazonosító (FID), Ez a ksametzik a FID-ek listája:

EF.COM = {0x01, 0x1E}
EF。DG1 = {0x01, 0x01}
EF。DG2 = {0x01, 0x02}
EF。DG3 = {0x01, 0x03}
EF。DG4 = {0x01, 0x04}
EF。DG5 = {0x01, 0x05}
EF。DG6 = {0x01, 0x06}
EF。DG7 = {0x01, 0x07}
EF。DG8 = {0x01, 0x08}
EF。DG9 = {0x01, 0x09}
EF。DG10 = {0x01, 0x0A}
EF。DG11 = {0x01, 0x0B}
EF。DG12 = {0x01, 0x0C}
EF。DG13 = {0x01, 0x0D}
EF。DG14 = {0x01, 0x0E}
EF。DG15 = {0x01, 0x0F}
EF。DG16 = {0x01, 0x10}
EF。SOD = {0x01, 0x1D}

* hozam A f - ggvsamysikeres hívása után ez A mutató A file_index paramsametter által megadott eMRTD-fájlból beolvasott fájladatokra mutat。A puffer, amelyben az adatok tárolódnak, automatikusan kiosztásra ker l A f ggv 。一个报亭数据采集了maximális mennyis3kb的数据。一个programozó felelőssége,一个hogy használat után megtisztítsa一个左左glalt adatokat (azaz A free(),一个szabványos C f ggv录影带录影带meghívásával)。
output_length A f ggvsamysikeres hívása után ez A mutató A paramsameter által megadott eMRTD-fájlból beolvasott fájladatok msametysikeres file_index mutat。
KSENC Az MRTDAppSelectAndAuthenticateBac() f ggv阴郁korábbi hívásával beszerzett munkamenet-titkosítási kulcs。
KSMAC Az MRTDAppSelectAndAuthenticateBac() f ggv2013.2013.0 0 beszerzett MAC kiszámításához használt munkamenetkulcs。
send_sequence_cnt Ennek是mutatónak, 64个咬伤的人是, 4个咬伤的人,1个咬伤的人是korábban
inicializalt
az MRTDAppSelectAndAuthenticateBac() f ggvsamysikeres hívása。Erre a 64个版本的 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

uint64_t * send_sequence_cnt);

电子护照MRTD p忧郁

Ez - a passicda a következő helyről tölthető le:

//www.texashampton.com/code/nfc-rfid-reader-sdk/ufr-examples-ePassport_mrtd.git

vagy klónozza一个teljes eclipse CDT项目következővel:

git clone -rekurzív //www.texashampton.com/code/nfc-rfid-reader-sdk/ufr-examples-ePassport_mrtd.git

parancs。

Ha csak gyors futtatást szeretne, töltse le a projektet, indítsa el a bináris végrehajtható fájlt a megfelelerz mappából:

  • 32 bite Windows eset indítsa el a win32_releaserun_me. execmd fajlt
  • 64 bite Windows eset indítsa el a win64_releaserun_me. execmd fajlt
  • 32个版本Linux eset192.168.0 el a linux32_release/ePassport_mrtd
  • 64 bit Linux eset indítsa el a linux64_release/ePassport_mrtd。

A szoftveres psamadelda használatához uFR-olvasóeszközt kell csatlakoztatni csamadelda konfigurálni A számítógéphez。Az uFR-olvasót használó más alkalmazás vagy szolgáltatás nem futhat a számítógépen。Az "电子护照MRTD p " sikeres elindítása után a szoftver elindítja a fzokat Az alábbiak szerint。

电子护照olvasó MRTD NFC”width=

<">Most válassza ki az "M" vagy "P" opciók egyiksameta képernyőn megjelenzoalkalmazáshasználati utasításokban leírtak szerint。

Ha az "M" opciót választotta,一个rendszer和következő szöveget ksamri:

Ugy dontott hogy“P < XXXVEZETEKNEV < < KERESZTNEV <<<<<<<<<<<<<<<<<<<<<" alatt talalhato在底下的MRZ adja梅格:

Adja meg az邻接MRZ排序。隔壁的MRZ sornak 44 karakter hosszúnak kell lennie。

tehát írja是一个次相邻的MRZ排序。Az elsska ksamen látható egy psamen是一个相邻的MRZ sorra。

ellenkezeresetben,有一个“P”opciót választotta,一个rendszer和következő szöveget ksamri:

Úgy döntött, hogy külön adja Meg a documentum számát, sz letsamsi dátumát samas lejárati dátumát:

Adja meg是一份文件számát。一份文件számának 9 karakter hosszúnak kell lennie。

_________ ...

Adja meg a sz letsamsi dátumot。一个dátumformátumnak ÉÉHHNN-nek凯尔莱尼。

______ ...

Adja meg a lejárat dátumát。一个dátumformátumnak ÉÉHHNN-nek凯尔莱尼。

______ ...

Tehát adja meg az adatokat a megfelelerformátumban。

Az zenettel tájékoztatja Önt:

Az MRZ protokulcs beállítása sikeresen megtörtént。

——————————————————————-

Az zenet megjelensamae után folytathatja Az olvasási műveleteket Az ePassportba ágyazott NFC-címkén, amelyhez a korábban megadott adatok tartoznak。

Most elhelyezheti az útlevelet az uFR olvasó mezőjében。A sikeres kommunikáció létrejötte után alapvetten információkat kap az NFC címkéről az olvasó mezőben。peldaul:

——————————————————————-

Címke típusa: DL_GENERIC_ISO14443_4, sak = 0x??, uid[4] = ??:?? ?:?? ?

——————————————————————-

Ebben a példában a SAK, SAK, SAK, SAK, SAK, SAK, SAK, SAK, SAK,Az e-útleveleket mindig úgy ismeri feel a rendszer, mint DL_GENERIC_ISO14443_4 címketípust。

大多数kiválaszthatja az alkalmazás olvasási beállításait:

C”- ez az opció általános adatokat (EF.COM elemi fájlt) olvas be az ePassportból。A sikeres olvasás után A rendszer elziz3 - z3 megjeleníti az adatokat A következő formátumban:

EF.COM sikeresen elolvasták。fájl hossza ??Bajt

尼尔斯:60 xx xx xx……

几年前,我在EF.COM网站上看到了电子邮件:

可用分区LDS verziója: 01.07

Az UNICODE verziója 04.00.00

meglacei adatcsoportok listája:

Talalat: EF。DG1

Talalat: EF。DG2

Talalat: EF。DG3

Talalat: EF。DG14

——————————————————————-

Ebben和példában a nyers adatek maszkolva vannak,和tetszőleges kkrendelkezhetnek。Csak - nyers adatcímke volt jelen, mindig uyanaz lesz (0x60)。Amikor elolvassa saját dokumentumát, itt kapja meg是一名美国人。Az LDS 192.168.0 AzIcao 9303reszebenolvashatsz。

Az LDS sas UNICODE verziókat Az ePassport által tartalmazott adatcsoportlista követi。Csak a DG1 sas DG2 kötelező。Az összes többi adatcssport jelen lehet看起来很像一个MRTD-ben。

年代- ez az opció beolvassa a documentum biztonsági objektumát (EF。因此,基本文件),sams elmenti a bináris fájlba,即elsamr - samt - samt - samt - samt - samt - samt - samt - samt - samt - samt - samt。一个dokumentumbiztonsági对象szabványosPKCS # 7CMSFormátumú digitális aláírást tartalmaz。Az EF jelenlsamte。Tehát az MRTD kötelező。

D

1 '- ez az opció az EF-et olvassa。DG1, e - ezze, samas, samas, samas, samas, samas, adatokat, következő formátumban jeleníti meg:

EF。DG1 beolvasása sikeresen megtörtént。fájl hossza ??Bajt

Nyers adatok:

61 xx xx

  1. xx xxxx xx

Az EF egyszereelzsamei。1岁的孩子们:

证件kódja: P(电子护照)

Kibocsátó állam vagy szervezet: ??

一个搜索结果:CSALÁDI NÉV FIRST_NAME

文件中心száma: ?????????

Allampolgarsag: ? ?

sz letsamsiidei (): ???? ? ????。

Szex: ? ?

Lejárati idode (nn. mm . . cn .): ???? ????。

Nem kötelező adatok: ??????????????

——————————————————————-

Ebben和példában a nyers adatek maszkolva vannak,和tetszőleges kkrendelkezhetnek。Csak - nyers adatcímke volt jelen, samas mindig ugyanaz lesz (0x61)。Amikor elolvassa saját dokumentumát, itt kapja meg是一名美国人。

2》- ez az opció az EF-et olvassa。DG2的薪金薪金表为:a . bináris fájlba, a . elnek . elmedi . elmedi . elmedi . cn . útját。EF。A DG2 tartalmaz egy okmánytulajdonos arcképmását, samas kötelező。EF。DG2 az arckvac mellett biometrikus arcvonásokat是tartalmazhat。További információ az EF-ről。DG2-tartalom阿兹Icao 9303reszebenolvashato。

我”- ez az opció az EF-et olvassa。DG2-től搞笑。Ebben az esetben csak az arcksamp ker l kibontásra az MRTD-fájlból,即elsami - mansami - ker l - a - fájlba,即elsami - mani - mani - mani - mani - mani - mani - mani - mani - mani - mani - mani - mani - mani - mani - mani - mani - mani - mani - mani - mani - mani - mani - mani。一个自动驾驶的自动驾驶系统是一个képformátumot,一个自动驾驶系统是一个fájlkiterjesztést。Ehhez a kontextushoz ksamet lehetssamges képfájlformátum van definiálva: JPEG vagy JP2 (azaz . JPEG 2000)。

D '- ez az opció az elemi adatcsoportok bármelyikét beolvassa (EF。DG) fájlokat az MRTD-ből, sams elmenti a bináris fájlba,即samr - samt - samt - samt - samt - samt - samt - samt - samt - samt - samt - samt - samt - samt - samt。Miután kiválasztotta ezt az opciót, a rendszer k rni fogja az EF megadását。DG指数。Az index 1 lehet(表1)。DG1 sams 14 az EF esetsams。DG14)。Az olvasni kívánt elemi fájlnak szerepelnie kell a EF.COM adatcsoportok listájában。

Egyes opcionális elemi fájlok, különösen a biometrikus adatokat tartalmazó fájlok olvasása olyan különleges biztonsági mechanizmusokat igsamunyel, amelyek kívül esnek e documentum hatályán。

Az "ePassport MRTD p - lda" jelenlegi verziója 1.0,扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成扮成。

Baidu
map