]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - armsrc/mifarecmd.c
ADD: @icsom changes and additions to lua scripts for LEGIC
[proxmark3-svn] / armsrc / mifarecmd.c
index 22f499aae43fd1d55d7b72a6ac170504401d956d..c0e357b8cb478a91aa64023e8a90838b7a3ff210 100644 (file)
@@ -260,7 +260,7 @@ void MifareUReadCard(uint8_t arg0, uint16_t arg1, uint8_t arg2, uint8_t *datain)
        iso14443a_setup(FPGA_HF_ISO14443A_READER_LISTEN);\r
 \r
        // free eventually allocated BigBuf memory\r
-       BigBuf_free();\r
+       BigBuf_free(); BigBuf_Clear_ext(false);\r
        clear_trace();\r
        set_tracing(true);\r
        \r
@@ -778,8 +778,8 @@ void MifareNested(uint32_t arg0, uint32_t arg1, uint32_t calibrate, uint8_t *dat
        iso14443a_setup(FPGA_HF_ISO14443A_READER_LISTEN);\r
 \r
        // free eventually allocated BigBuf memory\r
-       BigBuf_free();\r
-\r
+       BigBuf_free(); BigBuf_Clear_ext(false);\r
+       \r
        if (calibrate) clear_trace();\r
        set_tracing(true);\r
 \r
@@ -998,8 +998,6 @@ void MifareChkKeys(uint16_t arg0, uint8_t arg1, uint8_t arg2, uint8_t *datain)
        set_tracing(TRUE);\r
 \r
        for (i = 0; i < keyCount; ++i) {\r
-               if (mifare_classic_halt(pcs, cuid))\r
-                       if (MF_DBGLEVEL >= 1)   Dbprintf("ChkKeys: Halt error");\r
 \r
                if (!iso14443a_select_card(uid, NULL, &cuid, true, 0)) {\r
                        if (OLD_MF_DBGLEVEL >= 1)       Dbprintf("ChkKeys: Can't select card");\r
@@ -1007,19 +1005,23 @@ void MifareChkKeys(uint16_t arg0, uint8_t arg1, uint8_t arg2, uint8_t *datain)
                }\r
 \r
                ui64Key = bytes_to_num(datain + i * 6, 6);\r
-               if (mifare_classic_auth(pcs, cuid, blockNo, keyType, ui64Key, AUTH_FIRST))\r
+               if (mifare_classic_auth(pcs, cuid, blockNo, keyType, ui64Key, AUTH_FIRST)) {\r
+                       if (mifare_classic_halt(pcs, cuid))\r
+                               if (MF_DBGLEVEL >= 1)   Dbprintf("ChkKeys: Halt error");\r
                        continue;\r
+               }\r
                \r
                isOK = 1;\r
                break;\r
        }\r
-       crypto1_destroy(pcs);\r
        \r
        LED_B_ON();\r
     cmd_send(CMD_ACK,isOK,0,0,datain + i * 6,6);\r
+\r
        FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);\r
        LEDsoff();\r
        set_tracing(FALSE);\r
+       crypto1_destroy(pcs);\r
        \r
        // restore debug level\r
        MF_DBGLEVEL = OLD_MF_DBGLEVEL;  \r
@@ -1320,10 +1322,9 @@ void MifareCGetBlock(uint32_t arg0, uint32_t arg1, uint8_t *datain){
                memcpy(data, receivedAnswer, sizeof(data));\r
                \r
                // send HALT\r
-               if (workFlags & MAGIC_HALT) {\r
+               if (workFlags & MAGIC_HALT)\r
                        mifare_classic_halt_ex(NULL);\r
-                       break;\r
-               }\r
+\r
                isOK = true;\r
                break;\r
        }\r
Impressum, Datenschutz