APDU命令整理_第1页
APDU命令整理_第2页
APDU命令整理_第3页
APDU命令整理_第4页
APDU命令整理_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.APDU命令集1.1 ISO智能卡通用APDU命令集(详细介绍:ISO 7816标准(中文版).pdf中75100页)编号指令名称CLAINS功能描述1READ BINARY00/04B0读出带有透明结构的EF内容的一部分2WRITE BINARYD0将二进制值写入EF3UPDATE BINARY00/04D6启动使用在命令APDU中给出的位来更新早已呈现在EF中的位4ERASE BINARY0E顺序地从给出的偏移开始将EF的内容的一部分置为其逻辑擦除的状态5READ RECORD00/04B2给出了EF的规定记录的内容或EF的一个记录开始部分的内容6WRITE RECORDD2WRITE

2、 RECORD命令报文启动下列操作之一:写一次记录;对早已呈现在卡内的记录数据字节与在命令APDU中给出的记录数据字节进行逻辑“或”运算;对早已呈现在卡内的记录数据字节与在命令APDU中给出的记录数据字节进行逻辑“和”运算7APPEND RECORD00/04E2启动在线性结构EF的结束端添加记录或者在循环结构的EF内写记录号18UPDATE RECORD00/04DC启动使用命令APDU给出的位来更新特定记录9GET DATACA可在当前上下文(例如应用特定环境或当前DF)范围内用于检索一个原始数据对象或者包含在结构化数据对象中所包含的一个或多个数据对象10PUT DATADA可在当前上下文

3、(例如应用特定环境或当前DF)范围内用于存储一个原始数据对象或者包含在结构化数据对象中的一个或多个数据对象正确的存储功能(写一次和/或更新和/或添加)通过数据对象的定义和性质来引出11SELECT FILE00A4设置当前文件后续命令可以通过那个逻辑信道隐式地引用该当前文件 12VERIFY00/0420启动从接口设备送入卡内的验证数据与卡内存储的引用数据(例如口令)进行比较 13INTERNAL AUTHENTICATE0088启动卡使用从接口设备发送来的询问数据和在卡内存储的相关秘密(例如密钥)来计算鉴别数据当该相关秘密被连接到MF时命令可以用来鉴别整个卡当该相关秘密被连接到另一个DF时命

4、令可以用来鉴别那个DF 14EXTERNAL AUTHENTICATE0082使用卡计算的结果(是或否)有条件地来更新安全状态而该卡的计算是以该卡先前发出(例如通过GETCHALLENGE命令)的询问在卡内存储的可能的秘密密钥以及接口设备发送的鉴别数据为基础的 15GET CHALLENGE0084要求发出一个询问(例如随机数)以便用于安全相关的规程(例EXTERNAL AUTHENTICATE 命令) 16MANAGE CHANNEL70打开和关闭逻辑信道 17GET RESPONSE00C0用于从卡发送至接口设备用可用的协议不能传送的那一些的APDU(或APDU的一部分) 18ENVOLO

5、PE80C2用来发送那些不能由有效协议来发送的APDU 或APDU的一部分或任何数据串 表6 ISO智能卡APDU命令集命令格式:1.READ BINARY的命令报文:CLA00/04INSB0P1-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

6、的范围内所有字节(直到文件结束为止)应被读出。READ BINARY的响应报文:数据字段读的字节(Le字节)SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错2.WRITE BINARY命令报文:CLA00/04INSD0P1-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的响应报

7、文:数据字段空SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错3.UPDATA BINARY命令报文:CLA00/04INSD6P1-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

8、.ERASE BINARY命令报文:CLA00/04INS0EP1-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状态字节:用来说明

9、指令执行是否出错,由于什么原因出错5.READ RECORD命令报文:CLA00/04INSB2P1-P2P1: 记录号或被读的第1个记录的标识符(00表示当前记录);P2: 引用控制Lc字段空数据字段空Le字段被读字节数READ RECORD的响应报文:数据字段Le字节SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错6.WRITE RECORD命令报文:CLA00/04INSD2P1-P2P1=00指明当前记录P1:所指定的记录号Lc字段后续数据字段的长度数据字段待写的记录Le字段空WRITE RECORD的响应报文:数据字段空SW1-SW2状态字节:用来说明指令执行是否出

10、错,由于什么原因出错7.APPEND RECORD命令报文:CLA00/04INSE2P1-P2只有P1 00是有效的Lc字段后续数据字段的长度数据字段待添加的记录Le字段空APPEND RECORD的响应报文:数据字段空SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错8.UPDATE RECORD命令报文:CLA00/04INSDCP1-P2P1=00指明当前记录P1:所指定的记录号Lc字段后续数据字段的长度数据字段待更新的记录Le字段空UPDATE RECORD的响应报文:数据字段空SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错9.GET DATA命令

