智能卡61 xx错误-这究竟是什么意思?



我已经安装了一个我写在智能卡上的applet -但是当向它发送命令时,一直得到61xx响应。当我在jide中运行它时不会发生这种情况,只有在实际的卡上才会发生。

我理解61 xx的响应意味着'剩余的响应字节',xx是剩余的数据字节数-但我不确定为什么会发生这种情况。命令APDU的Le是否需要指定响应的字节数?我是否需要以某种方式获得响应(以及我如何做到这一点)?还是我得到这个错误的其他原因?

我用相同的代码(见下文)编写了其他applet,没有遇到这个问题

apdu.SetOutgoing();
apdu.setOutGoingLength(length);
apdu.sendByteslOng(buff, offset, length);

61xx不是一个错误,而是一个警告,参见ISO 7816, part 4, section 5.6。警告不那么严重,并且仍然保留它们的响应数据(因为错误而丢弃)。

61xx是最简单的状态码之一(超过9000),因为反应简单明了:发送Get Response命令,将P3/LE设置为SW2中指示的数字(61xx的xx部分)。这种状态的主要原因是,T=0协议无法发送任意多字节(所以它只发送61xx)或在响应中超过256字节(在这种情况下,它发送第一个块并指示后续多少字节;如果大于255,则只能显示255,并且需要重复Get Response命令来获取剩余的块)。

最新更新