在线商店

介绍#

uFCoder库中已支持从嵌入在机器可读旅行证件(MRTD)中的NFC标签读取数据组,包括符合ICAO规范的电子护照。

(bac)英文释义(2) NFC (NFC)【中文译文Icao 9303实施。

国际民航组织 代表 国际民用航空组织 (https://www.icao.int)。Icao 9303;您可以在https://www.icao.int/publications/pages/publication.aspx?docnum=9303网站上找到整个国际民航组织9303号文件系列。

英文翻译版本5.0.12uFCoder库中受支持。

为了首先对嵌入在MRTD中的NFC标签进行身份验证,您必须将文档编号,文档持有人的出生日期和文档到期日期传递给功能MRTD_MRZDataToMRZProtoKey(),以便获取“原型密钥”,从中将派生其他必要的安全密钥。获取“原型密钥”(文档编号,文档持有人的出生日期和文档到期日期)所需的所有数据都编码在机器可读区(MRZ)中,因此库具有MRTD_MRZSubjacentToMRZProtoKey()函数,可以调用该函数而不是MRTD_MRZDataToMRZProtoKey()。齐晖,齐晖,齐晖,齐晖。下面的屏幕截图显示了带有标记下层行的MRZ示例,您必须将其内容作为参数传递给函数MRTD_MRZSubjacentToMRZProtoKey()。

【翻译

捷运支持库功能#

MRTD_MRZDataToMRZProtoKey#

功能说明

为了获取后续步骤中所需的MRZ原型密钥,您可以调用此函数并向其传递以零结尾的字符串,其中包含文档编号,文档持有人出生日期和文档到期日期。成功执行函数后,MRZ原型密钥将存储在25字节mrz_proto_key数组中。

[中文]:中文

*doc_number;

出生日期;

*日期到期;

uint8_t mrz_proto_key [25]);

参数

doc_number 齐格、齐格、齐格、齐格、齐格、齐格、齐格、齐格。
date_of_birth 指向以零结尾的字符串的指针,该字符串正好包含6个字符,以“YYMMDD”格式表示出生日期。
date_of_expiry 指向以零结尾的字符串的指针,该字符串正好包含6个字符,表示“YYMMDD”格式的到期日期。
mrz_proto_key 齐泽恺,齐泽恺,齐泽恺,齐泽恺,齐泽恺。在调用此函数之前,此数组必须至少分配 25 个字节。

MRTD_MRZSubjacentToMRZProtoKey#

功能说明

为了获取后续步骤中所需的MRZ原型密钥,对于TD3 MRZ格式(总共88个字符长),您可以调用此函数并向其传递一个包含MRZ子交集的以零结尾的字符串。中文:MRZ

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

L898902C36UTO7408122F1204159ZE184226B < < < < < 10

此函数应接收指向包含MRZ下贾分行的以零结尾的字符串的指针,即“L898902C36UTO7408122F1204159ZE184226B < < < < < 10”。

[中文]:中文

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

参数
MRZ 齐声齐声。整整9303-10个字,整整9303-10个字,整整9303-10个字。TD1正好包含90个字符,TD2正好包含72个字符,TD3正好包含88个字符。
mrz_proto_key 齐泽恺,齐泽恺,齐泽恺,齐泽恺,齐泽恺。在调用此函数之前,此数组必须至少分配 25 个字节。

MRTDAppSelectAndAuthenticateBac#

功能说明

eMRTD NFC。此功能建立安全的通信通道。使用send_sequence_cnt参数维护安全通道。【中文翻译】ksmac(一)。

[中文]:中文

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

uint8_t ksmac [16],

uint64_t * send_sequence_cnt);

参数

mrz_proto_key 使用先前调用MRTD_MRZDataToMRZProtoKey()或MRTD_MRZSubjacentToMRZProtoKey()函数获取的MRZ原型密钥
克森克 在调用此函数之前,此数组必须至少分配 16 个字节。成功执行函数后,此数组将包含会话加密密钥
KSMAC 此数组在调用此函数之前必须至少分配 16 个字节。齐泽恺,齐泽恺,齐泽恺,齐泽恺,齐泽恺。
send_sequence_cnt 成功执行此函数后,应在每次后续调用MRTDFileReadBacToHeap()和/或其他用于读取eMRTD的函数时保存并转发指向此64位值的指针。

MRTDFileReadBacToHeap#

功能说明

ei / ei / ei / ei / ei只有在之前调用的 成功建立安全通道后,才能调用此函数

MRTDAppSelectAndAuthenticateBac()。send_sequence_cnt

MRTDAppSelectAndAuthenticateBac()。成功调用此函数后,*输出指向从file_index参数指定的eMRTD文件中读取的文件数据。存储数据的缓冲区在函数执行期间自动分配到内存堆上。32kb。1 . free() . free()。

[中文]:中文

UFR_STATUS MRTDFileReadBacToHeap(const uint8_t *file_index)

好物好物;

uint32_t * output_length,

[au:] [qh]

[cn] [cn]

参数

file_index

