命令APDU 包括头和主体(这可以在上面的图中看到)。头包括CLA,INS,P1 和P2 域。同T0 协议
一样,CLA 和INS 说明了应用的分类和指令。P1 和P2 用来详细说明具体指令,并由每一条[CLA,INS]
指令给出具体定义。APDU 的主体的长度可以改变,它可以作为命令的一部分传送数据到卡的APDU
处理器上,也可以用于传达一个从卡到阅读器的响应。Lc 域说明了作为指令一部分的传送到卡上的字
节数。也就是数据域的长度。数据域包括一定要传送到卡上的信息。该信息允许APDU 处理器执行
APDU 中说明的命令。Le 域以响应APDU 形式说明了返回到阅读器的字节数量。
APDU 的主体以四种形式存在:
情况1:没有数据发送或从卡上接收,所以APDU 只包括头。
情况2:没有数据传送到卡上,但有数据从卡上返回。APDU 的主体上只包含非空Le 域。
情况3:数据传送到卡上,但没有数据从卡上返回。APDU 的主体包括Lc 和数据域。
情况4:数据传送到卡上,同时有数据作为命令的结果从卡上返回。APDU 的主体包括Lc,数据和Le
域。
响应APDU 的结构比命令APDU 的结构简单的多。它包括主体和尾部。主体可以是null 也可以
包括数据域--------决定于具体命令。数据域的长度由相应的命令APDU 的Le 域决定。尾部包括两个
状态信息域,分别为SW1 和SW2。这些域返回状态码,一个字节用来说明错误种类。另一个字节用来说
明具体的命令状态或错误标志。
各个字段的详细含义可参见7816协议。