ISO 7816-3 T = 0如何工作?

use*_*055 5 smartcard

我正在尝试理解发送APDU命令 - 响应对的通信.任何人都可以用简单的方式解释T = 0的工作原理吗?

APDU和TPDU有什么区别?

例如,命令头是CLA,INS,P1,P2和P3 = 0x20 32字节数据.卡如何知道命令的第5个字节是Lc还是Le?卡如何知道不期望任何命令数据,以及它如何知道读者是否期望响应中的数据?

另一件事,过程字节何时参与场景?是程序字节吗?或者,程序字节?卡是否必须发送过程字节?

Maa*_*wes 7

APDU是应用协议数据单元,TPDU是传输协议数据单元.如果已经为T = 0定义了APDU命令响应对并且它具有命令数据和响应数据(情况4S),则将生成单独的TPDU以发送和接收数据(GET RESPONSE).参见ISO/IEC 7816-3(2006)第12.2.1章.

卡知道P3(字节5)的含义,因为它是服务器.应该以这样的方式实现每个命令,使得P3只能具有单一含义.在这方面,ISO/IEC 7816不符合OSI堆栈 - 层不是严格分开的.这是ISO 7816 的主要问题之一.

过程字节是T = 0传输协议的一部分.它没有在应用程序协议中定义,尽管它可能映射到状态字的第一部分SW1.它只发送给接口设备(IFD)指示做什么.有关更多信息,请参见ISO/IEC 7816-3(2006)的第10.3.3章.第10章定义T = 0,T = 1不包含过程字节.