11、报文:CLA00/04INSCAP1-P2见表1-9Lc字段空数据字段空Le字段在响应时期望的字节数值含义0000至003FRFU(保留供将来使用)0040至00FFP2中的BER-TLV标签(1个字节)0100至01FF应用数据(专有编码)0200至02FFP2中的简单TLV标签0300至3FFFRFU(保留供将来使用)0400至FFFFP1-P2中的BER-TLV标签(2个字节) 表1-9参数P1-P2的编码GET DATA的响应报文:数据字段Le字节SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错10.PUT DATA命令报文:CLA00/04INSDAP1-P2见表1

12、-9Lc字段后续数据字段的长度数据字段待写的参数和数据Le字段空PUT DATA的响应报文:数据字段空SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错11.SELECT FILE命令报文:CLA00/04INSA4P1-P2P1:选择控制;P2:选择选项Lc字段空或后续数据字段的长度数据字段如果存在下列内容则按照P1-P2文件标识符MF的路径当前DF的路径DF名称Le字段空或在响应时期望的数据最大长度SELECT FILE的响应报文:数据字段信息按照P2(至多Le个字节)SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错12.VERIFY命令报文:CLA00/

13、04INS20P1-P2P1:00(其他值为RFU)P2:引用数据的限定符Lc字段空或后续数据字段的长度数据字段空或验证数据Le字段空VERIFY的响应报文:数据字段空SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错13.INTERNAL AUTHENTICATE命令报文:CLA00/04INS88P1-P2P1: 在卡内引用的算法P2: 引用的秘钥Lc字段后续数据字段的长度数据字段鉴别相关的数据(例如询问)Le字段在响应中期望的字节最大数INTERNAL AUTHENTICATE的响应报文:数据字段鉴别相关的数据(例如对询问的响应)SW1-SW2状态字节:用来说明指令执行是

14、否出错,由于什么原因出错14. EXTERNAL AUTHENTICATE命令报文:CLA00/04INS82P1-P2P1: 在卡内引用的算法P2: 引用的秘钥Lc字段空或后续数据字段的长度数据字段空或鉴别相关的数据(例如对询问的响应)Le字段空说明:P1=00表示没有信息被给出,在发出命令之前引用的算法为已知,或在数据字段中提供。P2=00表示没有信息被给出,在发出命令之前引用的秘密为已知,或在数据字段中提供。 EXTERNAL AUTHENTICATE的响应报文:数据字段空SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错15.GET CHALLENGE命令报文:CLA0

15、0/04INS84P1-P20000(其他值为RFU)Lc字段空数据字段空Le字段在响应中期望的最大字节数GET CHALLENGE的响应报文:数据字段询问数据SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错16.MANAGE CHANNEL命令报文:CLA00/04INS70P1-P2P1=00打开逻辑信道P1=80关闭逻辑信道(其他值为RFU)P2:00 01 02 03(其他值为RFU)Lc字段空数据字段空Le字段01 如果P1-P2=0000; 空,如果P1-P2不等于0000说明:P1的位b8用来表示开放功能或关闭功能;如果b8为“0” ,则MANAGE CHANN

16、EL应打开逻辑信道,如果b8为“1”, 则MANAGE CHANNEL应关闭逻辑信道。MANAGE CHANNEL的响应报文:数据字段逻辑信道号,如果P1-P2=0000;空,如果P1-P2不等于0000SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错17.GET RESPONSE命令报文:CLA00/04INSC0P1-P20000(其他值为RFU)Lc字段空数据字段空Le字段在响应中期望的数据最大长度GET RESPONSE的响应报文:数据字段按照Le的APDU(的一部分)SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错18.ENVELOPE命令报文:C

17、LA80INSC2P1-P20000(其他值为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页)编号指令名称CLAINS功能描述1SELECTA0A4选择文件2STATUSA0F

18、2用来给SIM一个机会发送主动命令给ME3READ BINARYA0B0从当前的EF中读一个字节字符串4UPDATE BINARYA0D6用命令中的字节字符串更新当前EF中的字节字符串5READ RECORDA0B2从固定长度记录EF或循环EF中读一条完整的记录6UPDATE RECORDA0DC更新固定长度记录EF或循环EF中读一条完整的记录7SEEKA0A2从固定长度记录的EF文件中查找给定的记录8INCREASEA032用来在循环EF中最后一个被写入记录的后面增加一条记录,如果最后被写入记录位于循环EF尾,则更新最后有一条记录9VERIFY CHVA020把从接口设备送入卡内的验证数据与

19、卡内存储的引用数据进行比较10CHANGE CHVA024修改卡内存储的验证数据11DISABLE CHVA026使验证数据不可读 12ENABLE CHVA028使验证数据可被读 13UNBLOCK CHVA02C解锁由于3次输入错误验证而被锁的验证数据 14INVALIDATEA004使当前EF文件无效 15REHABILITATEA044恢复无效的EF文件 16RUN GSM ALGORITHMA088运行SIM卡内置算法 17SLEEPA0FA在SIM Phase 2阶段已被去除 18GET RESPONSEA0C0用来获得前一条命令的响应数据,GET RESPONSE只允许跟在RUN

