【问题标题】:Getting Parser error on request for GPO command for EMV card在请求 EMV 卡的 GPO 命令时出现解析器错误
【发布时间】:2014-06-28 16:58:33
【问题描述】:

我对 VISA 卡的 GET PROCESSING OPTIONS (GPO) 命令有一些问题。

以下是我对 VISA 申请的 SELECT 命令的回应:

6F408407A0000000031010A535500A564953412044454249549F380C9F66049F02069F37049F1A025F2D02656EBF0C1242034761735F550255539F5A0511084008409000

我从中提取了以下 PDOL:9F66049F02069F37049F1A02

我不确定标签9F66

我的 GPO 命令如下所示:

80a800000100000001000000001000823DDE7A12400

但我得到一个解析器错误作为响应:

6A80

【问题讨论】:

    标签: nfc apdu smartcard-reader contactless-smartcard emv


    【解决方案1】:

    您的 GPO 命令似乎有很多问题:

    80 A8 0000 01       00000001 000000001000 823DDE7A 1240 0
               ^^ ^^^^^ ^^^^^^^^                       ^^^^ ^^
               4. 1.      2.                             3.   5.
    
    1. 首先,您的 GPO 命令会在没有上下文的情况下发送几个数据字节。您需要将数据项包装到 PDOL 相关数据对象中:

      83 10 wwwwwwww xxxxxxxxxxxx yyyyyyyy zzzz
      
    2. 您的终端事务限定符 (9F66) 设置了 RFU 位。有效的 TTQ 可能如下所示:B620C000,带有

      • B6:
        • 支持磁条模式@bit 8
        • 支持 EMV 模式 @bit 6
        • 支持 EMV 接触芯片@bit 5
        • 支持在线模式@bit 4
        • 支持在线 PIN @bit 3
        • 签名支持@bit 2
        • 其他位 = RFU
      • 20:
        • 不需要在线密码@bit 8
        • 不需要 CMV @bit 7
        • (接触芯片)支持离线 PIN @bit 6
        • 其他位 = RFU
      • C0:
        • 支持发行者更新处理@Bit 8
        • 消费设备 CVM 支持@Bit 7
        • 其他位 = RFU
      • 00:RFU
    3. 您的终端国家代码无效。终端国家代码必须是 3 位数字值 BCD 编码为两个字节。假设您想使用“124”(加拿大),那么正确的国家/地区代码将是 0124(奥地利:0040,英国:0826,美国:0840)。

    4. Lc 字节(设置为01 = 一个数据字节)不反映实际数据长度。在您的情况下,实际数据长度为 16 个字节,因此 Lc 应设置为10。考虑到您还需要包含 PDOL 相关数据对象的标签和长度,您的 Lc 字节应设置为 12(18 个字节)。

    5. 您作为 GPO 命令提供的十六进制字符串未与字节对齐,因此您缺少 Le 字段的半字节。 You Le字段应该设置为Le

    所以您的 GPO 命令可能如下所示:

    80 A8 0000 12 83 10 B620C000 000000001000 823DDE7A 0124 00
    

    【讨论】:

    • 感谢 Micheal 的详细解释但不幸的是得到了 6A80 的响应。正在查看标签的数据选项,我正在尝试通过移动 nfc
    • @SaravanaCd 查看我更新的答案,PDOL 相关数据有标签83 而不是9F38
    • 我尝试使用上述命令 APDU 但不幸的是应用程序崩溃了,尝试将 APDU 更改为以下 80a800002 83 10B620C0000000000001000823DDE7A012400 但仍然得到相同的响应。
    • @SaravanaCd 应用程序是否崩溃,或者您是否收到错误代码?此外,您在命令中显示的 APDU 与我给您的 APDU 匹配!
    • @Micheal ,当我发送您建议的 APDU 命令时,我没有得到任何结果,并且应用程序崩溃了,但是当我发送上述 APDU 时,我得到了 6A80 的响应。不确定还在寻找匹配 APDU
    猜你喜欢
    • 1970-01-01
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    • 2022-09-30
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 2018-01-09
    相关资源
    最近更新 更多