1

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

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

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

对于那些给出0x6984的卡,我尝试发送apdu 喜欢-

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 命令中使用它?

4

1 回答 1

4

显然,通过记录提供 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 编码的,而是通过将多个数据元素连接在一起构建的单个构造字段。”

于 2014-08-27T14:50:42.057 回答