获取处理选项给出 0x6984

Posted

技术标签:

【中文标题】获取处理选项给出 0x6984【英文标题】:get processing option gives 0x6984 【发布时间】:2014-08-27 06:38:25 【问题描述】:

我正在尝试读取 AFL - EMV 借记卡中的应用程序文件定位器。对于一些卡片,当我通过 apdu 时,比如 -

0x80, 0xA8, 0x00, 0x00, 0x02, 0x83, 0x00 ,0x00 (with no PDOL )

这里给出 0x900 但对于某些卡它给出 0x6984

对于那些提供 0x6984 的卡片,我尝试发送 apdu like-

0x80, 0xA8, 0x00, 0x00, 0x04, 0x83, 0x02, 0x08,0x26 , 0x00; 带有 PDOL 值 在这里它工作正常并根据需要提供 AFL。

按照标准说:-

6.5.8.3 Data Field Sent in the Command Message The data field of the command message is a data object coded according to the PDOL provided by the ICC, as defined in section 5.4, and is introduced by the tag '83'. When the data object list is not provided by the ICC, the terminal sets the length field of the template to zero. Otherwise, the length field of the template is the total length of the value fields of the data objects transmitted to the ICC

我的理解是 - PDOL 首先由 ICC 提供,然后我们在 GPO 命令中使用它。

我很困惑为什么有些卡在没有 PDOL 的情况下可以正常工作,或者有些卡不能。 PDOL 在 GPO 中的意义是什么,我如何从 ICC 获取 PDOL 以及我们如何在 GPO 命令中使用它??

【问题讨论】:

您可能还想查看this question/answer,了解 GPO 命令的构造以及如何找到 PDOL(通常在 EMV 应用程序 FCI 中) 【参考方案1】:

显然,通过记录提供 PDOL 是不好的,因为如果您不知道 PDOL,则无法发送 GET PROCESSING OPTIONS APDU,因此您无法获取可用记录的列表。

PDOL 可能存在于带有标签“9F38”的 FCI 数据中,该标签本身位于构建的标签“A5”下。

像任何其他数据对象列表一样解析 PDOL。如 EMV 支付系统集成电路卡规范第 3 册:应用规范,版本 4.3,2011 年 11 月,第 5.4 节中所述:

“DOL 是一个连接的条目列表,每个条目代表一个要包含在构造字段中的单个数据元素。每个条目的格式是标识所需数据的一字节或二字节标签对象,后跟一个字节长度,表示该字段在命令数据中应占用的字节数。"

并且当你在你的GET PROCESSING OPTIONS APDU中发送DOL相关数据时,可以参考规范的同一章节:

“为了尽量减少 ICC 内的处理,这样的列表不是 TLV 编码的,而是通过将多个数据元素连接在一起构建的单个构造字段。”

【讨论】:

您的意思是 TAG '9f38' 值表示,我们必须使用 GPO 命令发送哪些数据。在我的例子中,我们到达这里 - 9F 38 03 9F 1A 02。其中“9F 1A”表示“终端国家代码”,所以我们必须发送带有标签 0x83 的两个字节数据。对吗?

以上是关于获取处理选项给出 0x6984的主要内容,如果未能解决你的问题,请参考以下文章

当我尝试使用地理编码器获取地址时,给出“未处理的异常:PlatformException(失败,失败,null)”的运行时错误

linux输入参数的获取及处理

处理选项卡选择 SwiftUI

使用多线程处理一组数据库记录的选项?

当应用程序在权限处理中运行时,颤振蓝牙给出错误

处理 React Hooks 中的选择选项