C-APDU
C-APDU 包含一个必备的连续四字节的
命令头
,用 CLA 、 INS、 P1 和 P2 表示,同时包括一个可变长度的条件体。
命令头定义如下:
CLA:指令类型;除‘ FF’ 外可赋任何值。
INS:指令类型的指令码。只有在低半字节为 0,且高半字节既不是 ‘ 6’ 也不是‘ 9’时,INS 才有效。
P1 P2:完成 INS 的参数字节。
条件体
包括如下定义的字节串:
Lc 占一个字节,定义了在 C-APDU 中发送数据的字节数。Lc 的取值范围从 1 到255 。
在 C-APDU 中将要发送的数据,字节数由 Lc 定义。
Le 占一个字节,指出 R-APDU 中期望返回的最大字节数。Le 的取值范围从 0 到255 ;
如果 Le=0,则期望返回数据的字节数的最大长度是 256。
在应用选择中所给出的读记录(READ RECORD) 命令、选择(SELECT) 命令以及本规范第三册中所给出的所有情况2和情况4命令中,Le应该等于‘ 00’ 。
可能的 C-APDU 结构的四种情况见表:
情况 结构
1 CLA INS P1 P2
2 CLA INS P1 P2 Le
3 CLA INS P1 P2 Lc Data
4 CLA INS P1 P2 Lc Data Le
表 - C-APDU 的情况
R-APDU
R-APDU 是一串字节,这一串字节由一个
条件体
以及
必备的
两字节
状态码
SW1 SW2组成。
条件体是一串数据字节,其最大长度在 C-APDU 中的 Le 中定义。
必备的状态码表明 IC 卡在处理完命令后的状态。