智能卡ISO7816-4规范(中文版) 联系客服

发布时间 : 星期二 文章智能卡ISO7816-4规范(中文版)更新完毕开始阅读8c465adc2f3f5727a5e9856a561252d381eb2051

0 0 0 0 0 - - - × × × × × - - - (不全相等) ——当前选择的EF ——短EF标识符 - - - - - 0 0 0 ——第1个记录 - - - - - 0 0 1 ——最后一个记录 - - - - - 0 1 1 ——先前一个记录 - - - - - 1 0 0 ——在P1中给出的记录号 任何其他值 RFU 当记录是简单TLV数据对象(见5.4.4)时,表49示出了命令报文数据字段的格式。

表49 命令的数据字段 完整更新的一个记录 Tn Ln 记录的完整数据字节 1个字节 1个或3个字节 Ln

6.8.4 响应报文(标称情况)

表50 UPDATE RECORD响应APDU 数据字段 空 SWL-SW2 状态字节 6.8.5 状态条件

下列特定报警条件可能发生。 ——SW1=‘63’, 同时SW2= ·‘CX’:计数器(成功的更新,但是在使用内部重试例行程序之后,‘X’≠‘0’表示重试数;‘X’=‘0’意味着没有计数器被提供)。

下列特定差错条件可能发生。 ——SW1=‘65’, 同时SW2= ·‘81’:存储器故障(不成功的更新)。 ——SW1=‘67’, 同时SW2= ·‘00’:错误的长度(空的Lc字段)。 ——SW1=‘69’, 同时SW2= ·‘81’:命令与文件结构不兼容。 ·‘82’:安全状态不被满足。 ·‘86’:命令不被允许(没有当前EF)。 ——SW1=‘6A’, 同时SW2= ·‘81’:功能不被支持。 ·‘82’:文件未被找到。 ·‘83’:记录未被找到。 ·‘84’:无足够的文件存储空间。 ·‘85’:Lc与TLV结构不一致。 6.9 GET DATA 命令 6.9.1 定义和范围

GET DATA 命令可在当前上下文(例如,应用特定环境或当前DF)范围内用于检索一个原始数据对象或者包含在结构化数据对象中所包含的一个或多个数据对象。 6.9.2 使用与安全的条件

仅当安全状态满足了通过功能用的上下文范围内的应用所定义的安全条件时,才能执

行该命令。

6.9.3 命令报文

CLA INS P1-P2 Lc字段 数据字段 Le字段 表51 GET DATA 命令APDU 按 5.4.1定义的 ‘CA’ 见表52 空 空 在响应时期望的字节数 表52 参数P1-P2的编码 含 义 RFU P2中的BER-TLV标签(1个字节) 应用数据(专有编码) P2中的简单TLV标签 RFU P1-P2中的BER-TLV标签(2个字节) 值 ‘0000’至‘003F’ ‘0040’至‘00FF’ ‘0100’至‘01FF’ ‘0200’至‘02FF’ ‘0300’至‘3FFF’ ‘0400’至‘FFFF’ 得到应用数据

·当P1-P2的值位于从‘0100’至‘01FF’的范围时, P1-P2的值应是被保留的一个标识符,它可在给定的应用上下文范围内用于卡内部测试和用于有意义的专有服务。

GET DATA对象 ·当P1-P2的值位于从‘0040’至‘00FF’的范围时, P2的值应是单个字节的BER-TLV 标签。值‘OOFF’被保留,为了获得上下文内可读的所有公共的BER-TLV数据对象。 ·当P1-P2的值位于从‘0200’至‘02FF’的范围时,P2的值应是简单TLV标签。值‘0200’是RFU。值‘02FF’被保留,为了获得在上下文内可读的所有公共的简单TLV数据对象。

·当P1-P2的值位于从‘0400’至‘FFFF’的范围时, P1-P2的值应是2个字节的BER-TLV标记。值‘4000’和‘FFFF’是RFU。

当请求原始数据对象时,响应报文的数据字段应包含结构化数据对象的值。

当请求原始数据对象时,响应报文的数据字段应包含结构化数据对象的值,即包含其标签,长度和值的数据对象。 6.9.4 响应报文(标称情况)

如果Le字段仅包含若干“0”,则对于短的长度在不超过256的范围内或者对于扩充的长度在不超过65536的范围内,所有要求的信息应被返回。

表53 GET DATA响应APDU Lr(可以等于Le)字节 SWL-SW2 状态字节

6.9.5 状态条件

下列特定报警条件可能发生。 ——SW1=‘62’, 同时SW2= ·‘81’:被返回数据的一部分可以被损坏。 下列特定差错条件可能发生。 ——SW1=‘67’, 同时SW2=

·‘00’:错误的长度(空的Le字段) ——SW1=‘69’, 同时SW2= ·‘82’:安全状态不被满足。 ·‘85’:使用的条件不被满足。 ——SW1=‘6A’, 同时SW2= ·‘81’:功能不被支持。 ·‘82’:文件未被找到。 ·‘88’:引用的数据(数据对象)未被找到。 ——SW1=‘6C’, 同时SW2= ·‘XX’:错误的长度(错误的Le字段;‘XX’表示正确的长度)。 6.10 PUT DATA 命令 6.10.1 定义和范围

PUT DATA 命令可在当前上下文(例如,应用特定环境或当前DF)范围内用于存储一个原始数据对象或者包含在结构化数据对象中的一个或多个数据对象。正确的存储功能(写一次和/或更新和/或添加)通过数据对象的定义和性质来引出。

注:例如,该命令可用来更新数据对象。 6.10.2 使用与安全的条件

仅当安全状态满足了通过功能用的上下文内的应用所定义的安全条件时,才能执行该命令。

6.10.3 命令报文

表54 PUT DATA 命令APDU CLA 按 5.4.1定义的 INS ‘DA’ P1-P2 见表55 Lc字段 后续数据字段的长度 数据字段 待写的参数和数据 Le字段 空

表55 参数P1-P2的编码 值 含 义 ‘0000’至‘003F’ RFU ‘0040’至‘00FF’ P2中的BER-TLV标记(1个字节) ‘0100’至‘01FF’ 应用数据(专有编码) ‘0200’至‘02FF’ P2中的简单TLV标记 ‘0300’至‘3FFF’ RFU ‘4000’至‘FFFF’ P1-P2中的BER-TLV标记(2个字节)

存储应用数据

·当P1-P2的值位于从‘0100’至‘01FF’的范围内时, P1-P2的值应是被保留的一个标识符,它可在给定的应用上下文范围内用于卡内部测试和用于有意义的专有服务。

存储数据对象 ·当P1-P2的值位于从‘0040’至‘00FF’的范围内时, P2的值应是单个字节的BER-TLV标记。值‘OOFF’被保留,为了表示数据字段运载了BER-TLV数据对象。

·当P1-P2的值位于从‘0200’至‘02FF’的范围时,P2的值应是简单TLV标记。 值‘0200’为RFU。值‘02FF’被保留,为了表示数据字段运载了简单TLV数据对象。

·当P1-P2的值位于从‘4000’至‘FFFF’的范围内时,P1-P2的值应是2个字节的BER-TLV标记。值‘4000’和‘FFFF’为RFU。

当提供了原始数据对象时,命令报文的数据字段应包含对应于原始数据对象的值。 当提供了结构化数据对象时,命令报文的数据字段应包含结构化数据对象的值,即包括其标记、长度和值的数据对象。 6.10.4 响应报文(标称情况)

表56 PUT DATA响应APDU 数据字段 SW1-SW2 状态字节 6.10.5 状态条件

下列特定报警条件可能发生。 ——SW1=‘63’, 同时SW2= ·‘CX’:计数器(成功的存储,但是在使用内部例行程序之后,‘X’≠‘0’表示重试数;‘X’=‘0’意味着没有计数器被提供)。

下列特定差错条件可能发生。 ——SW1=‘65’, 同时SW2= ·‘81’:存储器故障(不成功的存储) ——SW1=‘67’, 同时SW2= ·‘00’:错误的长度(错误的Lc字段) ——SW1=‘69’, 同时SW2= ·‘82’:安全状态不被满足。 ·‘85’:使用的条件不被满足。 ——SW1=‘6A’, 同时SW2= ·‘80’:数据字段中的不正确参数。 ·‘81’:功能不被支持。 ·‘84’:无足够的文件存储空间。 ·‘85’:LC与TLV结构不一致。 6.11 SELECT FILE 命令 6.11.1 定义和范围

成功的SELECT FILE在逻辑信道内(见本部分规范5.5)设置当前文件。后续命令可以通过那个逻辑信道隐式地引用该当前文件。

选择DF(它可以是MF)时可将其设置为当前DF。在这种选择之后,隐式当前EF可以通过那个逻辑信道来引用。

选择EF时设置了一对当前文件:EF及其父辈文件。

在应答复位之后,MF可通过基本逻辑信道(见5.5.2)隐式地进行选择,除非在历史字节(见本部分规范第8章)中或在初始数据串(见本部分规范第9章)中有不同的规定。

注:利用DF名称的直接选择可以用来选择按照本规范第5部分所登记的应用。 6.11.2 使用与安全的条件

下列条件应该适用于每个开放逻辑信道。

除非另有规定,否则按照下列规则,正确执行命令可修改安全状态(见5.2.1)。 ——在当前EF被改变时,或在没有当前EF时,专门针对以前的当前DF的安全状态(如果有)被丢失。

——在当前DF是以前的当前DF的后代,或同代时,专门针对以前的当前EF的安全状态被保持。

——在当前DF既不是以前的当前DF的后代,也不是同代时,专门针对以前的当前EF