智能卡 61 xx 错误 - 这到底是什么意思?

Smart Card 61 xx Error - what exactly does this mean?

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

我知道 61 xx 的响应意味着 'response bytes remaining' 并且 xx 是剩余的数据字节数 - 但我不确定为什么会这样。命令APDU的Le是否需要指定响应的字节数?我是否需要以某种方式获得响应(以及我该怎么做)?或者我收到此错误还有其他原因吗?

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

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

61xx 不是错误,而是警告,请参阅 ISO 7816,第 4 部分,第 5.6 节。警告不太严重并且仍然保留其响应数据(因错误而被丢弃)。

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