用户卡认证命令流
1、获取随机数:0084000004
2、进入1001目录:00A40000021001
3、读15文件:00B095002B
4、计算mac:00880201 + 10(1字节数据长度) + 16字节摘要码
操作IC卡片(读15文件,卡基本信息)
1、选1001:00A4 000002 1001
2、读15文件:00B095002B
操作IC卡片(写15文件,卡基本信息)
1、选3F00:00A40000023F00
2、选1001目录:00A40000021001
3、取随机数:0084000004(04代表去4字节随机数)
4、写15文件:"04D69500"+len+data+Mac2
04D6:写文件命令头
95:文件短文件标识符
00:起始地址
len:后面数据长度(data+mac的长度)
data:写入数据内容
Mac2:
注:Mac2的计算:调用getMAC2()方法计算 --- Mac的计算和数据的加密的方法都在DesMac
操作IC卡片(读16文件,持卡人信息)
1、选3F00:00A40000023F00
2、读16文件:00B0960037
操作IC卡片(写16文件,持卡人信息)
1、选3F00:00A40000023F00
2、取随机数:0084000004(04代表去4字节随机数)
3、写16文件:"04D69600"+len+data+Mac
04D6:写文件命令头
96:文件短文件标识符
00:起始地址
len:后面数据长度(data+mac的长度)
data:写入数据内容
Mac:4字节
注:Mac2的计算:调用getMAC2()方法计算。
操作IC卡片(圈存)
1、选1001:00A40000021001
2、读15文件:00B095002B
3、验PIN码:00200000+PIN码的len+PIN码 (例如:0020000003888888、0020000006313233343536)
4、圈存初始化(获取MAC1):805000+交易类型("01"或"02")+0B(后面数据长度)+秘钥索引(1字节)
+交易金额(4字节)+终端机编号(6字节)
交易类型:ED:电子存折(01)
EP:电子钱包(02)
圈存初始化响应报文如表30
5、计算MAC2(4字节):调用CalCreditForLoadCheckMac1AndMac2()方法计算MAC2
6、圈存写卡:805200000B+交易日期(4字节)+交易时间(3字节)+MAC2(4字节)
操作IC卡片(消费)
1、选1001:00A40000021001
2、读15文件: 00B095002B
3、读19文件:00B201CC2B
4、消费初始化:805001+交易类型("01"或"02")+0B(后面数据长度)+秘钥索引(1字节)
+交易金额(4字节)+终端机编号(6字节)
交易类型:ED:电子存折(01)
EP:电子钱包(02)
消费初始化响应报文如表34
5、计算MAC2(4字节):调用CalConsumptionForLoadCheckMac1AndMac2()方法计算MAC1
6、消费写卡:805401000F+终端交易序号(4字节)+交易日期(4字节)+交易时间(3字节)+MAC1(4字节)
操作IC卡片(读18文件,终端交易记录文件)
1、选1001:00A40000021001
2、验PIN:00200000+PIN码的len+PIN码 (例如 0020000003888888)
3、读18文件的第一条:00B201C417
操作IC卡片读(19文件,复合消费文件)
1、选1001:00A40000021001
2、读19文件的第一条:00B201CC2B
操作IC卡片(读余额)
1、选1001:00A40000021001
2、读余额:805C000204
操作OBU(读系统该信息)
1、选3F00:00A40000023F00
2、读EF01文件:00B081001B --- 返回27字节系统信息
操作OBU(写OBU的系统信息)
1、选3F00:00A40000023F00
2、读 EF01文件:00B081001B --- 返回27字节系统信息
3、取随机数:0084000004(04代表去4字节随机数)
4、写OBU的系统信息文件:04D681120D+9字节系统信息+4字节Mac
eg:04D681120D + 202101212031012101 + 33DCB68D
04D6:写文件命令头
81:文件短文件标识符
12:偏移量(10进制的18)
0D:后面数据长度
注:4字节MAC的计算:调用getMAC2()方法计算,或者使用psam发送指令计算
操作OBU(读OBU车辆信息)
1、选3F00:00A40000023F00
2、读EF01文件:00B081001B --- 返回27字节系统信息
3、选DF01目录:00A4000002DF01
4、取随机数:0084000008(08代表去8字节随机数)
5、读车辆信息:00B400000A+8字节随机数+3B(读取车辆文件长度) +00(密钥版本:00--非国密,41--国密)
注:返回读车辆信息文件密文
6、调用“解密OBU车辆信息接口”将密文传给后台解密即可
操作OBU(写OBU车辆信息)
1、选3F00:00A40000023F00
2、读EF01文件:00B081001B --- 返回27字节系统信息
3、选DF01目录:00A4000002DF01
4、取随机数:0084000004(04代表去4字节随机数)
5、写OBU的车辆信息文件:04D681003F + 59字节车辆信息 + 4字节Mac
eg:04D681003F + BEA94A4C39353237000000000000010100140F0F040203E8000004000000000000000000000000000000010000000000000000000000000000000B + A50E2242
04D6:写文件命令头
81:文件短文件标识符
00:起始地址
3F:后面数据长度
注:4字节MAC的计算:调用getMAC2()方法计算
操作OBU(激活OBU)
1、选3F00:00A40000023F00。
2、读EF01文件:00B081001B --- 返回27字节系统信息
3、取随机数:0084000004(04代表去4字节随机数,随机数即广西接口中的初始化向量)
4、调用getMAC2()方法
5、写OBU:04D6811A05+01(系统信息的第27字节为拆卸状态:01-已激活,00-未激活)+4字节Mac
04D6:写文件命令头
81:文件短文件标识符
1A:起始地址
05:后面数据长度
操作PSAM卡(PSAM卡认证命令流)
1、选DF02目录:00A4000002DF02
2、秘钥分散:801A280208 + 8字节卡序列号
3、计算mac:80FA0500 + 20(1字节数据长度) + 0000000000000000 + 16字节摘要码 + 8000000000000000
注:数据长度必须是8的倍数