CPU卡程序设计实例(二十六)卡和ESAM之间外部认证
/*******************************************
函数名称:CardExterVali
函数功能:卡与ESAM之间外部认证
输入参数:cApplySerialNumber1[8]-卡公共应用信息文件中的序列号,
KeyNum2-外部认证密钥标识符
输出参数:无
描述:卡取随机数-ESAM用02密钥对序列号生成过程密钥-ESAM过程密钥内部认证
--卡82H外部认证
*******************************************/
void CardAndEsamExternVerify(unsigned char cApplySerialNumber1[8],unsigned char KeyNum2)
{
unsigned char *pcReceCardRand;
unsigned char *pcReceCardData;
unsigned char cReceCardData[8]={0};
unsigned char cReceCardRand[8]={0};
CardWorkFlag=CardORESAM|CardWorkFlag;
pcReceCardRand=Get_RandNum(); //从卡上取随机数
if(ErrorRWBIT&CardError) goto CardExterValiEnd;
memcpy(&cReceCardRand[0],pcReceCardRand,8);
CardWorkFlag=~CardORESAM&CardWorkFlag;
//ESAM用02密钥,将序列号生成过程密钥
GetProcessKey(cApplySerialNumber1,EsamInfoUpKey);
if(ErrorRWBIT&CardError) goto CardExterValiEnd;
CardWorkFlag=~CardORESAM&CardWorkFlag;
//ESAM用过程密钥对随机数做内部认证,生成数据D
pcReceCardData=EsamInsideVerify(cReceCardRand,EsamKEYVerify);
if(ErrorRWBIT&CardError) goto CardExterValiEnd;
memcpy(&cReceCardData[0],pcReceCardData,8);
//cpu卡使用外部验证指令对数据D进行外部验证
CardWorkFlag=CardORESAM|CardWorkFlag;
ExternVerify(cReceCardData,CardInfoUpKey);
CardExterValiEnd:
_NOP();
if(ErrorRWBIT&CardError)
CardError=ErrorCardExtAuthBIT|CardError;
}
CPU卡程序设计实例(二十六)卡和ESAM之间外部认证相关推荐
- CPU卡程序设计实例(二十五)ESAM过程密钥内部认证
/******************************************* 函数名称:EsamInsideVali 函数功能:ESAM过程密钥内部认证 输入参数: pcReceCardR ...
- CPU卡程序设计实例(十二)ESAM模块字节接收函数
ESAM模块字节接收函数 /************************************** 函数名称:EsamReceChar 函数功能:Esam接收一个字节 入口参数:无 出口参数:i ...
- CPU卡程序设计实例(十)ESAM复位程序
ESAM复位程序 /************************************** 函数名称:*EsamRst 函数功能:Esam复位 入口参数:无 出口参数:复位数据 描述: Esam ...
- CPU卡程序设计实例(十三)终端向ESAM发送数据
终端向ESAM发送一个字节函数 /************************************** 函数名称:EsamSendChar 函数功能:向Esam发送一个字节 入口参数:cSen ...
- CPU卡设计实例及程序设计(二十九)卡82H外部认证,ESAM04H,05H,06H外部认证
/******************************************* 函数名称:AllExternVerify 函数功能:卡82H外部认证,ESAM04H,05H,06H外部认证 ...
- 无人驾驶汽车系统入门(二十六)——基于深度学习的实时激光雷达点云目标检测及ROS实现
无人驾驶汽车系统入门(二十六)--基于深度学习的实时激光雷达点云目标检测及ROS实现 在前两篇文章中,我们使用PCL实现了在点云中对地面的过滤和点云的分割聚类,通常来说,在这两步以后我们将对分割出来的 ...
- (转)tensorflow入门教程(二十六)人脸识别(上)
https://blog.csdn.net/rookie_wei/article/details/81676177 1.概述 查看全文 http://www.taodudu.cc/news/show- ...
- JVM 学习笔记二十六、JVM监控及诊断工具-GUI篇
二十六.JVM监控及诊断工具-GUI篇 1.工具概述 使用上一张命令行工具或组合能帮您获取目标Java应用性能相关的基础信息,但他们存在下列局限: (1)无法获取方法级别的分析数据,如方法间的调用关系 ...
- 黑猫互联云计算机,黑猫评测 篇二十六:解决联想轻薄本痛点,3TB性价比NAS方案,联想个人云存储A1评测...
黑猫评测 篇二十六:解决联想轻薄本痛点,3TB性价比NAS方案,联想个人云存储A1评测 2020-09-16 13:34:46 5点赞 10收藏 4评论 联想小新Pro 13的痛点,终于找到了完美的解 ...
最新文章
- 第十六届全国大学生智能车| AI视觉组新手入门教程
- Win7旗舰版中的IIS配置asp.net的运行环境
- script学习,如何用linux监控你的同事?
- 8/人天,小记一次 JAVA(APP后台) 项目改造 .NET 过程(后台代码已完整开源于 Github)...
- jquery.datepair日期时分秒选择器
- 曾比海底捞还牛,如今关店1200家!肯德基的猪队友,快被中国人抛弃了?
- JavaScript学习(二十五)—实现无缝滚动
- 荣耀平板7可以用鸿蒙么,荣耀平板7定档3月23日发布,一屏可同时开启4个应用
- c# 标准正太分布函数_数据处理中0-1规范化和标准化
- 金格HTML签章集成
- 【高速PCB电路设计】2.高速电路DDR原理图概述
- php侧边客服,利用jquery实现网页侧边栏在线客服代码
- python PyEnchant(拼写检查)
- Leetcode刷题114. 二叉树展开为链表
- html格式错误检测,HTML格式错误
- 一张图让你搞懂“非对称加密”
- YX2811景观装鉓驱动IC
- Linux相关命令(一)
- 一个niubility的Vue游戏,真厉害!
- JAVA NPE 是什么,空异常