]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - client/cmdhf.c
Refactor parity functions
[proxmark3-svn] / client / cmdhf.c
index cb71b93b4f568367bfce75eba6fa8fd21fe8e6b0..dcfb1bdd38d98af1b1b8504c386feb5883ea8f12 100644 (file)
@@ -16,6 +16,7 @@
 #include "data.h"
 #include "ui.h"
 #include "iso14443crc.h"
+#include "parity.h"
 #include "cmdmain.h"
 #include "cmdparser.h"
 #include "cmdhf.h"
@@ -481,14 +482,8 @@ uint16_t printTraceLine(uint16_t tracepos, uint16_t traceLen, uint8_t *trace, ui
 
        for (int j = 0; j < data_len && j/16 < 16; j++) {
 
-               int oddparity = 0x01;
-               int k;
-
-               for (k=0 ; k<8 ; k++) {
-                       oddparity ^= (((frame[j] & 0xFF) >> k) & 0x01);
-               }
                uint8_t parityBits = parityBytes[j>>3];
-               if (protocol != ISO_14443B && (isResponse || protocol == ISO_14443A) && (oddparity != ((parityBits >> (7-(j&0x0007))) & 0x01))) {
+               if (protocol != ISO_14443B && (isResponse || protocol == ISO_14443A) && (oddparity8(frame[j]) != ((parityBits >> (7-(j&0x0007))) & 0x01))) {
                        snprintf(line[j/16]+(( j % 16) * 4),110, "%02x! ", frame[j]);
                } else {
                        snprintf(line[j/16]+(( j % 16) * 4), 110, " %02x ", frame[j]);
Impressum, Datenschutz