]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - client/nonce2key/crapto1.h
CHG: started the process of fixing "hf legic write" and "hf legic sim" commands.
[proxmark3-svn] / client / nonce2key / crapto1.h
index c5e2ea0aa6c77fdac95f89fe2a4e089cbe90d500..1cbebe5d5cce4c8a50e055039bdf6c5db02a1fab 100644 (file)
 */
 #ifndef CRAPTO1_H__
 #define CRAPTO1_H__
+
 #include <stdint.h>
+#include "bucketsort.h"
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -37,7 +40,10 @@ struct Crypto1State* lfsr_recovery32(uint32_t ks2, uint32_t in);
 struct Crypto1State* lfsr_recovery64(uint32_t ks2, uint32_t ks3);
 uint32_t *lfsr_prefix_ks(uint8_t ks[8], int isodd);
 struct Crypto1State* lfsr_common_prefix(uint32_t pfx, uint32_t rr, uint8_t ks[8], uint8_t par[8][8]);
-struct Crypto1State* lfsr_common_prefix_ex(uint32_t pfx, uint8_t ks[8], uint8_t par[8][8]);
+
+// douvan's no-parity function
+struct Crypto1State* lfsr_common_prefix_ex(uint32_t pfx, uint8_t ks[8]);
+
 
 uint8_t lfsr_rollback_bit(struct Crypto1State* s, uint32_t in, int fb);
 uint8_t lfsr_rollback_byte(struct Crypto1State* s, uint32_t in, int fb);
@@ -69,7 +75,7 @@ static inline int parity(uint32_t x)
        x ^= x >> 4;
        return BIT(0x6996, x & 0xf);
 #else
-       __asm__(        "movl %1, %%eax\n"
+        __asm__(    "movl %1, %%eax\n"
                        "mov %%ax, %%cx\n"
                        "shrl $0x10, %%eax\n"
                        "xor %%ax, %%cx\n"
@@ -82,7 +88,6 @@ static inline int parity(uint32_t x)
 static inline int filter(uint32_t const x)
 {
        uint32_t f;
-
        f  = 0xf22c0 >> (x       & 0xf) & 16;
        f |= 0x6c9c0 >> (x >>  4 & 0xf) &  8;
        f |= 0x3c8b0 >> (x >>  8 & 0xf) &  4;
Impressum, Datenschutz