APDU协议,即是智能卡与读写器间的应用层协议,在ISO7816-4[7]中定义了该协议的结构格式。APDU数据有两种结构,读写器使用的APDU结构为命令APDU,C-APDU(Command APDU),智能卡方面使用的APDU结构为响应APDU,R-APDU(Reponse APDU)。
命令APDU
必选部分:CLA, INS, P1, P2
可选部分:LC, 数据段, LE
CLA确定APDU的类别,INS确定要执行的指令,P1和P2是参数。
LC确定数据段的长度,数据段是发送到智能卡上的数据,LE确定读写器期待智能卡响应的字节数。
响应APDU
可选部分:数据段
必选部分:SW1, SW2
数据段的长度由命令APDU的LE确定。
SW1和SW2是状态字。