智能卡 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命令获取剩余的块)。
我已经安装了一个写在智能卡上的小程序 - 但在向它发送命令时,一直收到 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命令获取剩余的块)。