按AID命令选择不起作用

时间:2015-07-02 07:50:53

标签: smartcard apdu emv

我想重新开发新的桌面应用程序,以便从EMV智能卡中读取信息,并且我有来自以前(工作)应用程序的日志

假设EMV智能卡中有一个AID = 44 44 44 44 44 44 44 44(DDDDDDDD)的应用程序。

我正在发送APDU命令:00 A4 04 00 08 44 44 44 44 44 44 44 44 00并获得超时异常(超时= 60s)。

我尝试发送APDU命令:00 A4 04 00 08 44 44 44 44 44 44 44 44并得到响应代码= 61 37。

我试图选择文件1PAY.SYS.DDF01,立即得到响应= 6a82(它是对的)。

2 个答案:

答案 0 :(得分:4)

错误代码61XX表示在使用Le = XX:

调用Get Response命令后,您将收到数据

示例:

--> 00 A4 04 00 08 44 44 44 44 44 44 44 44
<-- 61 37
--> 00 C0 00 00 37
<-- some data of length 0x37 and status code 90 00.

相关问题: About Get Response command in javacard

Oracle的文档:

  

可能有多个APDU连接同时打开使用   具有相同卡的不同逻辑信道。但是,自APDU以来   协议是同步的,不能交错命令和   他们在逻辑信道上的响应APDU。收到之间   命令APDU和向该命令发送响应APDU,   只有一个逻辑通道处于活动状态对于T = 0协议,对于情况4和   case 2命令APDU卡可以用'61 XX'或'6C XX'响应。   这些特殊情况必须由实现中的   以下方式:

     

'61 XX':在发送任何其他命令之前,实现必须向卡发送GET RESPONSE以获取响应数据。   '6C XX':在任何其他命令出现之前,设置必须重新发送命令后,将Le等于从卡接收的XX   发送。

     

在上面讨论的两种情况中,实施必须确保   在发送命令APDU,接收状态字'61 XX'之间   或'6C XX',并发送GET RESPONSE或重新发送命令APDU   Le分别设置为XX,不得有任何其他APDU   在任何逻辑信道上与卡交换。如果是状态字   '61 XX'是从卡上连续多次收到的   实现必须累积从中收到的所有响应数据   卡返回到J2ME应用程序之前。 J2ME应用程序   必须仍然忘记上面提到的交流,而且应该只是   得到上述操作后收到的回复。

答案 1 :(得分:1)

我将库从RXTXserial更改为JSSC,它解决了我的问题。现在我得到没有GET RESPONSE请求的回复。谢谢你们。