【问题标题】:Why is the card refusing the GPO command?为什么卡拒绝 GPO 命令?
【发布时间】:2015-03-04 08:09:29
【问题描述】:

我正在使用 Visa CDET 非接触式测试卡。我已成功选择应用程序,结果如下:

<= 6f 29 84 07 a0 00 00 00 03 10 10 a5 1e 50 0b 56 49 53 41 20 43 52 45 44 49 54 5f 2d 02 65 6e 9f 38 09 9f 66 04 9f 02 06 9f 37 04

结果包括要求以下项目的 PDOL:

Terminal Transaction Qualifiers
Length: 4 bytes

Authorised Amount
Length: 6 bytes

Unpredictable Number
Length: 4 bytes

说到 GPO 命令,我确实拥有所有需要的元素,如下所示:

=> 80 a8 00 00 10 83 0e f3 20 40 00 00 00 00 00 12 00 bc 4b a2 3f 00

但是当我运行命令时,我收到了 67 00 错误:错误的 Lc 长度。可能是什么问题?请记住,当使用来自同一套件的 Visa CDET Contact 测试卡时,相同的程序可以完美运行。

编辑: 关于同样的问题,我有一个测试阅读器用来确认我的读数。读卡器及其程序可以获得 GPO 选项并返回其他卡的结果,但是当我在自定义程序中使用 EXACT 相同的卡尝试 EXACT 相同的命令时,我的程序没有给我任何结果。结果为空白,但状态字为 90 00(它们与返回的数据分开)。这是为什么呢?

【问题讨论】:

  • 您确定您为该交易发送的 TTQ 对于非接触式交易是正确/有效的吗?见Getting Parser error on request for GPO command for EMV card
  • @MichaelRoland 请详细解释一下,因为在使用非接触式方法时导致上述错误的相同卡在使用接触式交易方法时不会显示此类错误,两次测试使用相同的程序完成。但我确信我的 TTQ 可以用于移动 POS 设备
  • 我不熟悉接触规范,但对于非接触式,TTQ 字节 1 (F3):位 7 是 RFU,根据当前的 CL Kernel 3 规范预计为零。根据 2.1 版中的 CL Kernel 3 规范,位 1 是 RFU,预计为零。所以我建议你试试B2B3。错误的 TTQ 并没有解释为什么卡会回复 SW 67 00
  • @MichaelRoland 您是否会碰巧知道哪些条件会导致 GPO 命令不返回任何结果,但状态条件是 90 00?这是没有要处理的 PDOL 选项的时候

标签: nfc smartcard apdu emv


【解决方案1】:

首先假设卡片是正确的:如果数据对象 83 的长度是 0x0F(而不是 0x0E)如果我计数正确,那么在 LC 中提供的总长度必须是 0x11 而不是 0x10(标签和要添加的长度)。这并没有解释为什么联系人版本可以工作,但可能在调整后仍然可以工作。

【讨论】:

  • 井 4 + 6 + 4 = 14 = 0x0E; 14 + 2 = 16 = 0x10。
  • @MichaelRoland:虽然您的计算完美无缺,但 0x0E 字节后有 15 个字节:f3 20 40 00 / 00 00 00 00 / 12 00 bc 4b / a2 3f 00 - 是零字节的数量中间对吗?
  • 正确。最后一个字节是 Le 字节(因为卡应该报告处理选项以响应 GPO 命令)。
  • @guidot,正如Michael所说,最后一个字节是给Le的
【解决方案2】:

我收到 67 00 错误:错误的 Lc 长度。

好的,因为你在 APDU 中没有 Lc=0x00 只需将 0x00 添加到 APDU

【讨论】:

    猜你喜欢
    • 2012-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 2019-01-12
    • 2011-07-02
    • 1970-01-01
    相关资源
    最近更新 更多