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

函数名称:EsamInsideVali

函数功能:ESAM过程密钥内部认证

输入参数: pcReceCardRand-卡产生的随机数,KEYNum1,内部认证密钥标识

输出参数:无

描述:发命令头--发数据-发取响应数据命令--获得数据

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

unsigned char* EsamInsideVerify(unsigned char* pcReceCardRand,unsigned char KEYNum1)

{

unsigned char cReceCardDatdBuff2[8]={0};

unsigned char *pcReceDataBuff;

unsigned int itemp;

cCommandLen=0x05;

TxAndRxBuff[0]=0x80;

TxAndRxBuff[1]=0xfa;

TxAndRxBuff[2]=0x00;

TxAndRxBuff[3]=KEYNum1;

TxAndRxBuff[4]=0x08;

SendCommandHead_Pro(); //发命令头

if(ErrorRWBIT&CardError) goto EsamInsideValiEnd;

memcpy(&TxAndRxBuff[0],pcReceCardRand,8);

Delay1XETU(4);

cCommandLen=8;

SendCommand(cCommandLen);//发数据

TxAndRxBuff[0]=EsamReceChar();

TxAndRxBuff[1]=EsamReceChar();

SendC0Comm(); //发“取响应数据”命令

for(itemp=0;itemp<8;itemp++)

{

cReceCardDatdBuff2[itemp]=EsamReceChar(); //接受ESAM返回信息

if(ErrorRWBIT&CardError) break;

}

TxAndRxBuff[0]=EsamReceChar();

TxAndRxBuff[1]=EsamReceChar();

if((TxAndRxBuff[0]!=0x90)&&(TxAndRxBuff[1]!=0x00))

{

CardError=ErrorRWBIT|CardError;

goto EsamInsideValiEnd;

}

EsamInsideValiEnd:

pcReceDataBuff=&cReceCardDatdBuff2[0];

delay_ms2M(5);

return pcReceDataBuff;

}

CPU卡程序设计实例(二十五)ESAM过程密钥内部认证相关推荐

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

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

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

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

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

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

  4. CPU卡程序设计实例(八)ESAM模块卡上、下电

    1.3 ESAM模块上电程序 /******************************************* 函数名称:EsamPowerUp 函数功能:Esam上电 输入参数:无 输出参数 ...

  5. CPU卡程序设计实例(二十六)卡和ESAM之间外部认证

    /******************************************* 函数名称:CardExterVali 函数功能:卡与ESAM之间外部认证 输入参数:cApplySerialN ...

  6. CPU卡程序设计实例(六)ETU配置

    1.数据位宽时间(ETU)计算程序 前面已经说过,数据位宽是CPU卡程序设计中非常重要的一环,涉及到数据读写的可靠性和稳定性.下面这段程序就是在IAR环境下,基于MSP430单片机C语言的数据位宽计算 ...

  7. CPU卡程序设计实例(二十三)卡和ESAM之间内部认证

    1.标识符宏定义 //CPU卡密钥标识 #define CardInfoDownKey 0x81 // #define CardInfoUpKey 0x82 // #define CardInside ...

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

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

  9. MFC Windows 程序设计[二十五]之五彩十六宫格(附源码)

    MFC Windows 程序设计[二十五]之五彩十六宫格 程序之美 前言 主体 运行效果 核心代码 逻辑分析 结束语 程序之美 前言 MFC是微软公司提供的一个类库(class libraries), ...

最新文章

  1. linux里那些依赖包
  2. [异常解决] 安卓6.0权限问题导致老蓝牙程序出现异常解决办法:Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission...
  3. HashMap和Hashtable的区别总结
  4. opencv 摄像头
  5. Log4j的自定义logger
  6. sonar 使用问题 Unable to load component class org.sonar.scanner.report.ActiveRulesPublisher
  7. 写一个算法统计在输入字符串中各个字符出现的频度
  8. Theano+Keras开发环境搭建(最简单的教程)
  9. pandas python2.3版本_python-像以前的版本一样,将pandas 0.13.0“ pri...
  10. 最初语音识别率只有60%,如今坐拥5亿用户,这款AI产品是怎么做到的?
  11. 简单的BBcode parsing
  12. 云时代的“双态IT”运维思路
  13. 支付宝推出信用租房 醉翁之意不在酒?
  14. php连接mongodb数据库报错No suitable servers found
  15. Mac自带Safari浏览器如何清除缓存
  16. 如何用photoshop CS制作标准一寸照
  17. Java实现就诊排队叫号系统(使用ArrayList集合实现)
  18. 计算机cmos参数的设置,CMOS常见的设置方法
  19. 解决 npm install 时出现的.git can‘t be found (see https://git.io/Jc3F9)的问题 run `npm fund` for details问题解决
  20. springboot毕设项目永川一心一房地产平台95ho0(java+VUE+Mybatis+Maven+Mysql)

热门文章

  1. 机器学习与计算机视觉入门项目——视频投篮检测(一)
  2. ubuntu16.04安装TITANX驱动+cuda9.0+cudnn7.0
  3. 蝙蝠侠:阿甘起源 for Mac(角色扮演游戏)支持Big Sur
  4. Chrome浏览器插件(扩展程序)获取以及安装
  5. 某校园网绕过实现上网的教程
  6. (C语言)求幂级数展开的部分和
  7. Vuforia 使用
  8. java jtextfield长度_JAVA之JTextField限制输入长度
  9. 坎蒂雷赋权法 matlab,综合评价系统中客观赋权方法.doc
  10. Unreal Engine虚幻引擎 5