命令集
1.1ISO智能卡通用APDU命令集(详细介绍:ISO7816标准(中文版).pdf中75~100页)
编号指令名称CLAINS功能描述
1READBINARY00/04B0
读出带有透明结构
的EF内容的一部分
2WRITEBINARYD0
将二进制值写入EF
3UPDATEBINARY00/04D6
启动使用在命令
APDU中给出的位来
更新早已呈现在EF
中的位
4ERASEBINARY0E
顺序地从给出的偏
移开始将EF的内容
的一部分置为其
逻辑擦除的状态
5READRECORD00/04B2
给出了EF的规定记
录的内容或EF的一
个记录开始部分的
内容
6WRITERECORDD2
WRITERECORD命令
报文启动下列操作
之一:
——写一次记录;
——对早已呈现在
卡内的记录数据字
节与在命令APDU中
给出的记录数据字
节进行逻辑“或”运
算;
——对早已呈现在
卡内的记录数据字
节与在命令APDU中
给出的记录数据字
节进行逻辑“和”运
算
7APPENDRECORD00/04E2
启动在线性结构EF
的结束端添加记录
或者在循环结
构的EF内写记录号
1
8UPDATERECORD00/04DC
启动使用命令APDU
给出的位来更新特
定记录
9GETDATACA
可在当前上下文(例
如应用特定环境或当
前DF)范围内用于检
索一个原始数据对象
或者包含在结构化数
据对象中所包含的一
个或多个数据对象
10PUTDATADA
可在当前上下文
(例如应用特定环
境或当前DF)范围
内用于存储一个原
始数据对象或者包
含在结构化数据对
象中的一个或多个
数据对象正确的
存储功能(写一次
和/或更新和/或添
加)通过数据对象
的定义和性质来引
出
11SELECTFILE00A4
设置当前文件后续
命令可以通过那个
逻辑信道隐式地引
用该当前文件
12VERIFY00/0420
启动从接口设备送
入卡内的验证数据
与卡内存储的引用
数据(例如口令)进
行比较
13INTERNALAUTHENTICATE0088
启动卡使用从接口
设备发送来的询问
数据和在卡内存储
的相关秘密(例如
密钥)来计算鉴别
数据
当该相关秘密被连
接到MF时命令可以
用来鉴别整个卡
当该相关秘密被连
接到另一个DF时命
令可以用来鉴别那
个DF
14EXTERNALAUTHENTICATE0082
使用卡计算的结果
(是或否)有条件地
来更新安全状态而
该卡的计算是以该
卡先前发出(例如
通过GETCHALLENGE
命令)的询问在卡
内存储的可能的秘
密密钥以及接口设
备发送的鉴别数据
为基础的
15GETCHALLENGE0084
要求发出一个询问
(例如随机数)以便
用于安全相关的
规程(例EXTERNAL
AUTHENTICATE命
令)
16MANAGECHANNEL70
打开和关闭逻辑信
道
17GETRESPONSE00C0
用于从卡发送至接
口设备用可用的协
议不能传送的那一
些的APDU(或APDU
的一部分)
18ENVOLOPE80C2
用来发送那些不能
由有效协议来发送
的APDU或APDU的
一部分或任何数据
串
表6ISO智能卡APDU命令集
命令格式:
NARY的命令报文:
CLA00/04
INSB0
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的范围内所有字节(直到文件结束为止)应被读出。
READBINARY的响应报文:
数据字段读的字节(Le字节)
SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错
INARY命令报文:
CLA00/04
INSD0
P1-P2见表下面说明
Lc字段后续数据字段的长度
数据字段待写的数据单元串
Le字段空
说明:
如果在P1中b8=1,则P1的b7和b6显域0(RFU若干位)P1的b5至b1是短EF标识
符并且P2是在从文件开始的数据单元中被写的第1个字节的偏移。
如果在P1中b8=0,则P1_P2是在从文件开始的数据单元中被写的第1个字节的
偏移。
WRITEBINARY的响应报文:
数据字段空
SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错
BINARY命令报文:
CLA00/04
INSD6
P1-P2见表下面说明
Lc字段后续数据字段的长度
数据字段待写的数据单元串
Le字段空
说明:
如果在P1中b8=1,则P1的b7和b6置为0(RFU若干位),P1的b5至b1是短EF标识
符,并且P2是在从文件开始的数据单元中被更新的第1个字节的偏移。
如果在P1中b8=0,则P1_P2是在从文件开始的数据单元中被更新的第1个字节
的偏移。
UPDATEBINARY的响应报文:
数据字段空
SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错
INARY命令报文:
CLA00/04
INS0E
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中编码的一个偏移,当数据字段为空时,该命令擦除到该文件的结
束端。
ERASEBINARY的响应报文:
数据字段空
SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错
CORD命令报文:
CLA00/04
INSB2
P1-P2P1:记录号或被读的第1个记录的标识符(‘00’表示当前记录);
P2:引用控制
Lc字段空
数据字段空
Le字段被读字节数
READRECORD的响应报文:
数据字段Le字节
SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错
ECORD命令报文:
CLA00/04
INSD2
P1-P2P1=‘00’指明当前记录
P1:所指定的记录号
Lc字段后续数据字段的长度
数据字段待写的记录
Le字段空
WRITERECORD的响应报文:
数据字段空
SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错
RECORD命令报文:
CLA00/04
INSE2
P1-P2只有P1‘00’是有效的
Lc字段后续数据字段的长度
数据字段待添加的记录
Le字段空
APPENDRECORD的响应报文:
数据字段空
SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错
RECORD命令报文:
CLA00/04
INSDC
P1-P2P1=‘00’指明当前记录
P1:所指定的记录号
Lc字段后续数据字段的长度
数据字段待更新的记录
Le字段空
UPDATERECORD的响应报文:
数据字段空
SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错
A命令报文:
CLA00/04
INSCA
P1-P2见表1-9
Lc字段空
数据字段空
Le字段在响应时期望的字节数
值含义
‘0000’至‘003FRFU(保留供将来使用)
‘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的编码
GETDATA的响应报文:
数据字段Le字节
SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错
A命令报文:
CLA00/04
INSDA
P1-P2见表1-9
Lc字段后续数据字段的长度
数据字段待写的参数和数据
Le字段空
PUTDATA的响应报文:
数据字段空
SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错
FILE命令报文:
CLA00/04
INSA4
P1-P2P1:选择控制;
P2:选择选项
Lc字段空或后续数据字段的长度
数据字段如果存在下列内容则按照P1-P2
——文件标识符
——MF的路径
——当前DF的路径
——DF名称
Le字段空或在响应时期望的数据最大长度
SELECTFILE的响应报文:
数据字段信息按照P2(至多Le个字节)
SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错
命令报文:
CLA00/04
INS20
P1-P2P1:‘00’(其他值为RFU)
P2:引用数据的限定符
Lc字段空或后续数据字段的长度
数据字段空或验证数据
Le字段空
VERIFY的响应报文:
数据字段空
SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错
ALAUTHENTICATE命令报文:
CLA00/04
INS88
P1-P2P1:在卡内引用的算法
P2:引用的秘钥
Lc字段后续数据字段的长度
数据字段鉴别相关的数据(例如询问)
Le字段在响应中期望的字节最大数
INTERNALAUTHENTICATE的响应报文:
数据字段鉴别相关的数据(例如对询问的响应)
SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错
ALAUTHENTICATE命令报文:
CLA00/04
INS82
P1-P2P1:在卡内引用的算法
P2:引用的秘钥
Lc字段空或后续数据字段的长度
数据字段空或鉴别相关的数据(例如对询问的响应)
Le字段空
说明:
P1=‘00’表示没有信息被给出,在发出命令之前引用的算法为已知,或在数据
字段中提供。
P2=‘00’表示没有信息被给出,在发出命令之前引用的秘密为已知,或在数据
字段中提供。
EXTERNALAUTHENTICATE的响应报文:
数据字段空
SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错
LLENGE命令报文:
CLA00/04
INS84
P1-P2‘0000’(其他值为RFU)
Lc字段空
数据字段空
Le字段在响应中期望的最大字节数
GETCHALLENGE的响应报文:
数据字段询问数据
SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错
CHANNEL命令报文:
CLA00/04
INS70
P1-P2P1=‘00’打开逻辑信道
P1=‘80’关闭逻辑信道(其他值为RFU)
P2:‘00’‘01’‘02’‘03’(其他值为RFU)
Lc字段空
数据字段空
Le字段‘01’如果P1-P2=‘0000’;
空,如果P1-P2不等于‘0000’
说明:
P1的位b8用来表示开放功能或关闭功能;如果b8为“0”,则MANAGECHANNEL应打
开逻辑信道,如果b8为“1”,则MANAGECHANNEL应关闭逻辑信道。
MANAGECHANNEL的响应报文:
数据字段逻辑信道号,如果P1-P2=‘0000’;
空,如果P1-P2不等于‘0000’
SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错
PONSE命令报文:
CLA00/04
INSC0
P1-P2‘0000’(其他值为RFU)
Lc字段空
数据字段空
Le字段在响应中期望的数据最大长度
GETRESPONSE的响应报文:
数据字段按照Le的APDU(的一部分)
SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错
PE命令报文:
CLA
80
INSC2
P1-P2‘0000’(其他值为RFU)
Lc字段后续数据字段的长度
数据字段APDU(的一部分)
Le字段空或期望数据的长度
说明:
当对于发送数据串而言根据T=0来使用ENVELOPE命令时,在ENVELOPE命令
ADPU中的空数据字段意味着“数据串的结束”.
ENVELOPE的响应报文:
数据字段空或按照Le的APDU(的一部分)
SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错
1.2GSM11.11定制APDU(详细介绍:GSM11.11协议—98年11月版第8章第30页至36页)
编号指令名称CLAINS功能描述
1SELECTA0A4选择文件
2STATUSA0F2用来给SIM一个机会发送
主动命令给ME
3READBINARYA0B0从当前的EF中读一个字
节字符串
4UPDATEBINARYA0D6用命令中的字节字符串
更新当前EF中的字节字
符串
5READRECORDA0B2从固定长度记录EF或循
环EF中读一条完整的记
录
6UPDATERECORDA0DC更新固定长度记录EF或
循环EF中读一条完整的
记录
7SEEKA0A2从固定长度记录的EF文
件中查找给定的记录
8INCREASEA032用来在循环EF中最后一
个被写入记录的后面增
加一条记录,如果最后被
写入记录位于循环EF尾,
则更新最后有一条记录
9VERIFYCHVA020
把从接口设备送入卡内
的验证数据与卡内存储
的引用数据进行比较
10CHANGECHVA024修改卡内存储的验证数
据
11DISABLECHVA026使验证数据不可读
12ENABLECHVA028使验证数据可被读
13UNBLOCKCHVA02C解锁由于3次输入错误验
证而被锁的验证数据
14INVALIDATEA004使当前EF文件无效
15REHABILITATEA044恢复无效的EF文件
16RUNGSMALGORITHMA088运行SIM卡内置算法
17SLEEPA0FA在SIMPha2阶段已被
去除
18GETRESPONSEA0C0用来获得前一条命令的
响应数据,GETRESPONSE
只允许跟在RUNGSM
ALGORITHM,SEEK,SELECT
和INCREASE命令的后面
19TERMINALPROFILEA010ME用来把涉及到SAT的功
能传递给SIM卡
20ENVELOPEA0C2用来传递数据给SIM卡中
的SAT应用程序
21FETCHA012用来接收SIM卡传给ME的
主动命令内容
22TERMINALRESPONSEA014把ME执行完主动命令后
的信息返回给SIM卡
命令格式:
SELECT
COMMANDCLASSINSP1P2P3
SELECTA0A4000002
STATUS
COMMANDCLASSINSP1P2P3
STATUSA0F20000lgth
READBINARY
COMMANDCLASSINSP1P2P3
READ
BINARY
A0B0OffthighOfftlowlgth
UPDATEBINARY
COMMANDCLASSINSP1P2P3
UPDATE
BINARY
A0D6OffthighOfftlowlgth
READRECORD
COMMANDCLASSINSP1P2P3
READ
RECORD
th
UPDATERECORD
COMMANDCLASSINSP1P2P3
UPDATE
RECORD
th
SEEK
COMMANDCLASSINSP1P2P3
SEEKA0A200Type/Modelgth
INCREASE
COMMANDCLASSINSP1P2P3
INCREASEA032000003
VERIFYCHV
COMMANDCLASSINSP1P2P3
VERIFY
CHV
A02000CHVNO.08
CHANGECHV
COMMANDCLASSINSP1P2P3
CHANGE
CHV
A02400CHVNO.10
DISABLECHV
COMMANDCLASSINSP1P2P3
DISABLE
CHV
A026000108
ENABLECHV
COMMANDCLASSINSP1P2P3
ENABLE
CHV
A028000108
UNBLOCKCHV
COMMANDCLASSINSP1P2P3
UNBLOCK
CHV
A02C00CHVNO.10
INVALIDATE
COMMANDCLASSINSP1P2P3
INVALIDATEA004000000
REHABILITATE
COMMANDCLASSINSP1P2P3
REHABILITATEA044000000
RUNGSMALGORITHM
COMMANDCLASSINSP1P2P3
RUNGSM
ALGORITHM
A088000010
GETRESPONSE
COMMANDCLASSINSP1P2P3
GET
RESPONSE
A0C00000lgth
TERMINALPROFILE
COMMANDCLASSINSP1P2P3
TERMINAL
PROFILE
A0100000lgth
ENVELOPE
COMMANDCLASSINSP1P2P3
ENVELOPEA0C20000lgth
FETCH
COMMANDCLASSINSP1P2P3
FETCHA0120000lgth
TERMINALRESPONSE
COMMANDCLASSINSP1P2P3
TERMINAL
RESPONSE
A0140000lgth
注:详细格式说明请参考GSM11.11协议—98年11月版第9章第40页至52页.
1.3ETSITS102.221协议—2007年7月版定制APDU
编号指令名称CLAINS功能描述
1SELECT0X/4X/6XA4选择文件
2STATUS8X/CX/EXF2用来给SIM一个机会
发送主动命令给ME
3READBINARY0X/4X/6XB0从当前的EF中读一
个字节字符串
4UPDATEBINARY0X/4X/6XD6用命令中的字节字
符串更新当前EF中
的字节字符串
5READRECORD0X/4X/6XB2从固定长度记录EF
或循环EF中读一条
完整的记录
6UPDATERECORD0X/4X/6XDC更新固定长度记录
EF或循环EF中读一
条完整的记录
7SEARCHRECORD0X/4X/6XA2从固定长度记录的
EF文件中查找给定
的记录
8INCREASE8X/CX/EX32用来在循环EF中最
后一个被写入记录
的后面增加一条记
录,如果最后被写入
记录位于循环EF尾,
则更新最后有一条
记录
9RETRIEVEDATA8X/CX/EXCB用来从当前的
BER-TLV结构的EF文
件中获得一个数据
对象
10SETDATA8X/CX/EXDB用来在当前的
BER-TLV结构的EF文
件中创建一个新的
数据对象或替代一
个已经存在的数据
对象或删除一个数
据对象
11VERIFYPIN0X/4X/6X20验证PIN码
12CHANGEPIN0X/4X/6X24修改PIN码
13DISABLEPIN0X/4X/6X26使PIN码不可访问
14ENABLEPIN0X/4X/6X28使PIN码可被访问
15UNBLOCKPIN0X/4X/6X2C解锁由于3次输入错
误PIN值而被锁的
PIN码
16DEACTIVATEFILE0X/4X/6X04使当前EF文件无效
17ACTIVATEFILE0X/4X/6X44恢复无效的EF文件
18AUTHENTICATE0X/4X/6X88/89
使用从接口设备发
送来的询问数据和
在卡内存储的相关
秘密(例如密钥)来
计算鉴别数据
19GETCHALLENGE0X/4X/6X84用来产生一个随机
数
20TERMINALCAPABILITY8X/CX/EXAA用来告诉SIM关于终
端的功能
21TERMINALPROFILE8010ME用来把涉及到SAT
的功能传递给SIM卡
22ENVELOPE80C2用来传递数据给SIM
卡中的SAT应用程序
23FETCH8012用来接收SIM卡传给
ME的主动命令内容
24TERMINALRESPONSE8014把ME执行完主动命
令后的信息返回给
SIM卡
25MANAGECHANNEL0X/4X/6X70
打开和关闭逻辑信
道
26GETRESPONSE0X/4X/6XC0
用于从卡发送至接
口设备用可用的协
议不能传送的那一
些的APDU(或APDU
的一部分)
命令格式(下面只列出在GSM11.11协议的基础上增加或改变的APDU命令):
SEARCHRECORD命令就是GSM11.11中的SEEK命令;
VERIFYPIN命令就是GSM11.11中的VERIFYCHV命令;
CHANGEPIN命令就是GSM11.11中的CHANGECHV命令;
DISABLEPIN命令就是GSM11.11中的DISABLECHV命令;
ENABLEPIN命令就是GSM11.11中的ENABLECHV命令;
UNBLOCKPIN命令就是GSM11.11中的UNBLOCKCHV命令;
DEACTIVATEFILE命令就是GSM11.11中的INVALIDATE命令;
ACTIVATEFILE命令就是GSM11.11中的REHABILITATE命令;
AUTHENTICATE命令同GSM11.11中的RUSGSMALGORITHM命令;
MANAGECHANNEL命令属于ISO7816-4标准APDU命令集;
GETCHALLENGE命令属于ISO7816-4标准APDU命令集;
TERMINALCAPABILITY的命令报文:
CLA8X/CX/EX
INSAA
P1-P20000
Lc字段接下来数据字段的长度
数据字段命令数据
Le字段
RETRIEVEDATA的命令报文:
CLA8X/CX/EX
INSCB
P1-P2P1=00;
P2:见表3-1.
Lc字段后续数据字段的长度
数据字段空或数据对象的标签
Le字段响应数据的长度
B8B7B6B5B4B3B2B1
含义
10------
第一个模块
00-00000
接下来一个模块
01-00000
转发前一个模块
11------
保留供将来使用
---
×××××安全报文标识
---00000
当前EF
任何其他值保留供将来使用
表3-1P2编码
SETDATA的命令报文:
CLA8X/CX/EX
INSDB
P1-P2P1:00;
P2:见表3-1
Lc字段后续数据字段的长度
数据字段BER-TLV数据对象或删除时的标签字段
Le字段
本文发布于:2022-11-16 18:43:34,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/88/33019.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |