1. 协议格式
一个APDU可以是一个命令,也可以是命令的响应
。
命令APDU的一般格式:
CLA INS P1 P2 P3 Data
响应APDU的一般格式:
Data SW1 SW2
2. 协议各个字节的意义
CLA: 是指令类型,GSM应用为0xA0。
INS:每个命令的指令编码,下面有定义。
P1,P2,P3:指令参数。0xFF是个无效值,P3给出了数据单元的长度。对于传送命令,当SIM 流出数据时,P3=0表示数据的长度为256,而SIM 流入数据时P3=0表 示没有数据。
SW1,SW2:命令结果是否成功的状态。
3. 指令的5种情况
情况1:没有输入/没有输出
CLA INS P1 P2 P3(lgth=0x00)
SW1=0x90 SW2=0x00
情况2:没有输入/输出长度已知
CLA INS P1 P2 P3(长度值lgth)
DATA(长度为lgth) SW1=0x90 SW2=0x00
情况3:没有输入/输出长度未知
CLA INS P1 P2 P3(lgth=0)
SW1=0x9F SW2=lgth1
GET RESPONSE
CLA INS P1 P2 P3(lgth2)
DATA(长度leth1<=leth2) SW1=0x90 SW2=0x00
情况4:有输入/没有输出
CLA INS P1 P2 P3(lgth)
DATA(长度为lgth) SW1=0x90 SW2=0
情况5:有输入/输出长度未知或已知
CLA INS P1 P2 P3(lgth)
DATA(长度为lgth) SW1=0x9F SW2=lgth1
GET RESPONSE
CLA INS P1 P2 P3(lgth2)
DATA(长度lgth2<=lgth1) SW1=0x90 SW2=0x00