APDU命令整理.docx

上传人:b****7 文档编号:9461868 上传时间:2023-02-04 格式:DOCX 页数:29 大小:23.58KB
下载 相关 举报
APDU命令整理.docx_第1页
第1页 / 共29页
APDU命令整理.docx_第2页
第2页 / 共29页
APDU命令整理.docx_第3页
第3页 / 共29页
APDU命令整理.docx_第4页
第4页 / 共29页
APDU命令整理.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

APDU命令整理.docx

《APDU命令整理.docx》由会员分享,可在线阅读,更多相关《APDU命令整理.docx(29页珍藏版)》请在冰豆网上搜索。

APDU命令整理.docx

APDU命令整理

1.APDU命令集

1.1ISO智能卡通用APDU命令集(详细介绍:

ISO7816标准(中文版).pdf中75~100页)

编号

指令名称

CLA

INS

功能描述

1

READBINARY

00/04

B0

读出带有透明结构的EF内容的一部分

2

WRITEBINARY

D0

将二进制值写入EF

3

UPDATEBINARY

00/04

D6

启动使用在命令APDU中给出的位来更新早已呈现在EF

中的位

4

ERASEBINARY

0E

顺序地从给出的偏移开始将EF的内容的一部分置为其

逻辑擦除的状态

5

READRECORD

00/04

B2

给出了EF的规定记录的内容或EF的一个记录开始部分的

内容

6

WRITERECORD

D2

WRITERECORD命令报文启动下列操作之一:

——写一次记录;

——对早已呈现在卡内的记录数据字节与在命令APDU中给出的记录数据字节进行逻辑“或”运算;

——对早已呈现在卡内的记录数据字节与在命令APDU中给出的记录数据字节进行逻辑“和”运算

7

APPENDRECORD

00/04

E2

启动在线性结构EF的结束端添加记录或者在循环结

构的EF内写记录号1

8

UPDATERECORD

00/04

DC

启动使用命令APDU给出的位来更新特定记录

9

GETDATA

CA

可在当前上下文(例如应用特定环境或当前DF)范围内用于检索一个原始数据对象或者包含在结构化数据对象中所包含的一个或多个数据对象

10

PUTDATA

DA

可在当前上下文(例如应用特定环境或当前DF)范围内用于存储一个原始数据对象或者包含在结构化数据对象中的一个或多个数据对象正确的

存储功能(写一次和/或更新和/或添加)通过数据对象的定义和性质来引出

11

SELECTFILE

00

A4

设置当前文件后续命令可以通过那个逻辑信道隐式地引用该当前文件

12

VERIFY

00/04

20

启动从接口设备送入卡内的验证数据与卡内存储的引用数据(例如口令)进行比较

13

INTERNALAUTHENTICATE

00

88

启动卡使用从接口设备发送来的询问数据和在卡内存储的相关秘密(例如密钥)来计算鉴别数据

当该相关秘密被连接到MF时命令可以用来鉴别整个卡

当该相关秘密被连接到另一个DF时命令可以用来鉴别那个DF

14

EXTERNALAUTHENTICATE

00

82

使用卡计算的结果(是或否)有条件地来更新安全状态而该卡的计算是以该卡先前发出(例如通过GETCHALLENGE命令)的询问在卡内存储的可能的秘密密钥以及接口设备发送的鉴别数据为基础的

15

GETCHALLENGE

00

84

要求发出一个询问(例如随机数)以便用于安全相关的

规程(例EXTERNALAUTHENTICATE命令)

16

MANAGECHANNEL

70

打开和关闭逻辑信道

17

GETRESPONSE

00

C0

用于从卡发送至接口设备用可用的协议不能传送的那一

些的APDU(或APDU的一部分)

18

ENVOLOPE

80

C2

用来发送那些不能由有效协议来发送的APDU或APDU的一部分或任何数据串

表6ISO智能卡APDU命令集

命令格式:

1.READBINARY的命令报文:

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的范围内所有字节(直到文件结束为止)应被读出。

READBINARY的响应报文:

数据字段

读的字节(Le字节)

SW1-SW2

状态字节:

用来说明指令执行是否出错,由于什么原因出错

2.WRITEBINARY命令报文:

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个字节的

偏移。

WRITEBINARY的响应报文:

数据字段

SW1-SW2

状态字节:

用来说明指令执行是否出错,由于什么原因出错

3.UPDATABINARY命令报文:

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个字节

的偏移。

UPDATEBINARY的响应报文:

数据字段

SW1-SW2

青青的豆角青青的草地青青的瓦状态字节:

用来说明指令执行是否出错,由于什么原因出错

有—无对—错热—冷暖—冷弯—直

4.ERASEBINARY命令报文:

空—满干—湿今—古闲—忙天—地CLA

00/04

INS

美丽的风景精彩的球赛高远的蓝天雪白的肚皮0E

P1-P2

走之底:

这、边、远、进、过、道、选、连、送见表下面说明

Lc字段

空或02

数据字段

见下表说明

Le字段

说明:

如果在P1中b8=1,则P1的b7和b6显示0(RFU若干位),P1的b5至b1是短EF标识

(4)、()一边()一边()。

符,并且P2是在从文件开始的数据单元中被写的第1个字节的偏移。

耳朵旁:

阳、那、都如果在P1中b8=0,则P1_P2是在从文件开始的数据单元中被写的第1个字节的

偏移。

如果数据字段呈现,它编码不被擦除的第1个数据单元的偏移,该偏移

应大于在P1—P2中编码的一个偏移,当数据字段为空时,该命令擦除到该文件的结

束端。

ERASEBINARY的响应报文:

数据字段

大大的西瓜可爱的小熊快乐的生日SW1-SW2

挺拔的松树茂密的树林会心的微笑透明的翅膀状态字节:

用来说明指令执行是否出错,由于什么原因出错

5.READRECORD命令报文:

CLA

00/04

INS

B2

P1-P2

P1:

记录号或被读的第1个记录的标识符(‘00’表示当前记录);

P2:

引用控制

Lc字段

数据字段

Le字段

被读字节数

READRECORD的响应报文:

数据字段

Le字节

SW1-SW2

状态字节:

用来说明指令执行是否出错,由于什么原因出错

6.WRITERECORD命令报文:

CLA

00/04

INS

D2

P1-P2

P1=‘00’指明当前记录

P1:

所指定的记录号

Lc字段

后续数据字段的长度

数据字段

待写的记录

Le字段

WRITERECORD的响应报文:

数据字段

SW1-SW2

状态字节:

用来说明指令执行是否出错,由于什么原因出错

7.APPENDRECORD命令报文:

CLA

00/04

INS

E2

P1-P2

只有P1‘00’是有效的

Lc字段

后续数据字段的长度

数据字段

待添加的记录

Le字段

APPENDRECORD的响应报文:

数据字段

SW1-SW2

状态字节:

用来说明指令执行是否出错,由于什么原因出错

8.UPDATERECORD命令报文:

CLA

00/04

INS

DC

P1-P2

P1=‘00’指明当前记录

P1:

所指定的记录号

Lc字段

后续数据字段的长度

数据字段

待更新的记录

Le字段

UPDATERECORD的响应报文:

数据字段

SW1-SW2

状态字节:

用来说明指令执行是否出错,由于什么原因出错

9.GETDATA命令报文:

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的编码

GETDATA的响应报文:

数据字段

Le字节

SW1-SW2

状态字节:

用来说明指令执行是否出错,由于什么原因出错

10.PUTDATA命令报文:

CLA

00/04

INS

DA

P1-P2

见表1-9

Lc字段

后续数据字段的长度

数据字段

待写的参数和数据

Le字段

PUTDATA的响应报文:

数据字段

SW1-SW2

状态字节:

用来说明指令执行是否出错,由于什么原因出错

11.SELECTFILE命令报文:

CLA

00/04

INS

A4

P1-P2

