C-APDU R-APDU

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 卡在处理完命令后的状态。

原文地址:https://www.cnblogs.com/leegoo/p/3410505.html