]> git.zerfleddert.de Git - proxmark3-svn/commitdiff
fixing iso14443b (issue #103):
authorpwpiwi <pwpiwi@users.noreply.github.com>
Thu, 18 Jun 2015 05:56:08 +0000 (07:56 +0200)
committerpwpiwi <pwpiwi@users.noreply.github.com>
Thu, 18 Jun 2015 05:56:08 +0000 (07:56 +0200)
fix: don't waste time to calculate parity bits. Instead add void parity bits to trace and ignore them on client side

armsrc/iso14443b.c
client/cmdhf.c

index f598df3c254f3a53d26f878458af61480aa8f59d..989b477ca6b03788a5f916baeaceee97f08cf9bf 100644 (file)
@@ -17,7 +17,6 @@
 #include "iso14443crc.h"
 
 #define RECEIVE_SAMPLES_TIMEOUT 2000
-#define ISO14443B_DMA_BUFFER_SIZE 512
 
 //=============================================================================
 // An ISO 14443 Type B tag. We listen for commands from the reader, using
@@ -768,7 +767,7 @@ static void GetSamplesFor14443bDemod(int n, bool quiet)
        //Tracing
        if (tracing && Demod.len > 0) {
                uint8_t parity[MAX_PARITY_SIZE];
-               GetParity(Demod.output, Demod.len, parity);
+               //GetParity(Demod.output, Demod.len, parity);
                LogTrace(Demod.output, Demod.len, 0, 0, parity, FALSE);
        }
 }
@@ -1156,7 +1155,7 @@ void RAMFUNC SnoopIso14443b(void)
                if (!TagIsActive) {                                                     // no need to try decoding reader data if the tag is sending
                        if(Handle14443bUartBit(ci & 0x01)) {
                                if(triggered && tracing) {
-                                       GetParity(Uart.output, Uart.byteCnt, parity);
+                                       //GetParity(Uart.output, Uart.byteCnt, parity);
                                        LogTrace(Uart.output, Uart.byteCnt, samples, samples, parity, TRUE);
                                }
                                /* And ready to receive another command. */
@@ -1167,7 +1166,7 @@ void RAMFUNC SnoopIso14443b(void)
                        }
                        if(Handle14443bUartBit(cq & 0x01)) {
                                if(triggered && tracing) {
-                                       GetParity(Uart.output, Uart.byteCnt, parity);
+                                       //GetParity(Uart.output, Uart.byteCnt, parity);
                                        LogTrace(Uart.output, Uart.byteCnt, samples, samples, parity, TRUE);
                                }
                                /* And ready to receive another command. */
@@ -1186,7 +1185,7 @@ void RAMFUNC SnoopIso14443b(void)
                                if(tracing)
                                {
                                        uint8_t parity[MAX_PARITY_SIZE];
-                                       GetParity(Demod.output, Demod.len, parity);
+                                       //GetParity(Demod.output, Demod.len, parity);
                                        LogTrace(Demod.output, Demod.len, samples, samples, parity, FALSE);
                                }
                                triggered = TRUE;
@@ -1194,7 +1193,7 @@ void RAMFUNC SnoopIso14443b(void)
                                // And ready to receive another response.
                                DemodReset();
                        }
-                       TagIsActive = (Demod.state > DEMOD_PHASE_REF_TRAINING);
+                       TagIsActive = (Demod.state > DEMOD_GOT_FALLING_EDGE_OF_SOF);
                }
 
        }
index 16f7bb0f39f661c180723bd0c52bd1306407f8bd..fc6127c2d2dadef666eea5bb3fa0f007bacb73a0 100644 (file)
@@ -378,7 +378,7 @@ uint16_t printTraceLine(uint16_t tracepos, uint16_t traceLen, uint8_t *trace, ui
                        oddparity ^= (((frame[j] & 0xFF) >> k) & 0x01);
                }
                uint8_t parityBits = parityBytes[j>>3];
-               if (isResponse && (oddparity != ((parityBits >> (7-(j&0x0007))) & 0x01))) {
+               if (protocol != ISO_14443B && isResponse && (oddparity != ((parityBits >> (7-(j&0x0007))) & 0x01))) {
                        snprintf(line[j/16]+(( j % 16) * 4),110, "%02x! ", frame[j]);
 
                } else {
Impressum, Datenschutz