仔细阅读 ISO/IEC 7816-3:2006,第 12.2.5 节指定了当阅读器发送一个 Lc>0,Le>0 的命令 APDU 用于 T=0 传输协议(字节流)时会发生什么。初始命令 TPDU 没有 Le 字段,如果卡响应成功,应用程序应发送 0xC0 GET RESPONSE 命令,直到收到 Le 字节。
问题:如果智能卡期望返回数据,卡返回 0x9000 以响应初始 T=0 命令(在任何 GET RESPONSE 命令之前)实际上是否有效,正如 7816-3 所指定的那样?应用程序在 0x9000 响应后发出 GET RESPONSE 命令是否有效?相比之下,通过阅读javax.smartcardio中 doTransmit和OpenSC 中 sc_transmit的用法,这些应用程序似乎只在 sw=0x61xx 响应之后尝试 GET RESPONSE,而在 sw=0x9000 响应之后从未尝试。