我有关于T = 1智能卡通信协议的问题。假设终端发送I-block,其中预期的Ne数据将从卡返回(所谓的情况2S),并且卡发送的数据较少。这是否意味着终端应该等到超时,然后检查收到的最后两个字节(应该是SW1和SW2状态)?或者是否存在与该问题相关的其他方案? 对于T = 0协议,该问题由过程字节解决,但是在T = 1中我只看到上述方式。
由于
答案 0 :(得分:0)
guidot可能声称他不是专家,但我不相信他。
Ne值(使用Le编码)实际上仅表示要返回的最大字节数。您可能只是具有特定最大值的缓冲区大小,或者具有禁止使用更高值的开销(安全消息传递)。但是,您可以使用APDU命令,其中Ne用于指示可用时应发送的字节数,例如READ BINARY。
(响应)APDU的大小由底层数据链路层(帧内的块中使用的链接位和LEN字节)确定。 T = 1不是面向字节的协议,例如T = 0。对于T = 1且实际上T = CL,数据链路层确定命令和响应APDU的大小,而不是具有Nc和Ne字节的应用层。