20、 GSM ALGORITHM,SEEK,SELECT和INCREASE命令的后面 19TERMINAL PROFILEA010ME用来把涉及到SAT的功能传递给SIM卡 20ENVELOPEA0C2用来传递数据给SIM卡中的SAT应用程序 21FETCHA012用来接收SIM卡传给ME的主动命令内容 22TERMINAL RESPONSEA014把ME执行完主动命令后的信息返回给SIM卡命令格式:SELECTCOMMANDCLASSINSP1P2P3SELECTA0A4000002STATUSCOMMANDCLASSINSP1P2P3STATUSA0F20000lgthREAD BINARYC

21、OMMANDCLASSINSP1P2P3READ BINARYA0B0Offset highOffset lowlgthUPDATE BINARYCOMMANDCLASSINSP1P2P3UPDATE BINARYA0D6Offset highOffset lowlgthREAD RECORDCOMMANDCLASSINSP1P2P3READ RECORDA0B2Rec.NO.ModelgthUPDATE RECORDCOMMANDCLASSINSP1P2P3UPDATE RECORDA0DCRec.NO.ModelgthSEEKCOMMANDCLASSINSP1P2P3SEEKA0A200T

22、ype/ModelgthINCREASECOMMANDCLASSINSP1P2P3INCREASEA032000003VERIFY CHVCOMMANDCLASSINSP1P2P3VERIFY CHVA02000CHV NO.08CHANGE CHVCOMMANDCLASSINSP1P2P3CHANGE CHVA02400CHV NO.10DISABLE CHVCOMMANDCLASSINSP1P2P3DISABLE CHVA026000108ENABLE CHVCOMMANDCLASSINSP1P2P3ENABLE CHVA028000108UNBLOCK CHVCOMMANDCLASSIN

23、SP1P2P3UNBLOCK CHVA02C00CHV NO.10INVALIDATECOMMANDCLASSINSP1P2P3INVALIDATEA004000000REHABILITATECOMMANDCLASSINSP1P2P3REHABILITATEA044000000RUN GSM ALGORITHMCOMMANDCLASSINSP1P2P3RUN GSM ALGORITHMA088000010GET RESPONSECOMMANDCLASSINSP1P2P3GET RESPONSEA0C00000lgthTERMINAL PROFILECOMMANDCLASSINSP1P2P3TE

24、RMINAL PROFILEA0100000lgthENVELOPECOMMANDCLASSINSP1P2P3ENVELOPEA0C20000lgthFETCHCOMMANDCLASSINSP1P2P3FETCHA0120000lgthTERMINAL RESPONSECOMMANDCLASSINSP1P2P3TERMINAL RESPONSEA0140000lgth注:详细格式说明请参考GSM 11.11协议98年11月版 第9章 第40页至52页.1.3 ETSI TS 102.221协议2007年7月版 定制APDU编号指令名称CLAINS功能描述1SELECT0X/4X/6XA4选择文

25、件2STATUS8X/CX/EXF2用来给SIM一个机会发送主动命令给ME3READ BINARY0X/4X/6XB0从当前的EF中读一个字节字符串4UPDATE BINARY0X/4X/6XD6用命令中的字节字符串更新当前EF中的字节字符串5READ RECORD0X/4X/6XB2从固定长度记录EF或循环EF中读一条完整的记录6UPDATE RECORD0X/4X/6XDC更新固定长度记录EF或循环EF中读一条完整的记录7SEARCH RECORD0X/4X/6XA2从固定长度记录的EF文件中查找给定的记录8INCREASE 8X/CX/EX32用来在循环EF中最后一个被写入记录的后面增加

26、一条记录,如果最后被写入记录位于循环EF尾,则更新最后有一条记录9RETRIEVE DATA8X/CX/EXCB用来从当前的BER-TLV结构的EF文件中获得一个数据对象10SET DATA8X/CX/EXDB用来在当前的BER-TLV结构的EF文件中创建一个新的数据对象或替代一个已经存在的数据对象或删除一个数据对象11VERIFY PIN0X/4X/6X20验证PIN码12CHANGE PIN0X/4X/6X24修改PIN码13DISABLE PIN0X/4X/6X26使PIN码不可访问14ENABLE PIN0X/4X/6X28使PIN码可被访问 15UNBLOCK PIN0X/4X/6X

27、2C解锁由于3次输入错误PIN值而被锁的PIN码 16DEACTIVATE FILE0X/4X/6X04使当前EF文件无效 17ACTIVATE FILE0X/4X/6X44恢复无效的EF文件 18AUTHENTICATE0X/4X/6X88/89使用从接口设备发送来的询问数据和在卡内存储的相关秘密(例如密钥)来计算鉴别数据 19GET CHALLENGE0X/4X/6X84用来产生一个随机数 20TERMINAL CAPABILITY8X/CX/EXAA用来告诉SIM关于终端的功能 21TERMINAL PROFILE8010ME用来把涉及到SAT的功能传递给SIM卡 22ENVELOPE80C2用来传递数据给SIM卡中的SAT应用程序 23FETCH8012用来接收SIM卡传给ME的主动命令内容 24TERMINAL RESPONSE8014把ME执行完主动命令后的信息返回给SIM卡 25MANAGE CHANNEL0X/4X/6X70打开和关闭逻辑信道 26GET RESPONSE0X/4X/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论