CPU卡程序设计实例(二十)8字节随机数读取
2017-04-28 19:46
281 查看
/*******************************************
函数名称:Get_RandNum
函数功能:从卡或者ESAM取8字节随机数
输入参数:无
输出参数:*pcRandBuff
描述:发命令头-接收到的数据等于命令头中的第二字节后,接下来的8个字节是随机数
*******************************************/
unsigned char *Get_RandNum(void)
{
unsigned char cRandBuff[10]={0};
unsigned char *pcRandBuff;
unsigned int itemp;
cCommandLen=0x05;
TxAndRxBuff[0]=0x00;
TxAndRxBuff[1]=0x84;
TxAndRxBuff[2]=0x00;
TxAndRxBuff[3]=0x00;
TxAndRxBuff[4]=0x08;
SendCommandHead_Pro();
if(CardORESAM&CardWorkFlag)
{
for(itemp=0;itemp<10;itemp++)
{
cRandBuff[itemp]=CardReceChar();
if(ErrorRWBIT&CardError) goto GetRandNumEnd;
}
}
else
{
for(itemp=0;itemp<10;itemp++)
{
cRandBuff[itemp]=EsamReceChar();
if(ErrorRWBIT&CardError) goto GetRandNumEnd;
}
}
if((cRandBuff[8]!=0x90)&&(cRandBuff[9]!=0x00))
{
CardError=ErrorRandBIT|CardError;
}
GetRandNumEnd:
delay_ms2M(5);
pcRandBuff=&cRandBuff[0];
return pcRandBuff;
}
函数名称:Get_RandNum
函数功能:从卡或者ESAM取8字节随机数
输入参数:无
输出参数:*pcRandBuff
描述:发命令头-接收到的数据等于命令头中的第二字节后,接下来的8个字节是随机数
*******************************************/
unsigned char *Get_RandNum(void)
{
unsigned char cRandBuff[10]={0};
unsigned char *pcRandBuff;
unsigned int itemp;
cCommandLen=0x05;
TxAndRxBuff[0]=0x00;
TxAndRxBuff[1]=0x84;
TxAndRxBuff[2]=0x00;
TxAndRxBuff[3]=0x00;
TxAndRxBuff[4]=0x08;
SendCommandHead_Pro();
if(CardORESAM&CardWorkFlag)
{
for(itemp=0;itemp<10;itemp++)
{
cRandBuff[itemp]=CardReceChar();
if(ErrorRWBIT&CardError) goto GetRandNumEnd;
}
}
else
{
for(itemp=0;itemp<10;itemp++)
{
cRandBuff[itemp]=EsamReceChar();
if(ErrorRWBIT&CardError) goto GetRandNumEnd;
}
}
if((cRandBuff[8]!=0x90)&&(cRandBuff[9]!=0x00))
{
CardError=ErrorRandBIT|CardError;
}
GetRandNumEnd:
delay_ms2M(5);
pcRandBuff=&cRandBuff[0];
return pcRandBuff;
}
相关文章推荐
- CPU卡程序设计实例(二十一)4字节随机数读取
- CPU卡程序设计实例(十一)CPU卡字节数据接收
- CPU卡程序设计实例(十二)ESAM模块字节接收函数
- CPU卡程序设计实例(二)软件设计
- CPU卡程序设计实例(五)单片机系统主频设置
- CPU卡设计实例及程序设计(三十)ESAM过程密钥内部认证
- CPU卡设计实例及程序设计(二十八)ESAM外部认证
- JAVA按字节读取文件的简单实例
- CPU卡程序设计实例(二十五)ESAM过程密钥内部认证
- CPU卡程序设计实例(十九)取响应数据命令
- CPU卡程序设计实例(三)命令格式
- CPU卡程序设计实例(九)CPU卡复位程序
- CPU卡程序设计实例(二十三)卡和ESAM之间内部认证
- CPU卡程序设计实例(十五)数据校验
- CPU卡程序设计实例(七)CPU卡上、下电
- CPU卡程序设计实例(十六)文件选择
- CPU卡程序设计实例(十三)终端向ESAM发送数据
- CPU卡程序设计实例(二十六)卡和ESAM之间外部认证
- CPU卡程序设计实例(十八)命令体函数
- CPU卡程序设计实例(二十四)生成过程密钥