/*******************************************

函数名称: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之间外部认证相关推荐

  1. CPU卡程序设计实例(二十五)ESAM过程密钥内部认证

    /******************************************* 函数名称:EsamInsideVali 函数功能:ESAM过程密钥内部认证 输入参数: pcReceCardR ...

  2. CPU卡程序设计实例(十二)ESAM模块字节接收函数

    ESAM模块字节接收函数 /************************************** 函数名称:EsamReceChar 函数功能:Esam接收一个字节 入口参数:无 出口参数:i ...

  3. CPU卡程序设计实例(十)ESAM复位程序

    ESAM复位程序 /************************************** 函数名称:*EsamRst 函数功能:Esam复位 入口参数:无 出口参数:复位数据 描述: Esam ...

  4. CPU卡程序设计实例(十三)终端向ESAM发送数据

    终端向ESAM发送一个字节函数 /************************************** 函数名称:EsamSendChar 函数功能:向Esam发送一个字节 入口参数:cSen ...

  5. CPU卡设计实例及程序设计(二十九)卡82H外部认证,ESAM04H,05H,06H外部认证

    /******************************************* 函数名称:AllExternVerify 函数功能:卡82H外部认证,ESAM04H,05H,06H外部认证 ...

  6. 无人驾驶汽车系统入门(二十六)——基于深度学习的实时激光雷达点云目标检测及ROS实现

    无人驾驶汽车系统入门(二十六)--基于深度学习的实时激光雷达点云目标检测及ROS实现 在前两篇文章中,我们使用PCL实现了在点云中对地面的过滤和点云的分割聚类,通常来说,在这两步以后我们将对分割出来的 ...

  7. (转)tensorflow入门教程(二十六)人脸识别(上)

    https://blog.csdn.net/rookie_wei/article/details/81676177 1.概述 查看全文 http://www.taodudu.cc/news/show- ...

  8. JVM 学习笔记二十六、JVM监控及诊断工具-GUI篇

    二十六.JVM监控及诊断工具-GUI篇 1.工具概述 使用上一张命令行工具或组合能帮您获取目标Java应用性能相关的基础信息,但他们存在下列局限: (1)无法获取方法级别的分析数据,如方法间的调用关系 ...

  9. 黑猫互联云计算机,黑猫评测 篇二十六:解决联想轻薄本痛点,3TB性价比NAS方案,联想个人云存储A1评测...

    黑猫评测 篇二十六:解决联想轻薄本痛点,3TB性价比NAS方案,联想个人云存储A1评测 2020-09-16 13:34:46 5点赞 10收藏 4评论 联想小新Pro 13的痛点,终于找到了完美的解 ...

最新文章

  1. 第十六届全国大学生智能车| AI视觉组新手入门教程
  2. Win7旗舰版中的IIS配置asp.net的运行环境
  3. script学习,如何用linux监控你的同事?
  4. 8/人天,小记一次 JAVA(APP后台) 项目改造 .NET 过程(后台代码已完整开源于 Github)...
  5. jquery.datepair日期时分秒选择器
  6. 曾比海底捞还牛,如今关店1200家!肯德基的猪队友,快被中国人抛弃了?
  7. JavaScript学习(二十五)—实现无缝滚动
  8. 荣耀平板7可以用鸿蒙么,荣耀平板7定档3月23日发布,一屏可同时开启4个应用
  9. c# 标准正太分布函数_数据处理中0-1规范化和标准化
  10. 金格HTML签章集成
  11. 【高速PCB电路设计】2.高速电路DDR原理图概述
  12. php侧边客服,利用jquery实现网页侧边栏在线客服代码
  13. python PyEnchant(拼写检查)
  14. Leetcode刷题114. 二叉树展开为链表
  15. html格式错误检测,HTML格式错误
  16. 一张图让你搞懂“非对称加密”
  17. YX2811景观装鉓驱动IC
  18. Linux相关命令(一)
  19. 一个niubility的Vue游戏,真厉害!
  20. JAVA NPE 是什么,空异常

热门文章

  1. 首页仪表盘echarts _封装万能表单组件
  2. 卡里 约翰爆破压缩包---kali john
  3. 虚假招聘的岗位的特征有哪些呢
  4. 百度音乐电台升级紧跟豆瓣FM:强调坚持免费
  5. 【全套完结】通信原理----全套Matlab仿真实验报告
  6. 2020~2022年软件测试的五大趋势
  7. 数据库——⽣成数据字典(导出word文档)
  8. 软考高项-系统架构师考试心得
  9. 阿里面试官9年面试2000 人!原来是不注意这些被淘汰......
  10. 【Mysql】MVCC