CPU卡设计实例及程序设计--外部认证,卡和ESAM通用
[复制链接]
/*******************************************
函数名称:ExternVerify
函数功能:外部认证,卡和ESAM通用
输入参数:cReceCardData1[8]命令数据8字节,cKeyNum3密钥标识符
输出参数:
描述:发命令头-发命令数据-判断响应命令字是否正确
*******************************************/
void ExternVerify(unsigned char cReceCardData1[8],unsigned char cKeyNum3)
{
cCommandLen=0x05;
TxAndRxBuff[0]=0x00;
TxAndRxBuff[1]=0x82;
TxAndRxBuff[2]=0x00;
TxAndRxBuff[3]=cKeyNum3;
TxAndRxBuff[4]=0x08;
SendCommandHead_Pro();
if(ErrorReadWriteBIT&iErrorRWrCard) goto ExterVeriProEnd;
Delay1XETU(5);
memcpy(&TxAndRxBuff[0],&cReceCardData1[0],8);
cCommandLen=8;
SendCommand(cCommandLen);
if(ErrorReadWriteBIT&iErrorRWrCard) goto ExterVeriProEnd;
if(ICSAM&icflag1)
{
TxAndRxBuff[0]=CardReceChar();
TxAndRxBuff[1]=CardReceChar();
}
else
{
TxAndRxBuff[0]=EsamReceChar();
TxAndRxBuff[1]=EsamReceChar();
}
if((TxAndRxBuff[0]!=0x90)&&(TxAndRxBuff[1]!=0x00))
iErrorRWrCard=ErrorReadWriteBIT|iErrorRWrCard;
ExterVeriProEnd:
delay_ms2M(5);
}
|