P1:

选择控制;

P2:

选择选项

Lc字段

空或后续数据字段的长度

数据字段

如果存在下列内容则按照P1-P2

——文件标识符

——MF的路径

——当前DF的路径

——DF名称

Le字段

空或在响应时期望的数据最大长度

SELECTFILE的响应报文:

数据字段

信息按照P2(至多Le个字节)

SW1-SW2

状态字节:

用来说明指令执行是否出错,由于什么原因出错

12.VERIFY命令报文:

CLA

00/04

INS

20

P1-P2

P1:

‘00’(其他值为RFU)

P2:

引用数据的限定符

Lc字段

空或后续数据字段的长度

数据字段

空或验证数据

Le字段

VERIFY的响应报文:

数据字段

SW1-SW2

状态字节:

用来说明指令执行是否出错,由于什么原因出错

13.INTERNALAUTHENTICATE命令报文:

CLA

00/04

INS

88

P1-P2

P1:

在卡内引用的算法

P2:

引用的秘钥

Lc字段

后续数据字段的长度

数据字段

鉴别相关的数据(例如询问)

Le字段

在响应中期望的字节最大数

INTERNALAUTHENTICATE的响应报文:

数据字段

鉴别相关的数据(例如对询问的响应)

SW1-SW2

状态字节:

用来说明指令执行是否出错,由于什么原因出错

14.EXTERNALAUTHENTICATE命令报文:

CLA

00/04

INS

82

P1-P2

P1:

在卡内引用的算法

P2:

引用的秘钥

Lc字段

空或后续数据字段的长度

数据字段

空或鉴别相关的数据(例如对询问的响应)

Le字段

说明:

P1=‘00’表示没有信息被给出,在发出命令之前引用的算法为已知,或在数据

字段中提供。

P2=‘00’表示没有信息被给出,在发出命令之前引用的秘密为已知,或在数据

字段中提供。

EXTERNALAUTHENTICATE的响应报文:

数据字段

SW1-SW2

状态字节:

用来说明指令执行是否出错,由于什么原因出错

15.GETCHALLENGE命令报文:

CLA

00/04

INS

84

P1-P2

‘0000’(其他值为RFU)

Lc字段

数据字段

Le字段

在响应中期望的最大字节数

GETCHALLENGE的响应报文:

数据字段

询问数据

SW1-SW2

状态字节:

用来说明指令执行是否出错,由于什么原因出错

16.MANAGECHANNEL命令报文:

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”,则MANAGECHANNEL应打

开逻辑信道,如果b8为“1”,则MANAGECHANNEL应关闭逻辑信道。

MANAGECHANNEL的响应报文:

数据字段

逻辑信道号,如果P1-P2=‘0000’;

空,如果P1-P2不等于‘0000’

SW1-SW2

状态字节:

用来说明指令执行是否出错,由于什么原因出错

17.GETRESPONSE命令报文:

CLA

00/04

INS

C0

P1-P2

‘0000’(其他值为RFU)

Lc字段

数据字段

Le字段

在响应中期望的数据最大长度

GETRESPONSE的响应报文:

数据字段

按照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.2GSM11.11定制APDU(详细介绍:

GSM11.11协议—98年11月版第8章第30页至36页)

编号

指令名称

CLA

INS

功能描述

1

SELECT

A0

A4

选择文件

2

STATUS

A0

F2

用来给SIM一个机会发送主动命令给ME

3

READBINARY

A0

B0

从当前的EF中读一个字节字符串

4

UPDATEBINARY

A0

D6

用命令中的字节字符串更新当前EF中的字节字符串

5

READRECORD

A0

B2

从固定长度记录EF或循环EF中读一条完整的记录

6

UPDATERECORD

A0

DC

更新固定长度记录EF或循环EF中读一条完整的记录

7

SEEK

A0

A2

从固定长度记录的EF文件中查找给定的记录

8

INCREASE

A0

32

用来在循环EF中最后一个被写入记录的后面增加一条记录,如果最后被写入记录位于循环EF尾,则更新最后有一条记录

