1 Star 0 Fork 2

itlgl/pboc3.0-Documents

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
第3部分记录_命令规则.txt 7.28 KB
一键复制 编辑 原始数据 按行查看 历史
jinagchengdeng 提交于 2016-05-26 10:58 . pboc 3.0
一个块由头域、信息域和尾域组成的字符组。
头域包括:节点地址(NAD)、协议控制字节(PCB)、长度(LEN)
信息域: APDU或控制信息(INF)
尾域包括:错误校验码(EDC)
NAD PCB LEN APDU或控制信息(INF) EDC
1字节 1字节 1字节 0 ~ 254字节 1字节
NAD:b1 ~ b3表示块的源节点地址(SAD)、b5 ~ b7表示块的目的地址(DAD)、b4和b8位不用,必须设为0
PCB有3种块类型:
I块:用于传送APDU的信息块
R块:用于传送确认(ACK或者NAK)的接收准备块
S块:用于交换控制信息的管理块
I块编码:
b8 0
b7 序列号
b6 链接(更多的数据)
b5~b1 预留(RFU)
R块编码:
b8 1
b7 0
b6 0
b5 序列号
b4~b1 0=无错、1=EDC或校验出错、2=其他错误、其他值预留(RFU)
S块编码:
b8 1
b7 1
b6 0=请求、1=应答
b5~b1 0=再同步请求、1=信息域大小请求、2=放弃请求
3=BWT扩展请求、4=Vpp错误、其他值预留(RFU)
LEN:表示块的INF部分的长度
INF:当出现在I块中时,表示传送的是应用数据;当出现在S块中时,传送的是控制信息;R块不包含INF
EDC:长度为1个字节,其值由NAD开始到INF(如果存在的话)的全部字节做异或运算得到。
符号缩略语(仅列出部分):
AID 应用标示符
ACK 确认
ATR 复位应答
BGT 块保护时间
BWI 块等待时间整数
BWT 块等待时间
CWI 字符等待时间整数
CWT 字符等待时间
C-APDU 命令APDU
R-APDU 响应APDU
CLA 命令报文的类别字节
C-TPDU 命令TPDU
DAD 目的节点地址
EDC 错误校验码
IFSC IC卡信息域大小
IFSD 终端信息域大小
IFSI 信息域大小整数
INF 信息域
INS 命令报文的指令字节
Lc 终端应用层(TAL)在情况3或情况4命令中发出数据的实际长度
Le 在情况2或情况4命令中返回给终端应用层的数据最大期望长度
Licc IC卡在响应接收到的情况2或情况4命令时卡内有效或剩余的数据的实际长度
Lr 响应数据域的长度
NAD 节点地址
NAK 否定确认
RST 复位
PSE 支付系统环境
SAD 源节点地址
SW1
SW2 状态字2
TAL 终端应用层
TTL 终端传输层
TCK 校验字符
TPDU 传输协议数据单元
IC卡物理特征:
IC表面有8个触点(主要是通过传递电流)用于数据传输。
C1 : 电源电压(VCC) C5 : 地(GND)
C2 : 复位信号(RST) C6 : 未使用
C3 : 时钟信号(CLK) C7 : 输入/输出(I/O)
C4 : 未使用 C8 : 未使用
其中C7触点,作为输入端(接收模式)从终端接收数据或者作为输出端(发送模式)
向终端传送数据,此触点为半双工模式。
IC卡和终端步骤:
1)将IC卡插入接口设备,导通并激活触点
2)将IC卡复位,同时在终端和IC间建立通讯联系 *****
3)进行卡交易处理 *****
4)释放触点并从接口设备中取出IC卡
字符帧:字符传输(传输前,C7应被置为高电平状态)
每个字符由10个连续位组成:
1)1个低电平状态的起始位
2)组成数据字节的8个数据位
3)1个奇偶校验位
IC卡的复位应答回复数据:
1)IC卡必须支持两种协议中的一种,终端必须同时支持。
T=0:基于字符的异步半双工传输协议。TS、T0、TB1、TC1
T=1:基于块的异步半双工传输协议。TS、T0、TB1、TC1、TD1、TD2、TA3、TB3、TCK
2)字符取值和说明
字符 取值 说明
TS ‘3B’/‘3F’ 指明正向/反向约定,正向表明C7的高电平表示逻辑'1'。
T0 '6x'/'Ex' x表示历史字节存在个数,T=0时取值‘6x’,T=1时取值‘Ex’。
由高半字节(b5~b8)表示后续字节TA1~TD1是否存在,逻辑1表示存在
低半字节(b1~b4)表示可选历史字符的数据。
b8 b7 b6 b5 b4 b3 b2 b1
T=0 0 1 1 0 x x x x
T=1 1 1 1 0 x x x x
说明:参见《中国金融集成电路(IC)卡规范 第3部分》8.2 ~ 8.3
传输协议(终端与IC的通信):
1)命令头:由终端应用层(TAL)发出,5个字节组(CLA、INS、P1、P2、P3)成,通过TTL向IC卡发送指令
CLA : 命令类别
INS : 指令代码
P1/P2 : 附加参数
P3 : 根据不同的INS,指明发送给IC卡的命令中数据的字节长度或期待IC卡响应的最大数据长度
说明:参见《中国金融集成电路(IC)卡规范 第3部分》9
应用层:
应用协议由TAL和TTL之间一组有序的数据交换组成,一个APDU就是一个命令报文或一个响应报文。
C-APDU包含一个必备的连续四字节的命令头,用CLA、INS、P1和P2表示,同时包括一个可变长度的条件体。
CLA : 指令类型,除‘FF’外可赋任何值
INS : 指令类型的指令码。只有在最低位为‘0’,且高半字节既不是‘6’也不是‘9’时,INS才有效。
P1/P2 : 完成INS的参数字节。
条件体包括如下字节串:
Lc : 一个字节,定义了在C-APDU中发送数据的字节数。
待发送的数据 ; 字节数由Lc定义。
Le :一个字节,指出R-APDU中期望返回的最大字节数。如果Le=0,表明期望返回最大长度为256.
情况 C-APDU的结构 命令数据 响应数据
1 CLA INS P1 P2 无 无
2 CLA INS P1 P2 Lc 无 有
3 CLA INS P1 P2 Lc Data 有 无
4 CLA INS P1 P2 Lc Data Le 有 有
文件:
1)IC卡中的每个应用都包括一系列信息项(通常以文件形式存在),终端成功完成应用选择后就可以访问这些信息。
2)从终端的角度来看,IC卡上的文件时一种树形结构。数的每一个分支是一个应用定义文件(ADF)或一个目录定义文件(DDF)
命令:
1)报文结构:报文根据ATR(即T=0或T=1)所选择的传输协议在终端和卡片间传输,终端和卡片必须按本部分的定义实现物理层、数据链路层和传输层。
2)应用层发出的命令报文和卡片回送到应用层的响应报文统称为应用协议数据单元(APDU)
3)C-APDU : 由一个4字节长的必备头 + 变长的条件体组成。 CLA + INS + P1 + P2 | + Lc + Data + Le
CLA : 1字节,命令类别
INS : 1字节,指令代码
P1 : 1字节,指令参数1
P2 :1字节,指令参数2
Lc :0或1,命令数据域中存在的字节数
Data :变长,命令发送的数据位串(=Lc)
Le :0或1,响应数据域中期望的最大数据字节数
4)R-APDU :由一个变长的条件体 + 2个字节的必备尾组成。 Data | + SW1 + SW2
Data : 响应中接收的数据位串(变长=Lr,Lr不通过传输层回送,由应用计算获得)
SW1 :1字节,命令处理状态
SW2 :1字节,命令处理限定
5)读记录命令对:用于读取线性文件中的记录。编码如下
代码 值 |
CLA ‘00’ | 读记录命令引用控制参数
INS ‘B2’ | b8 b7 b6 b5 b4 b3 b2 b1 含义
P1 记录号 | x x x x x - - - SFI
P2 引用控制参数 | - - - - - 1 0 0 P1为记录号
Lc 不存在 |
Data 不存在 | R-APDU 执行成功后的成功状态字为‘9000’
Le ‘00’ |
6)选择命令:通过文件名或AID来选择IC卡中的PSE或ADF,成功后设定PSE或ADF的路径。编码如下
代码 值 | |
CLA ‘00’ | |
INS ‘A4’ | 选择命令引用控制参数 | 选择选项
P1 引用控制参数 | b8 b7 b6 b5 b4 b3 b2 b1 含义 | b8 b7 b6 b5 b4 b3 b2 b1 含义
P2 选择选项 | 0 0 0 0 0 - - - | - - - - - - 0 0 第一个有或仅有一个
Lc ‘05’-‘10’ | - - - - - 1 - - 通过名称选择 | - - - - - - 1 0 下一个
Data 文件名 | - - - - - - 0 0 |
Le ‘00’ | |
应用选择:
1)所有应用都唯一地有一个应用标示符(AID)标识
2)支付系统目录编码:目录中的记录可以通过读记录命令进行读取。一个记录可以包含几个应用的目录入口地址。编码如下
支付系统目录记录格式
标签 | 数据域程度 | 标识符 | 目录入口1长度 | 目录入口1(ADF) | …… | 标识符 | 目录入口n长度 | 目录入口n(ADF)
‘70’ | (L) | ‘61’ | (L) | (ADF) | …… | ‘61’ | (Ln) | (ADF)n
3)使用支付系统目录步骤参见《中国金融集成电路(IC)卡规范 第3部分》 12.3.2
4)如果终端或卡片有一方不支持PSE(支付系统环境)方法或者终端使用PSE目录没有找到匹配的应用,那么终端应使用它所支持的应用列表的方法建立候选列表。
AID方法步骤参见《中国金融集成电路(IC)卡规范 第3部分》12.3.3
应用标识符(AID):
1)唯一标识卡中的应用。由申请机构向金融行业主管部门申请,由管理部门统一组织分配。
2)编码规则:5字节(应用提供者标识符(RID)) + 0~11字节(专有应用标识符扩展(PIX))
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/itlgl/pboc3.0-Documents.git
git@gitee.com:itlgl/pboc3.0-Documents.git
itlgl
pboc3.0-Documents
pboc3.0-Documents
master

搜索帮助