IC卡可能回送的错误状态码如表5-35所示:
表5-35 SELECT错误状态
SW1
| SW2
| 含 义
|
‘67’
| ‘00’
| P1 P2与Lc不一致
|
‘6A’
| ‘81’
| 不支持此功能
|
‘6A’
| ‘82’
| 未找到文件
|
‘6A’
| ‘86’
| 参数P1 P2不正确
|
‘93’
| ‘03’
| 应用永久锁定
|
5.3.10 UPDATE BINARY命令
5.3.10.1 定义和范围
UPDATE BINARY命令报文使用命令APDU中给定的数据写入或修改透明结构的基本文件的全部或部分数据。当使用校验方式更新二进制文件时,如果尝试次数超过限制时,临时锁定当前应用。
5.3.10.2 命令报文
UPDATE BINARY命令报文编码见表5-36:
表5-36 UPDATE BINARY命令报文
代码
| 值
|
CLA
| ‘00’或‘04’
|
INS
| ‘D6’
|
P1
| 见表5-37
|
P2
| 见表5-37
|
Lc
| 后续数据域的长度
|
Data
| 写入或修改用的数据
|
Le
| 不存在
|
表5-37定义了命令报文中的引用控制参数:
表5-37 UPDATE BINARY命令引用控制参数
P1
| P2
| 含 义
|
b8
| b7
| b6
| b5
| b4
| b3
| b2
| b1
| b8
| b7
| b6
| b5
| b4
| b3
| b2
| b1
|
0
| X
| X
| X
| X
| X
| X
| X
| Y
| Y
| Y
| Y
| Y
| Y
| Y
| Y
| P1´‘0x100’+P2为要读的首字节距离文件首字节的偏移量。
|
5.3.10.3 命令报文数据域
命令报文数据域包括用来写入或更新原有数据的新数据。
5.3.10.4 响应报文数据域
响应报文数据域不存在。
5.3.10.5 响应报文状态码
此命令执行成功的状态码是‘9000’。
IC卡可能回送的错误状态码如表5-38所示:
表5-38 UPDATE BINARY错误状态
SW1
| SW2
| 含 义
|
‘65’
| ‘81’
| 内存失败(修改失败)
|
‘67’
| ‘00’
| 长度错误(Lc域为空)
|
‘69’
| ‘81’
| 命令与文件结构不相容
|
‘69’
| ‘82’
| 不满足安全状态
|
‘69’
| ‘85’
| 使用条件不满足
|
‘69’
| ‘86’
| 不满足命令执行的条件(不是当前的EF)
|
‘69’
| ‘88’
| 安全报文数据项不正确
|
‘6A’
| ‘80’
| 基本文件标识符错误
|
‘6A’
| ‘81’
| 不支持此功能
|
‘6A’
| ‘82’
| 未找到文件
|
‘6B’
| ‘00’
| 参数错误(偏移地址超出了EF)
|
5.3.11 UPDATE RECORD命令
5.3.11.1 定义和范围
UPDATE RECORD命令报文用命令APDU中给定的数据添加记录或更改指定的记录。当使用校验方式更新记录时,如果尝试次数超过限制时,临时锁定当前应用。
UPDATE RECORD命令不能对健康应用的住院信息索引文件记录和门诊信息索引文件记录进行更新操作。
对线性结构文件来说,只能使用指定记录号(P1中指定)方式更新记录。
对循环结构文件来说,只能使用“上一个记录”命令选项添加或更新记录,添加或更新后该记录的记录号为1。
5.3.11.2 命令报文
UPDATE RECORD命令报文编码见表5-39:
表5-39UPDATE RECORD命令报文
代码
| 值
|
CLA
| ‘00’或‘04’
|
INS
| ‘DC’
|
P1
| 指定的记录号(‘01’~‘FE’)
|
P2
| 见表5-40
|
Lc
| 后续数据域的长度
|
Data
| 添加的或更新原有记录的新记录
|
Le
| 不存在
|
表5-40定义了命令报文中的引用控制参数:
表5-40 UPDATE RECORD命令引用控制参数
b8
| b7
| b6
| b5
| b4
| b3
| b2
| b1
| 含 义
|
0
| 0
| 0
| 0
| 0
|
|
|
| 当前文件
|
|
|
|
|
| 0
| 1
| 1
| 上一个记录
|
|
|
|
|
| 1
| 0
| 0
| 记录号在P1中给出
|
其余值
| RFU
|
5.3.11.3 命令报文数据域
命令报文数据域由添加的或更新原有记录的新记录组成。
5.3.11.4 响应报文数据域
响应报文数据域不存在。
5.3.11.5 响应报文状态码
命令执行成功的状态码是‘9000’。
IC卡可能回送的错误状态码如表5-41所示:
表5-41 UPDATE RECORD错误状态
SW1
| SW2
| 含 义
|
‘65’
| ‘81’
| 内存失败(修改失败)
|
‘67’
| ‘00’
| 长度错误(Lc域为空)
|
‘69’
| ‘81’
| 命令与文件结构不相容
|
‘69’
| ‘82’
| 不满足安全状态
|
‘69’
| ‘85’
| 使用条件不满足
|
‘69’
| ‘86’
| 不满足命令执行的条件(不是当前的EF)
|
‘69’
| ‘88’
| 安全报文数据项不正确
|
‘6A’
| ‘80’
| 基本文件标识符错误
|
‘6A’
| ‘81’
| 不支持此功能
|
‘6A’
| ‘82’
| 未找到文件
|
‘6A’
| ‘83’
| 未找到记录
|
‘6A’
| ‘84’
| 文件中存储空间不够
|
‘6A’
| ‘85’
| Lc与TLV结构不符
|
‘6A’
| ‘86’
| 参数P1或/和P2不正确
|