为什么卡拒绝GPO命令?

时间:2015-03-04 08:09:30

标签: nfc smartcard apdu emv

我正在使用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相同的卡尝试完全相同的命令时,我的程序没有给我任何结果。结果是空白,但状态字是90 00(它们与返回的数据分开)。那是为什么?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

  
    
      

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

    
  

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