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