]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - armsrc/appmain.c
Legic Tag Simulator (#666)
[proxmark3-svn] / armsrc / appmain.c
index eabe9fbe627c15c97d8065bdb99b4b0c4939369a..f7bcd620348a0b5e90fc0ab1f3f19699d5cd2236 100644 (file)
@@ -21,6 +21,7 @@
 #include "printf.h"
 #include "string.h"
 #include "legicrf.h"
+#include "legicrfsim.h"
 #include "hitag2.h"
 #include "hitagS.h"
 #include "lfsampling.h"
 #ifdef WITH_LCD
  #include "LCD.h"
 #endif
+#ifdef WITH_SMARTCARD
+ #include "i2c.h"
+#endif
+
 
 // Craig Young - 14a stand-alone code
 #ifdef WITH_ISO14443a
@@ -357,17 +362,20 @@ void SendStatus(void)
 {
        BigBuf_print_status();
        Fpga_print_status();
+#ifdef WITH_SMARTCARD
+       I2C_print_status();
+#endif
        printConfig(); //LF Sampling config
        printUSBSpeed();
        Dbprintf("Various");
-       Dbprintf("  MF_DBGLEVEL......%d", MF_DBGLEVEL);
-       Dbprintf("  ToSendMax........%d",ToSendMax);
-       Dbprintf("  ToSendBit........%d",ToSendBit);
+       Dbprintf("  MF_DBGLEVEL........%d", MF_DBGLEVEL);
+       Dbprintf("  ToSendMax..........%d", ToSendMax);
+       Dbprintf("  ToSendBit..........%d", ToSendBit);
 
        cmd_send(CMD_ACK,1,0,0,0,0);
 }
 
-#if defined(WITH_ISO14443a_StandAlone) || defined(WITH_LF)
+#if defined(WITH_ISO14443a_StandAlone) || defined(WITH_LF_StandAlone)
 
 #define OPTS 2
 
@@ -635,7 +643,7 @@ void StandAloneMode14a()
                }
        }
 }
-#elif WITH_LF
+#elif WITH_LF_StandAlone
 // samy's sniff and repeat routine
 void SamyRun()
 {
@@ -1083,7 +1091,7 @@ void UsbPacketReceived(uint8_t *packet, int len)
 
 #ifdef WITH_LEGICRF
                case CMD_SIMULATE_TAG_LEGIC_RF:
-                       LegicRfSimulate(c->arg[0], c->arg[1], c->arg[2]);
+                       LegicRfSimulate(c->arg[0]);
                        break;
 
                case CMD_WRITER_LEGIC_RF:
@@ -1253,6 +1261,31 @@ void UsbPacketReceived(uint8_t *packet, int len)
                        HfSnoop(c->arg[0], c->arg[1]);
                        break;
 #endif
+#ifdef WITH_SMARTCARD
+               case CMD_SMART_ATR: {
+                       SmartCardAtr();
+                       break;
+               }
+               case CMD_SMART_SETCLOCK:{
+                       SmartCardSetClock(c->arg[0]);
+                       break;
+               }
+               case CMD_SMART_RAW: {
+                       SmartCardRaw(c->arg[0], c->arg[1], c->d.asBytes);
+                       break;
+               }
+               case CMD_SMART_UPLOAD: {
+                       // upload file from client
+                       uint8_t *mem = BigBuf_get_addr();
+                       memcpy( mem + c->arg[0], c->d.asBytes, USB_CMD_DATA_SIZE);
+                       cmd_send(CMD_ACK,1,0,0,0,0);
+                       break;
+               }
+               case CMD_SMART_UPGRADE: {
+                       SmartCardUpgrade(c->arg[0]);
+                       break;
+               }
+#endif
 
                case CMD_BUFF_CLEAR:
                        BigBuf_Clear();
@@ -1428,7 +1461,7 @@ void  __attribute__((noreturn)) AppMain(void)
     }
                WDT_HIT();
 
-#ifdef WITH_LF
+#ifdef WITH_LF_StandAlone
 #ifndef WITH_ISO14443a_StandAlone
                if (BUTTON_HELD(1000) > 0)
                        SamyRun();
Impressum, Datenschutz