From 06732632308cb40fba0cde7ad87bf455a2d42e50 Mon Sep 17 00:00:00 2001 From: Blaine Forbort Date: Sat, 20 Dec 2014 19:25:31 -0800 Subject: [PATCH] code to check RndA' from PICC was unreachable --- armsrc/mifaredesfire.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/armsrc/mifaredesfire.c b/armsrc/mifaredesfire.c index 0a3fdc34..e5a2289b 100644 --- a/armsrc/mifaredesfire.c +++ b/armsrc/mifaredesfire.c @@ -294,6 +294,18 @@ void MifareDES_Auth1(uint8_t mode, uint8_t algo, uint8_t keyno, uint8_t *datain desfirekey_t skey = &sessionKey; Desfire_session_key_new( RndA, RndB , key, skey ); //print_result("SESSION : ", skey->data, 8); + + memcpy(encRndA, resp+3, 8); + des_dec(&encRndA, &encRndA, key->data); + rol(decRndA,8); + for (int x = 0; x < 8; x++) { + if (decRndA[x] != encRndA[x]) { + DbpString("Authetication failed. Cannot varify PICC."); + OnError(); + return; + } + } + OnSuccess(); cmd_send(CMD_ACK,1,0,0,skey->data,8); @@ -303,18 +315,6 @@ void MifareDES_Auth1(uint8_t mode, uint8_t algo, uint8_t keyno, uint8_t *datain return; } - memcpy(encRndA, resp+3, 8); - des_dec(&encRndA, &encRndA, key->data); - rol(decRndA,8); - for (int x = 0; x < 8; x++) { - if (decRndA[x] != encRndA[x]) { - DbpString("Authetication failed. Cannot varify PICC."); - OnError(); - return; - } - } - - } } break; -- 2.39.2