1.APDU命令集
1.1 ISO智能卡通用APDU命令集(详细介绍:ISO 7816标准(中文版).pdf中75~100页)
编号 |
指令名称 |
CLA |
INS |
功能描述 |
1 |
READ BINARY |
00/04 |
B0 |
读出带有透明结构的EF内容的一部分
|
2 |
WRITE BINARY |
|
D0 |
将二进制值写入EF |
3 |
UPDATE BINARY |
00/04 |
D6 |
启动使用在命令APDU中给出的位来更新早已呈现在EF 中的位
|
4 |
ERASE BINARY |
|
0E |
顺序地从给出的偏移开始将EF的内容的一部分置为其 逻辑擦除的状态
|
5 |
READ RECORD |
00/04 |
B2 |
给出了EF的规定记录的内容或EF的一个记录开始部分的 内容
|
6 |
WRITE RECORD |
|
D2 |
WRITE RECORD命令报文启动下列操作之一: ——写一次记录; ——对早已呈现在卡内的记录数据字节与在命令APDU中给出的记录数据字节进行逻辑“或”运算; ——对早已呈现在卡内的记录数据字节与在命令APDU中给出的记录数据字节进行逻辑“和”运算
|
7 |
APPEND RECORD |
00/04 |
E2 |
启动在线性结构EF的结束端添加记录或者在循环结 构的EF内写记录号1
|
8 |
UPDATE RECORD |
00/04 |
DC |
启动使用命令APDU给出的位来更新特定记录
|
9 |
GET DATA |
|
CA |
可在当前上下文(例如应用特定环境或当前DF)范围内用于检索一个原始数据对象或者包含在结构化数据对象中所包含的一个或多个数据对象 |
10 |
PUT DATA |
|
DA |
可在当前上下文(例如应用特定环境或当前DF)范围内用于存储一个原始数据对象或者包含在结构化数据对象中的一个或多个数据对象正确的 存储功能(写一次和/或更新和/或添加)通过数据对象的定义和性质来引出
|
11 |
SELECT FILE |
00 |
A4 |
设置当前文件后续命令可以通过那个逻辑信道隐式地引用该当前文件
|
12 |
VERIFY |
00/04 |
20 |
启动从接口设备送入卡内的验证数据与卡内存储的引用数据(例如口令)进行比较
|
13 |
INTERNAL AUTHENTICATE |
00 |
88 |
启动卡使用从接口设备发送来的询问数据和在卡内存储的相关秘密(例如密钥)来计算鉴别数据 当该相关秘密被连接到MF时命令可以用来鉴别整个卡 当该相关秘密被连接到另一个DF时命令可以用来鉴别那个DF
|
14 |
EXTERNAL AUTHENTICATE |
00 |
82 |
使用卡计算的结果(是或否)有条件地来更新安全状态而该卡的计算是以该卡先前发出(例如通过GETCHALLENGE命令)的询问在卡内存储的可能的秘密密钥以及接口设备发送的鉴别数据为基础的
|
15 |
GET CHALLENGE |
00 |
84 |
要求发出一个询问(例如随机数)以便用于安全相关的 规程(例EXTERNAL AUTHENTICATE 命令)
|
16 |
MANAGE CHANNEL |
|
70 |
打开和关闭逻辑信道
|
17 |
GET RESPONSE |
00 |
C0 |
用于从卡发送至接口设备用可用的协议不能传送的那一 些的APDU(或APDU的一部分)
|
18 |
ENVOLOPE |
80 |
C2 |
用来发送那些不能由有效协议来发送的APDU 或APDU的一部分或任何数据串
|
表6 ISO智能卡APDU命令集
命令格式:
1.READ BINARY的命令报文:
CLA |
00/04 |
INS |
B0 |
P1-P2 |
见表下面说明 |
Lc字段 |
空 |
数据字段 |
空 |
Le字段 |
待读的字节数 |
说明:
如果在P1中b8=1, 则P1的b7和b6置为0(RFU若干位) P1的b5至b1是短EF标识
符并且P2是在从文件开始的数据单元中被读的第1个字节的偏移。
如果在P1中b8=0, 则P1_P2是在从文件开始的数据单元中被读的第1个字节的
偏移。
如果Le字段仅包含若干“0” 则对于短的长度在不超过256的范围内或者对扩充长
度在不超过65536的范围内所有字节(直到文件结束为止)应被读出。
READ BINARY的响应报文:
数据字段 |
读的字节(Le字节) |
SW1-SW2 |
状态字节:用来说明指令执行是否出错,由于什么原因出错 |
2.WRITE BINARY命令报文:
CLA |
00/04 |
INS |
D0 |
P1-P2 |
见表下面说明 |
Lc字段 |
后续数据字段的长度 |
数据字段 |
待写的数据单元串 |
Le字段 |
空 |
说明:
如果在P1中b8=1, 则P1的b7和b6显域 0(RFU若干位) P1的b5至b1是短EF标识
符并且P2是在从文件开始的数据单元中被写的第1个字节的偏移。
如果在P1中b8=0, 则P1_P2是在从文件开始的数据单元中被写的第1个字节的
偏移。
WRITE BINARY的响应报文:
数据字段 |
空 |
SW1-SW2 |
状态字节:用来说明指令执行是否出错,由于什么原因出错 |
3.UPDATA BINARY命令报文:
CLA |
00/04 |
INS |
D6 |
P1-P2 |
见表下面说明 |
Lc字段 |
后续数据字段的长度 |
数据字段 |
待写的数据单元串 |
Le字段 |
空 |
说明:
如果在P1中b8=1, 则P1的b7和b6置为0(RFU若干位), P1的b5至b1是短EF标识
符,并且P2是在从文件开始的数据单元中被更新的第1个字节的偏移。
如果在P1中b8=0, 则P1_P2是在从文件开始的数据单元中被更新的第1个字节
的偏移。
UPDATE BINARY的响应报文:
数据字段 |
空 |
SW1-SW2 |
状态字节:用来说明指令执行是否出错,由于什么原因出错 |
4 .ERASE BINARY命令报文:
CLA |
00/04 |
INS |
0E |
P1-P2 |
见表下面说明 |
Lc字段 |
空或02 |
数据字段 |
见下表说明 |
Le字段 |
空 |
说明:
如果在P1中b8=1, 则P1的b7和b6显示0(RFU若干位), P1的b5至b1是短EF标识
符,并且P2是在从文件开始的数据单元中被写的第1个字节的偏移。
如果在P1中b8=0, 则P1_P2是在从文件开始的数据单元中被写的第1个字节的
偏移。
如果数据字段呈现,它编码不被擦除的第1个数据单元的偏移,该偏移
应大于在P1 —P2中编码的一个偏移,当数据字段为空时,该命令擦除到该文件的结
束端。
ERASE BINARY的响应报文:
数据字段 |
空 |
SW1-SW2 |
状态字节:用来说明指令执行是否出错,由于什么原因出错 |
5.READ RECORD命令报文:
CLA |
00/04 |
INS |
B2 |
P1-P2 |
P1: 记录号或被读的第1个记录的标识符(‘00’表示当前记录); P2: 引用控制 |
Lc字段 |
空 |
数据字段 |
空 |
Le字段 |
被读字节数 |
READ RECORD的响应报文:
数据字段 |
Le字节 |
SW1-SW2 |
状态字节:用来说明指令执行是否出错,由于什么原因出错 |
6.WRITE RECORD命令报文:
CLA |
00/04 |
INS |
D2 |
P1-P2 |
P1=‘00’指明当前记录 P1:所指定的记录号 |
Lc字段 |
后续数据字段的长度 |
数据字段 |
待写的记录 |
Le字段 |
空 |
WRITE RECORD的响应报文:
数据字段 |
空 |
SW1-SW2 |
状态字节:用来说明指令执行是否出错,由于什么原因出错 |
7.APPEND RECORD命令报文:
CLA |
00/04 |
INS |
E2 |
P1-P2 |
只有P1 ‘00’是有效的 |
Lc字段 |
后续数据字段的长度 |
数据字段 |
待添加的记录 |
Le字段 |
空 |
APPEND RECORD的响应报文:
数据字段 |
空 |
SW1-SW2 |
状态字节:用来说明指令执行是否出错,由于什么原因出错 |
8.UPDATE RECORD命令报文:
CLA |
00/04 |
INS |
DC |
P1-P2 |
P1=‘00’指明当前记录 P1:所指定的记录号 |
Lc字段 |
后续数据字段的长度 |
数据字段 |
待更新的记录 |
Le字段 |
空 |
UPDATE RECORD的响应报文:
数据字段 |
空 |
SW1-SW2 |
状态字节:用来说明指令执行是否出错,由于什么原因出错 |
9.GET DATA命令报文:
CLA |
00/04 |
INS |
CA |
P1-P2 |
见表1-9 |
Lc字段 |
空 |
数据字段 |
空 |
Le字段 |
在响应时期望的字节数 |
值 |
含义 |
‘0000’至‘003F |
RFU(保留供将来使用) |
‘0040’至‘00FF’ |
P2中的BER-TLV标签(1个字节) |
‘0100’至‘01FF’ |
应用数据(专有编码) |
‘0200’至‘02FF’ |
P2中的简单TLV标签 |
‘0300’至‘3FFF’ |
RFU(保留供将来使用) |
‘0400’至‘FFFF’ |
P1-P2中的BER-TLV标签(2个字节) |
表1-9参数P1-P2的编码
GET DATA的响应报文:
数据字段 |
Le字节 |
SW1-SW2 |
状态字节:用来说明指令执行是否出错,由于什么原因出错 |
10.PUT DATA命令报文:
CLA |
00/04 |
INS |
DA |
P1-P2 |
见表1-9 |
Lc字段 |
后续数据字段的长度 |
数据字段 |
待写的参数和数据 |
Le字段 |
空 |
PUT DATA的响应报文:
数据字段 |
空 |
SW1-SW2 |
状态字节:用来说明指令执行是否出错,由于什么原因出错 |
11.SELECT FILE命令报文:
CLA |
00/04 |
INS |
A4 |
P1-P2 |
P1:选择控制; P2:选择选项 |
Lc字段 |
空或后续数据字段的长度 |
数据字段 |
如果存在下列内容则按照P1-P2 ——文件标识符 ——MF的路径 ——当前DF的路径 ——DF名称 |
Le字段 |
空或在响应时期望的数据最大长度
|
SELECT FILE的响应报文:
数据字段 |
信息按照P2(至多Le个字节) |
SW1-SW2 |
状态字节:用来说明指令执行是否出错,由于什么原因出错 |
12.VERIFY命令报文:
CLA |
00/04 |
INS |
20 |
P1-P2 |
P1:‘00’(其他值为RFU) P2:引用数据的限定符 |
Lc字段 |
空或后续数据字段的长度 |
数据字段 |
空或验证数据 |
Le字段 |
空 |
VERIFY的响应报文:
数据字段 |
空 |
SW1-SW2 |
状态字节:用来说明指令执行是否出错,由于什么原因出错 |
13.INTERNAL AUTHENTICATE命令报文:
CLA |
00/04 |
INS |
88 |
P1-P2 |
P1: 在卡内引用的算法 P2: 引用的秘钥 |
Lc字段 |
后续数据字段的长度 |
数据字段 |
鉴别相关的数据(例如询问) |
Le字段 |
在响应中期望的字节最大数 |
INTERNAL AUTHENTICATE的响应报文:
数据字段 |
鉴别相关的数据(例如对询问的响应) |
SW1-SW2 |
状态字节:用来说明指令执行是否出错,由于什么原因出错 |
14. EXTERNAL AUTHENTICATE命令报文:
CLA |
00/04 |
INS |
82 |
P1-P2 |
P1: 在卡内引用的算法 P2: 引用的秘钥 |
Lc字段 |
空或后续数据字段的长度 |
数据字段 |
空或鉴别相关的数据(例如对询问的响应) |
Le字段 |
空 |
说明:
P1=‘00’表示没有信息被给出,在发出命令之前引用的算法为已知,或在数据
字段中提供。
P2=‘00’表示没有信息被给出,在发出命令之前引用的秘密为已知,或在数据
字段中提供。
EXTERNAL AUTHENTICATE的响应报文:
数据字段 |
空 |
SW1-SW2 |
状态字节:用来说明指令执行是否出错,由于什么原因出错 |
15.GET CHALLENGE命令报文:
CLA |
00/04 |
INS |
84 |
P1-P2 |
‘0000’(其他值为RFU) |
Lc字段 |
空 |
数据字段 |
空 |
Le字段 |
在响应中期望的最大字节数 |
GET CHALLENGE的响应报文:
数据字段 |
询问数据 |
SW1-SW2 |
状态字节:用来说明指令执行是否出错,由于什么原因出错 |
16.MANAGE CHANNEL命令报文:
CLA |
00/04 |
INS |
70 |
P1-P2 |
P1=‘00’打开逻辑信道 P1=‘80’关闭逻辑信道(其他值为RFU) P2:‘00’ ‘01’ ‘02’ ‘03’(其他值为RFU) |
Lc字段 |
空 |
数据字段 |
空 |
Le字段 |
‘01’ 如果P1-P2=‘0000’; 空,如果P1-P2不等于‘0000’ |
说明:
P1的位b8用来表示开放功能或关闭功能;如果b8为“0” ,则MANAGE CHANNEL应打
开逻辑信道,如果b8为“1”, 则MANAGE CHANNEL应关闭逻辑信道。
MANAGE CHANNEL的响应报文:
数据字段 |
逻辑信道号,如果P1-P2=‘0000’; 空,如果P1-P2不等于‘0000’ |
SW1-SW2 |
状态字节:用来说明指令执行是否出错,由于什么原因出错 |
17.GET RESPONSE命令报文:
CLA |
00/04 |
INS |
C0 |
P1-P2 |
‘0000’(其他值为RFU) |
Lc字段 |
空 |
数据字段 |
空 |
Le字段 |
在响应中期望的数据最大长度 |
GET RESPONSE的响应报文:
数据字段 |
按照Le的APDU(的一部分) |
SW1-SW2 |
状态字节:用来说明指令执行是否出错,由于什么原因出错 |
18.ENVELOPE命令报文:
CLA |
80 |
INS |
C2 |
P1-P2 |
‘0000’(其他值为RFU) |
Lc字段 |
后续数据字段的长度 |
数据字段 |
APDU(的一部分) |
Le字段 |
空或期望数据的长度 |
说明:
当对于发送数据串而言根据T=0来使用ENVELOPE命令时,在ENVELOPE命令
ADPU中的空数据字段意味着“数据串的结束”.
ENVELOPE的响应报文:
数据字段 |
空或按照Le的APDU(的一部分) |
SW1-SW2 |
状态字节:用来说明指令执行是否出错,由于什么原因出错 |
1.2 GSM 11.11定制APDU(详细介绍:GSM 11.11协议—98年11月版 第8章 第30页至36页)
编号 |
指令名称 |
CLA |
INS |
功能描述 |
1 |
SELECT |
A0 |
A4 |
选择文件 |
2 |
STATUS |
A0 |
F2 |
用来给SIM一个机会发送主动命令给ME |
3 |
READ BINARY |
A0 |
B0 |
从当前的EF中读一个字节字符串 |
4 |
UPDATE BINARY |
A0 |
D6 |
用命令中的字节字符串更新当前EF中的字节字符串 |
5 |
READ RECORD |
A0 |
B2 |
从固定长度记录EF或循环EF中读一条完整的记录 |
6 |
UPDATE RECORD |
A0 |
DC |
更新固定长度记录EF或循环EF中读一条完整的记录 |
7 |
SEEK |
A0 |
A2 |
从固定长度记录的EF文件中查找给定的记录 |
8 |
INCREASE |
A0 |
32 |
用来在循环EF中最后一个被写入记录的后面增加一条记录,如果最后被写入记录位于循环EF尾,则更新最后有一条记录 |
9 |
VERIFY CHV |
A0 |
20 |
把从接口设备送入卡内的验证数据与卡内存储的引用数据进行比较 |
10 |
CHANGE CHV |
A0 |
24 |
修改卡内存储的验证数据 |
11 |
DISABLE CHV |
A0 |
26 |
使验证数据不可读 |
12 |
ENABLE CHV |
A0 |
28 |
使验证数据可被读 |
13 |
UNBLOCK CHV |
A0 |
2C |
解锁由于3次输入错误验证而被锁的验证数据 |
14 |
INVALIDATE |
A0 |
04 |
使当前EF文件无效 |
15 |
REHABILITATE |
A0 |
44 |
恢复无效的EF文件 |
16 |
RUN GSM ALGORITHM |
A0 |
88 |
运行SIM卡内置算法 |
17 |
SLEEP |
A0 |
FA |
在SIM Phase 2阶段已被去除 |
18 |
GET RESPONSE |
A0 |
C0 |
用来获得前一条命令的响应数据,GET RESPONSE只允许跟在RUN GSM ALGORITHM,SEEK,SELECT和INCREASE命令的后面 |
19 |
TERMINAL PROFILE |
A0 |
10 |
ME用来把涉及到SAT的功能传递给SIM卡 |
20 |
ENVELOPE |
A0 |
C2 |
用来传递数据给SIM卡中的SAT应用程序 |
21 |
FETCH |
A0 |
12 |
用来接收SIM卡传给ME的主动命令内容 |
22 |
TERMINAL RESPONSE |
A0 |
14 |
把ME执行完主动命令后的信息返回给SIM卡 |
命令格式:
SELECT
COMMAND |
CLASS |
INS |
P1 |
P2 |
P3 |
SELECT |
A0 |
A4 |
00 |
00 |
02 |
STATUS
COMMAND |
CLASS |
INS |
P1 |
P2 |
P3 |
STATUS |
A0 |
F2 |
00 |
00 |
lgth |
READ BINARY
COMMAND |
CLASS |
INS |
P1 |
P2 |
P3 |
READ BINARY |
A0 |
B0 |
Offset high |
Offset low |
lgth |
UPDATE BINARY
COMMAND |
CLASS |
INS |
P1 |
P2 |
P3 |
UPDATE BINARY |
A0 |
D6 |
Offset high |
Offset low |
lgth |
READ RECORD
COMMAND |
CLASS |
INS |
P1 |
P2 |
P3 |
READ RECORD |
A0 |
B2 |
Rec.NO. |
Mode |
lgth |
UPDATE RECORD
COMMAND |
CLASS |
INS |
P1 |
P2 |
P3 |
UPDATE RECORD |
A0 |
DC |
Rec.NO. |
Mode |
lgth |
SEEK
COMMAND |
CLASS |
INS |
P1 |
P2 |
P3 |
SEEK |
A0 |
A2 |
00 |
Type/Mode |
lgth |
INCREASE
COMMAND |
CLASS |
INS |
P1 |
P2 |
P3 |
INCREASE |
A0 |
32 |
00 |
00 |
03 |
VERIFY CHV
COMMAND |
CLASS |
INS |
P1 |
P2 |
P3 |
VERIFY CHV |
A0 |
20 |
00 |
CHV NO. |
08 |
CHANGE CHV
COMMAND |
CLASS |
INS |
P1 |
P2 |
P3 |
CHANGE CHV |
A0 |
24 |
00 |
CHV NO. |
10 |
DISABLE CHV
COMMAND |
CLASS |
INS |
P1 |
P2 |
P3 |
DISABLE CHV |
A0 |
26 |
00 |
01 |
08 |
ENABLE CHV
COMMAND |
CLASS |
INS |
P1 |
P2 |
P3 |
ENABLE CHV |
A0 |
28 |
00 |
01 |
08 |
UNBLOCK CHV
COMMAND |
CLASS |
INS |
P1 |
P2 |
P3 |
UNBLOCK CHV |
A0 |
2C |
00 |
CHV NO. |
10 |
INVALIDATE
COMMAND |
CLASS |
INS |
P1 |
P2 |
P3 |
INVALIDATE |
A0 |
04 |
00 |
00 |
00 |
REHABILITATE
COMMAND |
CLASS |
INS |
P1 |
P2 |
P3 |
REHABILITATE |
A0 |
44 |
00 |
00 |
00 |
RUN GSM ALGORITHM
COMMAND |
CLASS |
INS |
P1 |
P2 |
P3 |
RUN GSM ALGORITHM |
A0 |
88 |
00 |
00 |
10 |
GET RESPONSE
COMMAND |
CLASS |
INS |
P1 |
P2 |
P3 |
GET RESPONSE |
A0 |
C0 |
00 |
00 |
lgth |
TERMINAL PROFILE
COMMAND |
CLASS |
INS |
P1 |
P2 |
P3 |
TERMINAL PROFILE |
A0 |
10 |
00 |
00 |
lgth |
ENVELOPE
COMMAND |
CLASS |
INS |
P1 |
P2 |
P3 |
ENVELOPE |
A0 |
C2 |
00 |
00 |
lgth |
FETCH
COMMAND |
CLASS |
INS |
P1 |
P2 |
P3 |
FETCH |
A0 |
12 |
00 |
00 |
lgth |
TERMINAL RESPONSE
COMMAND |
CLASS |
INS |
P1 |
P2 |
P3 |
TERMINAL RESPONSE |
A0 |
14 |
00 |
00 |
lgth |
注:详细格式说明请参考GSM 11.11协议—98年11月版 第9章 第40页至52页.
1.3 ETSI TS 102.221协议—2007年7月版 定制APDU
编号 |
指令名称 |
CLA |
INS |
功能描述 |
1 |
SELECT |
0X/4X/6X |
A4 |
选择文件 |
2 |
STATUS |
8X/CX/EX |
F2 |
用来给SIM一个机会发送主动命令给ME |
3 |
READ BINARY |
0X/4X/6X |
B0 |
从当前的EF中读一个字节字符串 |
4 |
UPDATE BINARY |
0X/4X/6X |
D6 |
用命令中的字节字符串更新当前EF中的字节字符串 |
5 |
READ RECORD |
0X/4X/6X |
B2 |
从固定长度记录EF或循环EF中读一条完整的记录 |
6 |
UPDATE RECORD |
0X/4X/6X |
DC |
更新固定长度记录EF或循环EF中读一条完整的记录 |
7 |
SEARCH RECORD |
0X/4X/6X |
A2 |
从固定长度记录的EF文件中查找给定的记录 |
8 |
INCREASE |
8X/CX/EX |
32 |
用来在循环EF中最后一个被写入记录的后面增加一条记录,如果最后被写入记录位于循环EF尾,则更新最后有一条记录 |
9 |
RETRIEVE DATA |
8X/CX/EX |
CB |
用来从当前的BER-TLV结构的EF文件中获得一个数据对象 |
10 |
SET DATA |
8X/CX/EX |
DB |
用来在当前的BER-TLV结构的EF文件中创建一个新的数据对象或替代一个已经存在的数据对象或删除一个数据对象 |
11 |
VERIFY PIN |
0X/4X/6X |
20 |
验证PIN码 |
12 |
CHANGE PIN |
0X/4X/6X |
24 |
修改PIN码 |
13 |
DISABLE PIN |
0X/4X/6X |
26 |
使PIN码不可访问 |
14 |
ENABLE PIN |
0X/4X/6X |
28 |
使PIN码可被访问 |
15 |
UNBLOCK PIN |
0X/4X/6X |
2C |
解锁由于3次输入错误PIN值而被锁的PIN码 |
16 |
DEACTIVATE FILE |
0X/4X/6X |
04 |
使当前EF文件无效 |
17 |
ACTIVATE FILE |
0X/4X/6X |
44 |
恢复无效的EF文件 |
18 |
AUTHENTICATE |
0X/4X/6X |
88/89 |
使用从接口设备发送来的询问数据和在卡内存储的相关秘密(例如密钥)来计算鉴别数据
|
19 |
GET CHALLENGE |
0X/4X/6X |
84 |
用来产生一个随机数 |
20 |
TERMINAL CAPABILITY |
8X/CX/EX |
AA |
用来告诉SIM关于终端的功能 |
21 |
TERMINAL PROFILE |
80 |
10 |
ME用来把涉及到SAT的功能传递给SIM卡 |
22 |
ENVELOPE |
80 |
C2 |
用来传递数据给SIM卡中的SAT应用程序 |
23 |
FETCH |
80 |
12 |
用来接收SIM卡传给ME的主动命令内容 |
24 |
TERMINAL RESPONSE |
80 |
14 |
把ME执行完主动命令后的信息返回给SIM卡 |
25 |
MANAGE CHANNEL |
0X/4X/6X |
70 |
打开和关闭逻辑信道 |
26 |
GET RESPONSE |
0X/4X/6X |
C0 |
用于从卡发送至接口设备用可用的协议不能传送的那一 些的APDU(或APDU的一部分)
|
命令格式(下面只列出在GSM 11.11协议的基础上增加或改变的APDU命令):
SEARCHRECORD命令就是GSM 11.11中的SEEK命令;
VERIFYPIN命令就是GSM 11.11中的VERIFY CHV命令;
CHANGEPIN命令就是GSM 11.11中的CHANGE CHV命令;
DISABLEPIN命令就是GSM 11.11中的DISABLE CHV命令;
ENABLEPIN命令就是GSM 11.11中的ENABLE CHV命令;
UNBLOCKPIN命令就是GSM 11.11中的UNBLOCK CHV命令;
DEACTIVATEFILE命令就是GSM 11.11中的INVALIDATE命令;
ACTIVATEFILE命令就是GSM 11.11中的REHABILITATE命令;
AUTHENTICATE命令同GSM 11.11中的RUS GSM ALGORITHM命令;
MANAGECHANNEL命令属于ISO7816-4标准APDU命令集;
GETCHALLENGE命令属于ISO7816-4标准APDU命令集;
TERMINALCAPABILITY的命令报文:
CLA |
8X/CX/EX |
INS |
AA |
P1-P2 |
0000 |
Lc字段 |
接下来数据字段的长度 |
数据字段 |
命令数据 |
Le字段 |
|
RETRIEVE DATA的命令报文:
CLA |
8X/CX/EX |
INS |
CB |
P1-P2 |
P1=00; P2:见表3-1. |
Lc字段 |
后续数据字段的长度 |
数据字段 |
空或数据对象的标签 |
Le字段 |
响应数据的长度 |
B8 |
B7 |
B6 |
B5 |
B4 |
B3 |
B2 |
B1 |
含义 |
1 |
0 |
- |
- |
- |
- |
- |
- |
第一个模块 |
0 |
0 |
- |
0 |
0 |
0 |
0 |
0 |
接下来一个模块 |
0 |
1 |
- |
0 |
0 |
0 |
0 |
0 |
转发前一个模块 |
1 |
1 |
- |
- |
- |
- |
- |
- |
保留供将来使用 |
- |
- |
- |
× |
× |
× |
× |
× |
安全报文标识 |
- |
- |
- |
0 |
0 |
0 |
0 |
0 |
当前EF |
任何其他值 |
保留供将来使用 |
表 3-1 P2编码
SET DATA的命令报文:
CLA |
8X/CX/EX |
INS |
DB |
P1-P2 |
P1:00; P2:见表3-1 |
Lc字段 |
后续数据字段的长度 |
数据字段 |
BER-TLV数据对象或删除时的标签字段 |
Le字段 |
|