【中文译文】【中文翻译】、【中文翻译】、【中文翻译】、【中文翻译】【参考译文】、【参考译文】

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

*输出 成功调用此函数后,此指针指向从file_index参数指定的eMRTD文件中读取的文件数据。存储数据的缓冲区在函数执行期间自动分配。32kb。1 . free() . free()。
output_length 成功调用此函数后,此指针指向从file_index参数指定的eMRTD文件中读取的文件数据的大小。
克森克 使用先前调用MRTDAppSelectAndAuthenticateBac()函数获取的会话加密密钥。
KSMAC 用于计算使用先前调用MRTDAppSelectAndAuthenticateBac()函数获取的MAC的会话密钥。
send_sequence_cnt 此指针应指向由先前
初始化的 64 位值
MRTDAppSelectAndAuthenticateBac()。指向此64位值的指针应保存,并在每次后续调用此函数和/或用于读取eMRTD的其他函数时转发。

uint64_t * send_sequence_cnt);

电子护照捷运示例#

此示例可从以下位置下载:

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

eclipse CDT:

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

命令。

如果只想快速运行,请下载项目并从相应的文件夹启动二进制可执行文件:

  • windows32、windows32、win32_releaserun_me.cmd
  • win64_releaserun_me.cmd . Windows
  • linux32_release/ePassport_mrtd . Linux
  • linux64_release/ePassport_mrtd . Linux

【中文译文】对,就是这样。“。

NFC

<“>”,“咪”,“咪”,“咪”,“咪”。

“m”,“m”。

您已选择输入位于“P < XXXSURNAME < < FIRSTNAME <<<<<<<<<<<<<<<<<<<<<” 下的下MRZ行:

mr . z。【中文译文】

mr . z .;“”“”“”“”

“p”,“p”,“p”

您已选择分别输入文档编号、出生日期和到期日期:

输入文档编号。文档编号的长度应为 9 个字符。

_________ ...

输入出生日期。yymmdd。

______ ...

输入到期日期。yymmdd。

______ ...

因此,请以适当的格式输入数据。

输入有效数据后,应用程序将通过一条消息通知您:

1 .中文翻译:

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

【中文译文】“”“”“”“”“”例如:

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

【翻译】:DL_GENERIC_ISO14443_4,sak = 0x??,uid[4] = ??:??:??:????

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

【中文翻译】:dl_generic_iso14443_4

现在,您可以选择应用程序读取选项:

C”- - - - - - - - - - - - - - - - - - - - - - - - - - - -读取成功后,数据将按以下格式解析和显示:

中国生物医学工程研究院。文件长度为 ??字节

中文:60 xx xx xx

【翻译】

LDS: 01.007

Unicode: 04.00.00

现有数据组列表:

等。DG1

等。DG2

等。DG3

等。DG14

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

此示例中的原始数据被屏蔽,它们可以具有任意值。(0x60)。当您阅读自己的文档时,您将在此处获得其实际原始数据。中文:http://www.chinacmes.com/chinac/chinac.htmlIcao 9303阅读。

齐泽恺:齐泽恺,齐泽恺。齐格,齐格,齐格。“”“”“”“”“”

S”- - - - - - - - - - - - -所以基本文件),并将其保存到二进制文件中,当您提示时必须输入该路径和名称。文档安全对象包含标准PKCS # 7CMS格式的数字签名。[英文]【中文译文】

D

1”- - - - - - - -DG1,解析它并按以下格式显示原始数据和解析的数据:

英 孚。1 .中文翻译:文件长度是??字节

原始数据:

61 xx xx

  1. xxxxxx x

[cn]DG1原始数据:

【中文译文】

发证国或发证组织:???

第一个名字

文档编号:?????????

国籍:???

出生日期(日月): ??.??.????.

性:????

到期日期(日月): ??.??.????.

可选数据:??????????????

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

此示例中的原始数据被屏蔽,它们可以具有任意值。(0x61)。当您阅读自己的文档时,您将在此处获得其实际原始数据。

2”- - - - - - - -DG2并将其保存到二进制文件中,当您出现提示时必须输入该路径和名称。 英 孚。DG2包含一个文件持有人面部图像,这是强制性的。 英 孚。面部图像旁边的DG2也可以包含生物识别面部特征。 有关 EF 的更多信息。您可以在国际民航9303【翻译】

我”- - - - - - - -dg2。【中文译文】、【中文译文】自动检测图像格式,并根据它设置文件扩展名。“JPEG”或“JP2”(“2000.jpeg”)。

D”——此选项读取任何基本数据组(EF.DG)文件,并将其保存到二进制文件中,当您出现提示时,您必须输入该路径和名称。【翻译】【中文】:【翻译】【翻译】Dg1 1 . 14;DG14)。【中文译文】

读取某些可选的基本文件,尤其是包含生物识别数据的文件,需要特殊的安全机制,这些机制超出了本文档的范围。

“电子护照MRTD示例”的当前版本为1.0,取决于uFCoder库版本5.0.12和这里固件版本5.0.22。

Baidu
map