金融系列5《AUTH过程》
INITIALIZE UPDATE: 在安全通道的显式发起期间,INITIALIZEUPDATE命令用于在卡和主机之间传送卡和会话数据。这个命令开始一个安全通道会话的发起。
CPURESET()
//选择应用区
00A40400+08+A000000333010101 0084000008(RAM+9000)
//初始化通道
80500000+08+RAM+1C
00C000001C(DATA+9000)
/*************
Key diversification data 10bytes //由卡外实体来获取卡内的静态密钥
Key information 2bytes //包含了密钥的版本号和安全通道的协议号
Card challenge 8bytes //卡内部生成的随机数
Card cryptogram 8bytes //鉴别密码
************/
KEYVERSION=COPY(DATA,21,2)
QCOUNTER=COPY(DATA,25,4)
CCHALLENGE=COPY(DATA,29,12)
CARDCHALLENGE=COPY(DATA,25,16)
MAC_RII=LAST(DATA,16) //验证MAC //计算个人化过程密钥SPenc SPmac SPdek
CBC_3DES_EN(00000000000000000182+QCOUNTER+000000000000000000000000,Penc,SPenc)
CBC_3DES_EN(00000000000000000101+QCOUNTER+000000000000000000000000,Pmac,SPmac)
CBC_3DES_EN(00000000000000000181+QCOUNTER+000000000000000000000000,Pdek,SPdek) //华大
{
SPenc=COPY(SPenc,1,16)
//3DES计算MAC MAC_RII==MAC_RI
SDES_MAC_1(0000000000000000+RAM+CARDCHALLENGE+8000000000000000,SPenc,MAC_RI)
SDES_MAC_1(0000000000000000+CARDCHALLENGE+RAM+8000000000000000,SPenc,MAC1)
3DES_MAC_1(0000000000000000+8442000010+MAC1+800000,SPmac,MAC2) //通道安全认证
84420000+10+MAC1+MAC2
} //JAVA CARD
{
//3DES计算MAC
GP_MAC(RAM+CARDCHALLENGE+8000000000000000,SPenc,MAC_RI)
GP_MAC(CARDCHALLENGE+RAM+8000000000000000,SPenc,MAC1)
3DES_MAC_1(0000000000000000+8482000010+MAC1+800000,SPmac,MAC2) //通道安全认证
84820000+10+MAC1+MAC2
}
文/闫鑫原创 转载请注明出处http://blog.csdn.net/yxstars/article/details/12015925
金融系列5《AUTH过程》的更多相关文章
- Sql Server来龙去脉系列之三 查询过程跟踪
我们在读写数据库文件时,当文件被读.写或者出现错误时,这些过程活动都会触发一些运行时事件.从一个用户角度来看,有些时候会关注这些事件,特别是我们调试.审核.服务维护.例如,当数据库错误出现.列数据被更 ...
- Spring Ioc源码分析系列--Bean实例化过程(一)
Spring Ioc源码分析系列--Bean实例化过程(一) 前言 上一篇文章Spring Ioc源码分析系列--Ioc容器注册BeanPostProcessor后置处理器以及事件消息处理已经完成了对 ...
- Spring Ioc源码分析系列--Bean实例化过程(二)
Spring Ioc源码分析系列--Bean实例化过程(二) 前言 上篇文章Spring Ioc源码分析系列--Bean实例化过程(一)简单分析了getBean()方法,还记得分析了什么吗?不记得了才 ...
- 金融系列4《PUTKEY指令》
用一个新的密钥替换一个已经存在的密钥:新密钥可以有与被替换的密钥相同的或不同的密钥版本号,但是必须与被替换的密钥有相同的密钥标识符. 用新密钥替换多个已经存在的密钥:新密钥可以有与被替换的密钥相同的或 ...
- 数据仓库系列之ETL过程和ETL工具
上周因为在处理很多数据源集成的事情一直没有更新系列文章,在这周后开始规律更新.在维度建模中我们已经了解数据仓库中的维度建模方法以及基本要素,在这篇文章中我们将学习了解数据仓库的ETL过程以及实用的ET ...
- AUTH过程
INITIALIZE UPDATE: 在安全通道的显式发起期间,INITIALIZEUPDATE命令用于在卡和主机之间传送卡和会话数据.这个命令开始一个安全通道会话的发起. CPURESET() // ...
- DM6437 dsp系列之启动过程全析(2)—AIS文件解析
本文均属自己阅读源码的点滴总结,转账请注明出处谢谢. 欢迎和大家交流.qq:1037701636 email: gzzaigcn2009@163.com,gzzaigcn2012@gmail.com ...
- thinkpad e系列 装win7过程
电脑买回来时是win8系统,但是卡顿的厉害,装成win7,win8装win7流程还是比较复杂,后来又装成xp,现在又改成win7,记录一下装win7 的过程 我是用光盘安装的系统 第一步:进入boss ...
- Elasticsearch系列---搜索执行过程及scroll游标查询
概要 本篇主要介绍一下分布式环境中搜索的两阶段执行过程. 两阶段搜索过程 回顾我们之前的CRUD操作,因为只对单个文档进行处理,文档的唯一性很容易确定,并且很容易知道是此文档在哪个node,哪个sha ...
随机推荐
- frame,bounds,center分析
采用CGPoint来表示坐标系X,Y位置,创建一个坐标的方式为:CGPoint point=CGPointMake(x,y) CGSize用来表示视图的宽度和高度,可以用CGSizeMake(widt ...
- 从敏捷开发到小团队SVN
一.敏捷之惑 敏捷开发,有一个很好的实践,“每天都可以产生一个可用于发布的版本”. 以前对这句话感到非常的困惑,因为我们手中的项目是残缺的,基本只是程序的一个功能片段,在未集成之前如何发布得了?当然这 ...
- Oracle基础<4>--程序包
一:程序包定义(包括1.程序包规范 2.程序包主体) 程序包是一种数据库对象,它是对相关pl/sql 类型.子程序.游标.异常.变量和常量的封装. 1.程序包规范:可以声明类型.变量.常量.异常.游标 ...
- 不错的jQuery图表插件 .
很多时候我们需要在网页中显示数据统计报表,从而能很直观地了解数据的走向,更好地帮助决策分析.今天就给大家分享几个个人觉得好用的jQuery图表插件,这几个图表插件使用起来非常方便,而且挺灵活的,相信大 ...
- jquery plugins —— datatables 搜索后汇总
网上的例子 http://datatables.club/example/plug-ins/api.html只能对当前页面或所有数据进行汇总,不能对搜索结果数据汇总. 以下是对datatables自带 ...
- tornado 杂记
一.建立一个简单的 hello world 网页 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 import tornado.iolo ...
- 包装BufferedReader的readLine()输出行号
定义一个类,实现与被增强对象相同的接口,或继承这个类,视情况而定 定义一个变量,记住被增强的对象 定义一个构造函数,接收被增强的对象 覆盖要增强的方法 对于不需要增强的方法,调用被增强对象原有的方法 ...
- [转] 利用任务计划重启sqlserver服务
1.建立一个批处理文件restartsqlserver.bat 内容如下: net stop mssqlserver /y net start mssqlser ...
- Js中把JSON字符串转换为JSON对象(eval()、new Function())
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 第一种解析方式:使用eval函数来解析,并且使用j ...
- cocos2dx屏幕适配方案
我们在利用cocos2dx来开发游戏时,在开始时就不可避免的会遇到屏幕适配问题,来使我们的游戏适应移动终端的各种分辨率大小.目前,大家采用的屏幕适配方案不一,网上的资料也比较丰富,下面我也将自己使用的 ...