CPU卡程序设计实例(二十五)ESAM过程密钥内部认证
/*******************************************
函数名称: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过程密钥内部认证相关推荐
- CPU卡设计实例及程序设计(三十)ESAM过程密钥内部认证
/******************************************* 函数名称:EsamInsideVali 函数功能:ESAM过程密钥内部认证 输入参数: pcReceCardR ...
- CPU卡程序设计实例(十)ESAM复位程序
ESAM复位程序 /************************************** 函数名称:*EsamRst 函数功能:Esam复位 入口参数:无 出口参数:复位数据 描述: Esam ...
- CPU卡程序设计实例(十二)ESAM模块字节接收函数
ESAM模块字节接收函数 /************************************** 函数名称:EsamReceChar 函数功能:Esam接收一个字节 入口参数:无 出口参数:i ...
- CPU卡程序设计实例(八)ESAM模块卡上、下电
1.3 ESAM模块上电程序 /******************************************* 函数名称:EsamPowerUp 函数功能:Esam上电 输入参数:无 输出参数 ...
- CPU卡程序设计实例(二十六)卡和ESAM之间外部认证
/******************************************* 函数名称:CardExterVali 函数功能:卡与ESAM之间外部认证 输入参数:cApplySerialN ...
- CPU卡程序设计实例(六)ETU配置
1.数据位宽时间(ETU)计算程序 前面已经说过,数据位宽是CPU卡程序设计中非常重要的一环,涉及到数据读写的可靠性和稳定性.下面这段程序就是在IAR环境下,基于MSP430单片机C语言的数据位宽计算 ...
- CPU卡程序设计实例(二十三)卡和ESAM之间内部认证
1.标识符宏定义 //CPU卡密钥标识 #define CardInfoDownKey 0x81 // #define CardInfoUpKey 0x82 // #define CardInside ...
- CPU卡程序设计实例(十三)终端向ESAM发送数据
终端向ESAM发送一个字节函数 /************************************** 函数名称:EsamSendChar 函数功能:向Esam发送一个字节 入口参数:cSen ...
- MFC Windows 程序设计[二十五]之五彩十六宫格(附源码)
MFC Windows 程序设计[二十五]之五彩十六宫格 程序之美 前言 主体 运行效果 核心代码 逻辑分析 结束语 程序之美 前言 MFC是微软公司提供的一个类库(class libraries), ...
最新文章
- linux里那些依赖包
- [异常解决] 安卓6.0权限问题导致老蓝牙程序出现异常解决办法:Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission...
- HashMap和Hashtable的区别总结
- opencv 摄像头
- Log4j的自定义logger
- sonar 使用问题 Unable to load component class org.sonar.scanner.report.ActiveRulesPublisher
- 写一个算法统计在输入字符串中各个字符出现的频度
- Theano+Keras开发环境搭建(最简单的教程)
- pandas python2.3版本_python-像以前的版本一样,将pandas 0.13.0“ pri...
- 最初语音识别率只有60%,如今坐拥5亿用户,这款AI产品是怎么做到的?
- 简单的BBcode parsing
- 云时代的“双态IT”运维思路
- 支付宝推出信用租房 醉翁之意不在酒?
- php连接mongodb数据库报错No suitable servers found
- Mac自带Safari浏览器如何清除缓存
- 如何用photoshop CS制作标准一寸照
- Java实现就诊排队叫号系统(使用ArrayList集合实现)
- 计算机cmos参数的设置,CMOS常见的设置方法
- 解决 npm install 时出现的.git can‘t be found (see https://git.io/Jc3F9)的问题 run `npm fund` for details问题解决
- springboot毕设项目永川一心一房地产平台95ho0(java+VUE+Mybatis+Maven+Mysql)
热门文章
- 机器学习与计算机视觉入门项目——视频投篮检测(一)
- ubuntu16.04安装TITANX驱动+cuda9.0+cudnn7.0
- 蝙蝠侠:阿甘起源 for Mac(角色扮演游戏)支持Big Sur
- Chrome浏览器插件(扩展程序)获取以及安装
- 某校园网绕过实现上网的教程
- (C语言)求幂级数展开的部分和
- Vuforia 使用
- java jtextfield长度_JAVA之JTextField限制输入长度
- 坎蒂雷赋权法 matlab,综合评价系统中客观赋权方法.doc
- Unreal Engine虚幻引擎 5