]> cvs.zerfleddert.de Git - proxmark3-svn/blobdiff - armsrc/mifarecmd.c
ADD: midnitesnakes desfire, ultralight changes from Unstable branch.
[proxmark3-svn] / armsrc / mifarecmd.c
index ee2132ef34cbbaf5bb02b5901673830409866373..fc480a38dc3289acbd892327d4b73a7405431b1e 100644 (file)
@@ -1127,9 +1127,7 @@ void MifareCIdent(){
        \r
        uint8_t* receivedAnswer = get_bigbufptr_recvrespbuf();\r
        uint8_t *receivedAnswerPar = receivedAnswer + MAX_FRAME_SIZE;\r
-       \r
-       iso14443a_setup(FPGA_HF_ISO14443A_READER_LISTEN);\r
-       \r
+\r
        ReaderTransmitBitsPar(wupC1,7,0, NULL);\r
        if(!ReaderReceive(receivedAnswer, receivedAnswerPar) || (receivedAnswer[0] != 0x0a)) {\r
                isOK = 0;\r
@@ -1145,6 +1143,80 @@ void MifareCIdent(){
        };\r
 \r
        cmd_send(CMD_ACK,isOK,0,0,0,0);\r
-       FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);\r
 }\r
 \r
+                       //\r
+// DESFIRE\r
+//\r
+\r
+void Mifare_DES_Auth1(uint8_t arg0, uint8_t *datain){\r
+       // variables\r
+       byte_t isOK = 0;\r
+       byte_t dataoutbuf[16];\r
+       uint8_t uid[10];\r
+       uint32_t cuid;\r
+    \r
+       // clear trace\r
+       iso14a_clear_trace();\r
+       iso14443a_setup(FPGA_HF_ISO14443A_READER_LISTEN);\r
+    \r
+       LED_A_ON();\r
+       LED_B_OFF();\r
+       LED_C_OFF();\r
+       \r
+\r
+       if(!iso14443a_select_card(uid, NULL, &cuid)) {\r
+          if (MF_DBGLEVEL >= 1)        Dbprintf("Can't select card, something went wrong before auth");\r
+       };\r
+\r
+       if(mifare_desfire_des_auth1(cuid, dataoutbuf)){\r
+         if (MF_DBGLEVEL >= 1) Dbprintf("Authentication part1: Fail.");    \r
+       }\r
+\r
+       isOK=1;\r
+       if (MF_DBGLEVEL >= 2)   DbpString("AUTH 1 FINISHED");\r
+    \r
+       LED_B_ON();\r
+        cmd_send(CMD_ACK,isOK,cuid,0,dataoutbuf,11);\r
+       LED_B_OFF();\r
+         \r
+       // Thats it...\r
+       //FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);\r
+       LEDsoff();\r
+}\r
+\r
+void Mifare_DES_Auth2(uint32_t arg0, uint8_t *datain){\r
+       // params\r
+       uint32_t cuid = arg0;\r
+       uint8_t key[16]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};\r
+       // variables\r
+       byte_t isOK = 0;\r
+       byte_t dataoutbuf[16];\r
+    \r
+       memcpy(key, datain, 16);\r
+       // clear trace\r
+       //iso14a_clear_trace();\r
+       //iso14443a_setup(FPGA_HF_ISO14443A_READER_LISTEN);\r
+    \r
+       LED_A_ON();\r
+       LED_B_OFF();\r
+       LED_C_OFF();\r
+\r
+//     Dbprintf("Sending %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",\r
+//              key[0],key[1],key[2],key[3],key[4],key[5],key[6],key[7],key[8],\r
+//              key[9],key[10],key[11],key[12],key[13],key[14],key[15]);\r
+       \r
+       if(mifare_desfire_des_auth2(cuid, key, dataoutbuf)){\r
+           if (MF_DBGLEVEL >= 1) Dbprintf("Authentication part2: Fail...");    \r
+       }\r
+       isOK=1;\r
+       if (MF_DBGLEVEL >= 2)   DbpString("AUTH 2 FINISHED");\r
+    \r
+       LED_B_ON();\r
+        cmd_send(CMD_ACK,isOK,0,0,dataoutbuf,12);\r
+       LED_B_OFF();\r
+    \r
+    // Thats it...\r
+       FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);\r
+       LEDsoff();\r
+}
\ No newline at end of file
Impressum, Datenschutz