9

VERIFYCHV

A0

20

把从接口设备送入卡内的验证数据与卡内存储的引用数据进行比较

10

CHANGECHV

A0

24

修改卡内存储的验证数据

11

DISABLECHV

A0

26

使验证数据不可读

12

ENABLECHV

A0

28

使验证数据可被读

13

UNBLOCKCHV

A0

2C

解锁由于3次输入错误验证而被锁的验证数据

14

INVALIDATE

A0

04

使当前EF文件无效

15

REHABILITATE

A0

44

恢复无效的EF文件

16

RUNGSMALGORITHM

A0

88

运行SIM卡内置算法

17

SLEEP

A0

FA

在SIMPhase2阶段已被去除

18

GETRESPONSE

A0

C0

用来获得前一条命令的响应数据,GETRESPONSE只允许跟在RUNGSMALGORITHM,SEEK,SELECT和INCREASE命令的后面

19

TERMINALPROFILE

A0

10

ME用来把涉及到SAT的功能传递给SIM卡

20

ENVELOPE

A0

C2

用来传递数据给SIM卡中的SAT应用程序

21

FETCH

A0

12

用来接收SIM卡传给ME的主动命令内容

22

TERMINALRESPONSE

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

READBINARY

COMMAND

CLASS

INS

P1

P2

P3

READBINARY

A0

B0

Offsethigh

Offsetlow

lgth

UPDATEBINARY

COMMAND

CLASS

INS

P1

P2

P3

UPDATEBINARY

A0

D6

Offsethigh

Offsetlow

lgth

READRECORD

COMMAND

CLASS

INS

P1

P2

P3

READRECORD

A0

B2

Rec.NO.

Mode

lgth

UPDATERECORD

COMMAND

CLASS

INS

P1

P2

P3

UPDATERECORD

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

VERIFYCHV

COMMAND

CLASS

INS

P1

P2

P3

VERIFYCHV

A0

20

00

CHVNO.

08

CHANGECHV

COMMAND

CLASS

INS

P1

P2

P3

CHANGECHV

A0

24

00

CHVNO.

10

DISABLECHV

COMMAND

CLASS

INS

P1

P2

P3

DISABLECHV

A0

26

00

01

08

ENABLECHV

COMMAND

CLASS

INS

P1

P2

P3

ENABLECHV

A0

28

00

01

08

UNBLOCKCHV

COMMAND

CLASS

INS

P1

P2

P3

UNBLOCKCHV

A0

2C

00

CHVNO.

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

RUNGSMALGORITHM

COMMAND

CLASS

INS

P1

P2

P3

RUNGSMALGORITHM

A0

88

00

00

10

GETRESPONSE

COMMAND

CLASS

INS

P1

P2

P3

GETRESPONSE

A0

C0

00

00

lgth

TERMINALPROFILE

COMMAND

CLASS

INS

P1

P2

P3

TERMINALPROFILE

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

TERMINALRESPONSE

COMMAND

CLASS

INS

P1

P2

P3

TERMINALRESPONSE

A0

14

00

00

lgth

注:

详细格式说明请参考GSM11.11协议—98年11月版第9章第40页至52页.

1.3ETSITS102.221协议—2007年7月版定制APDU

编号

指令名称

CLA

INS

功能描述

1

SELECT

0X/4X/6X

A4

选择文件

2

STATUS

8X/CX/EX

F2

用来给SIM一个机会发送主动命令给ME

3

READBINARY

0X/4X/6X

B0

从当前的EF中读一个字节字符串

4

UPDATEBINARY

0X/4X/6X

D6

用命令中的字节字符串更新当前EF中的字节字符串

5

READRECORD

0X/4X/6X

B2

从固定长度记录EF或循环EF中读一条完整的记录

6

UPDATERECORD

0X/4X/6X

DC

更新固定长度记录EF或循环EF中读一条完整的记录

7

SEARCHRECORD

0X/4X/6X

A2

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1