本文转载自:
命令格式
APDU命令由命令头和命令体组成: CLA | INS | P1 | P2 | Lc | DATA | Le
命令头: CLA | INS | P1 | P2 命令体: Lc | DATA | Le命令各字段含义
CLA:命令报文的类别字节
P1: 参数 1P2:参数 2Lc:Data的长度(含4字节mac)Data:在命令的数据字段中发送的字节串Le:在向命令响应的数据字段中期望的字节最大数命令可分为四种情况:
Case1 | CLA INS P1 P2
Case2 | CLA INS P1 P2 LeCase3 | CLA INS P1 P2 Lc DataCase4 | CLA INS P1 P2 Lc Data LeCase1
这种情况时,命令中没有数据送到卡( Lc)中,也没有数据从卡中返回( Le)。
不含安全报文的命令: CLA | INS | P1 | P2 含安全报文的命令: CLA | INS | P1 | P2 | Lc | MAC注: Lc = MAC 的长度, 4 字节。Case2
这种情况时,命令中没有数据送到卡( Lc)中,有数据从卡中返回( Le)。
不含安全报文的命令: CLA | INS | P1 | P2 | Le含安全报文的命令: CLA | INS | P1 | P2 | Lc | MAC | Le注: Lc = MAC 的长度, 4 字节。Case3
这种情况时,命令中有数据送到卡( Lc)中,没有数据从卡中返回( Le)。
不含安全报文的命令: CLA | INS | P1 | P2 | Lc | Data含安全报文的命令: CLA | INS | P1 | P2 | Lc | Data+MAC注: Lc = 数据的长度 + MAC 的长度( 4 字节)。Case4
这种情况时,命令中既有数据送到卡( Lc)中,也有数据从卡中返回( Le)。
不含安全报文的命令: CLA | INS | P1 | P2 | Lc | Data | Le含安全报文的命令: CLA | INS | P1 | P2 | Lc | Data+MAC | Le注: Lc = 数据的长度 + MAC 的长度( 4 字节)。响应格式
格式1
| Data | SW1 SW2 |
格式2
| SW1 SW2 |
响应各字段含义
Data:在响应的数据字段中收到的字节串
SW1:状态字 1SW2:状态字 2