X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/3e134b4c20a5528b8264cd87d3fdebd0b2df6fd9..07b9e989701955834468e3ce8ce200ee3c2a1013:/armsrc/legicrf.c diff --git a/armsrc/legicrf.c b/armsrc/legicrf.c index a725c0bc..c48aa0bc 100644 --- a/armsrc/legicrf.c +++ b/armsrc/legicrf.c @@ -669,11 +669,8 @@ void LegicRfRawWriter(int offset, int byte) { LED_B_OFF(); LED_C_OFF(); return; - - WDT_HIT(); - byte_index++; - if(byte_index & 0x10) LED_C_ON(); else LED_C_OFF(); } + LED_B_OFF(); LED_C_OFF(); DbpString("write successful"); @@ -1531,7 +1528,7 @@ static void TransmitForLegic(void) // Code a layer 2 command (string of octets, including CRC) into ToSend[], // so that it is ready to transmit to the tag using TransmitForLegic(). //----------------------------------------------------------------------------- -static void CodeLegicBitsAsReader(const uint8_t *cmd, int bits) +static void CodeLegicBitsAsReader(const uint8_t *cmd, uint8_t cmdlen, int bits) { int i, j; uint8_t b; @@ -1539,17 +1536,17 @@ static void CodeLegicBitsAsReader(const uint8_t *cmd, int bits) ToSendReset(); // Send SOF - for(i = 0; i < 7; i++) { + for(i = 0; i < 7; i++) ToSendStuffBit(1); - } - for(i = 0; i < bits; i++) { + + for(i = 0; i < cmdlen; i++) { // Start bit ToSendStuffBit(0); // Data bits b = cmd[i]; - for(j = 0; j < 8; j++) { + for(j = 0; j < bits; j++) { if(b & 1) { ToSendStuffBit(1); } else { @@ -1566,26 +1563,26 @@ static void CodeLegicBitsAsReader(const uint8_t *cmd, int bits) /** Convenience function to encode, transmit and trace Legic comms **/ -static void CodeAndTransmitLegicAsReader(const uint8_t *cmd, int bits) +static void CodeAndTransmitLegicAsReader(const uint8_t *cmd, uint8_t cmdlen, int bits) { - CodeLegicBitsAsReader(cmd, bits); + CodeLegicBitsAsReader(cmd, cmdlen, bits); TransmitForLegic(); if (tracing) { uint8_t parity[1] = {0x00}; - LogTrace(cmd, bits, 0, 0, parity, TRUE); + LogTrace(cmd, cmdlen, 0, 0, parity, TRUE); } } int ice_legic_select_card() { //int cmd_size=0, card_size=0; - uint8_t wakeup[] = { 0x7F}; + uint8_t wakeup[] = { 0x7F }; uint8_t getid[] = {0x19}; legic_prng_init(SESSION_IV); // first, wake up the tag, 7bits - CodeAndTransmitLegicAsReader(wakeup, 7); + CodeAndTransmitLegicAsReader(wakeup, sizeof(wakeup), 7); GetSamplesForLegicDemod(1000, TRUE); @@ -1596,7 +1593,7 @@ int ice_legic_select_card() //while(timer->TC_CV < 387) ; /* ~ 258us */ //frame_send_rwd(0x19, 6); - CodeAndTransmitLegicAsReader(getid, sizeof(getid)); + CodeAndTransmitLegicAsReader(getid, sizeof(getid), 8); GetSamplesForLegicDemod(1000, TRUE); //if (Demod.len < 14) return 2;