应用层协议定义了C-APDU和R-APDU的具体结构。传输应用层(Trans-mission Application Layer,TAL)之间的数据交换都是由一个命令-响应对完成的,传输应用层(TAL)通过终端传输层(TTL)给IC卡发送命令C-APDU,IC卡处理完后将处理结果组成R-APDU通过TTL送给TAL。每个命令都有一个特定的响应相匹配,一个APDU就是一个命令报文或响应报文。
根据C-APDU和R-APDU是否包含数据域,APDU有四种情况,见表2-11。
表2-11 APDU的类型
1.C-APDU
C-APDU由四字节命令头CLA、INS、P1、P2和一个可变长度的条件体组成,其中4B命令头是必需的,条件体随命令的不同而变化。C-APDU的结构如图2-14所示。
图2-14 C-APDU结构
1)CLA:命令类型,占1B,不能为0xFF。
2)INS:指令码,当最低位是“0”,低半字节为0且高半字节既不是“6”也不是“9”时,INS才有效。
3)P1、P2:INS的附加参数,分别占1B。(www.xing528.com)
4)Lc:发送数据长度,占1B,在命令中定义为发送数据的字节数,取值范围是1~255。
5)Data:为将要发送的命令数据域,字节数由Lc定义。
6)Le:接收数据长度,占1B,指出命令响应中预期的数据最大字节数。Le的取值范围是0~255。如果Le=0,预期数据字节的最大长度是256。
根据不同的命令,条件体的组成也不相同,C-APDU有四种情况,见表2-12。
表2-12 C-APDU类型
2.R-APDU
R-APDU由一个最大长度为Le的数据域和一个强制性尾码组成,强制性尾码为2B状态代码,状态代码给出了IC卡对当前命令的处理结果,如图2-15所示。
图2-15 R-APDU结构
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。