IC卡可能回送的错误状态码如表5-15所示:
表5-15 EXTERNAL AUTHENTICATION错误状态
SW1
| SW2
| 含 义
|
‘67’
| ‘00’
| Lc不正确
|
‘69’
| ‘83’
| 鉴别方法锁定
|
‘69’
| ‘84’
| 引用数据无效
|
‘69’
| ‘85’
| 使用条件不满足
|
‘6A’
| ‘86’
| 参数P1 P2不正确
|
‘6A’
| ‘88’
| 密钥未找到
|
5.3.5 GET CHALLENGE命令
5.3.5.1 定义和范围
GET CHALLENGE命令请求一个用于安全相关过程(例如:安全报文、安全鉴别)的随机数。
随机数在使用后失效,不能被下一个命令再次使用。
5.3.5.2 命令报文
GET CHALLENGE命令报文编码见表5-16:
表5-16 GET CHALLENGE命令报文
代码
| 值
|
CLA
| ‘00’
|
INS
| ‘84’
|
P1
| ‘00’
|
P2
| ‘00’
|
Lc
| 不存在
|
Data
| 不存在
|
Le
| ‘08’
|
5.3.5.3 命令报文数据域
命令报文数据域不存在。
5.3.5.4 响应报文数据域
响应报文数据域包括随机数,长度为8字节。
5.3.5.5 响应报文状态码
此命令执行成功的状态码是‘9000’。
IC卡可能回送的错误状态码如表5-17所示:
表5-17GET CHALLENGE错误状态
SW1
| SW2
| 含 义
|
‘67’
| ‘00’
| Le长度错
|
‘6A’
| ‘81’
| 不支持此功能
|
‘6A’
| ‘86’
| 参数P1 P2不正确
|
5.3.6 INTERNAL AUTHENTICATION命令
5.3.6.1 定义和范围
INTERNAL AUTHENTICATION命令提供了利用接口设备发来的随机数和自身存储的相关密钥进行数据鉴别的功能。
5.3.6.2 命令报文
INTERNAL AUTHENTICATION命令报文编码见表5-18:
表5-18 INTERNAL AUTHENTICATION命令报文
代码
| 值
|
CLA
| ‘00’
|
INS
| ‘88’
|
P1
| ‘00’
|
P2
| ‘00’
|
Lc
| ‘11’
|
Data
| 鉴别用数据
|
Le
| ‘00’
|
INTERNAL AUTHENTICATION命令的参数P1和P2为‘00’表示无信息,它们的值是事先确定的。
5.3.6.3 命令报文数据域
命令报文数据域的内容是卡片或应用专用的鉴别数据,包含17个字节的数据:
――第1至第8个字节是过程密钥计算使用的数据,由终端产生;
――第9至第16个字节是鉴别所需的原始信息;
--第17个字节表示密钥版本。
5.3.6.4 响应报文数据域
响应报文数据域内容是相关的鉴别数据,其值根据《
居民健康卡技术规范》第9.7.3章中的规定进行计算。
5.3.6.5 响应报文状态码
此命令执行成功的状态码是‘9000’。
IC卡可能回送的警告状态码如表5-19所示:
表5-19 INTERNAL AUTHENTICATION警告状态
SW1
| SW2
| 含 义
|
‘62’
| ‘81’
| 回送的数据可能有错
|
IC卡可能回送的错误状态码如表5-20所示:
表5-20 INTERNAL AUTHENTICATION错误状态
SW1
| SW2
| 含 义
|
‘67’
| ‘00’
| Lc不正确
|
‘68’
| ‘82’
| 不支持安全报文
|
‘69’
| ‘85’
| 不满足使用条件
|
‘6A’
| ‘80’
| 数据域参数不正确
|
‘6A’
| ‘86’
| 参数P1 P2不正确
|
‘6A’
| ‘88’
| 密钥未找到
|
5.3.7 READ BINARY命令
5.3.7.1 定义和范围
READ BINARY命令用于读取透明文件的内容(或部分内容)。
5.3.7.2 命令报文
READ BINARY命令报文编码见表5-21
表5-21 READ BINARY命令报文
代码
| 值
|
CLA
| ‘00’
|
INS
| ‘B0’
|
P1
| 见表5-22
|
P2
| 见表5-22
|
Lc
| 不存在
|
Data
| 不存在
|
Le
| ‘00’或要读出的数据的长度
|
表5-22定义了命令报文中的引用控制参数:
表5-22 READ 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.7.3 命令报文数据域
命令报文数据域不存在。
5.3.7.4 响应报文数据域
当Le的值为零时,读出自要读的首字节起的256个字节;如果在读出256个字节前已到达文件最后一个字节,则自要读的首字节起的全部字节将被读出。
5.3.7.5 响应报文状态码
此命令执行成功的状态码是‘9000’。
IC卡可能回送的警告状态码如表5-23所示:
表5-23 READ BINARY警告状态
SW1
| SW2
| 含 义
|
‘62’
| ‘81’
| 部分回送的数据可能有错
|
IC卡可能回送的错误状态码如表5-24所示:
表5-24 READ BINARY错误状态
SW1
| SW2
| 含 义
|
‘69’
| ‘81’
| 命令与文件结构不相容
|
‘69’
| ‘82’
| 不满足安全状态
|
‘69’
| ‘86’
| 不满足命令执行的条件(非当前EF)
|
‘6A’
| ‘81’
| 不支持此功能
|
‘6A’
| ‘82’
| 未找到文件
|
‘6B’
| ‘00’
| 参数错误(偏移地址超出了EF)
|
‘6C’
| ‘xx’
| 长度错误(Le错误;‘xx’为实际长度)
|
5.3.8 READ RECORD命令
5.3.8.1 定义和范围
READ RECORD命令读取记录结构的基本文件中指定的记录。
IC卡的响应由回送记录组成。
5.3.8.2 命令报文
READ RECORD命令报文编码见表5-25: