SIM卡APDU指令
一个APDU可以是一个命令,也可以是命令的响应。
命令APDU的一般格式: CLA INS P1 P2 P3 Data
响应APDU的一般格式: Data SW1 SW2
各个字节的意义如下: CLA: 是指令类型,GSM应用为0xA0。
INS:每个命令的指令编码,下面有定义。
P1,P2,P3:指令参数。0xFF是个无效值,P3给出了数据单元的长度。对于传送命令,当SIM 流出数据时,P3=0表示数据的长度为256,而SIM 流入数据时P3=0表 示没有数据。
SW1,SW2:命令结果是否成功的状态。
指令的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
11.11中命令集如下:
(1) SELECT 选择一个文件的方法:
ATR(复位)之后,MF将取消被选择,并且成为当前的目录。每个文件必须通过SELECT功能通过下面的规则来选择。
这时,你可以选择MF,也可以选择MF目录下的DF和MF目录下EF,若想要选择某一DF中的EF,必须先选择该DF成为当前目录,再选择DF中的EF。
例:
//SELECT
A0 A4 00 00 02 3F00
9F 17
//SELECT
A0 A4 00 00 02 7F10
9F 17
//SELECT
A0 A4 00 00 02 6F3A