Re: I have problem in AUTHENTICATION

Forum MIFARE SmartCard IC`s MIFARE DESFire I have problem in AUTHENTICATION Re: I have problem in AUTHENTICATION

Re: I have problem in AUTHENTICATION

24. April 2015 at 8:02
Hello . thanks for your answer.
I don't use SDK.
I writing C app in keil with stm32 microcontroller.
I send ( 0x0a 0x00) to Desfire card and card replay a 8 byte random number .
then I don't no what to do.
please help me .
I attach my code here:




bool DesFire_Authenticate(const uint8_t *key)
{
uint8_t des_buffer_1[16];
uint8_t des_buffer_2[16];

desInit(&des,key,8);

send_buffer[0] = 0x0A; // cmd
send_buffer[1] = MDAR_KEY0; // key number
if(PN532_transfer(send_buffer,2,get_buffer,&get_len)== true)
{

}
else
{
printf("can not send n");
return false;
}
if(get_buffer[0] != 0xAF)
return false;

//=====================================

send_buffer[0] = 0xAF;

for(int i=9 ; i< 17 ; i++)
{
des_buffer_1 = get_buffer;
}

desDecryptBlock(&des,des_buffer_1,des_buffer_2);

for(int i=9 ; i< 17 ; i++)
{
send_buffer = des_buffer_2;

}
for(int i=0 ; i< 8 ; i++)
des_buffer_1 = key;

desEncryptBlock(&des,des_buffer_1,des_buffer_2);

for(int i=1 ; i< 9 ; i++)
send_buffer = des_buffer_2;
printf("send : ");
for(int i =0 ; i< 17 ; i++)
printf("%02X,",send_buffer);
printf("n");
if(PN532_transfer(send_buffer,17,get_buffer,&get_len)== true)
{
for(int i=0 ; i<get_len ; i++)
{
printf("%02X ",get_buffer);
}
printf("n");
}
else
{
printf("can not send n");
return false;
}
return true;
}
+ 0  |  - 0