]> cvs.zerfleddert.de Git - proxmark3-svn/blobdiff - armsrc/mifaredesfire.c
code to check RndA' from PICC was unreachable
[proxmark3-svn] / armsrc / mifaredesfire.c
index 0a3fdc34964276cc8a55b28ec98daa2a4b4e938e..e5a2289b29993db88019dc27f7101557c6df7696 100644 (file)
@@ -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;
Impressum, Datenschutz