]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - client/nonce2key/crapto1.h
CHG: syntax suger
[proxmark3-svn] / client / nonce2key / crapto1.h
index 49e8e9e4ea8445c266e63692c4615471196f5a76..7f8345283772df27f9f37312efb6069eb992ac9f 100644 (file)
@@ -37,7 +37,7 @@ 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]);
+lfsr_common_prefix(uint32_t pfx, uint32_t rr, uint8_t ks[8], uint8_t par[8][8], uint8_t no_par);
 
 
 void lfsr_rollback_bit(struct Crypto1State* s, uint32_t in, int fb);
@@ -70,7 +70,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"
@@ -80,6 +80,12 @@ static inline int parity(uint32_t x)
        return x;
 #endif
 }
+
+#if !defined LOWMEM && defined __GNUC__
+extern uint8_t filterlut[1 << 20];
+#define filter(x) (filterlut[(x) & 0xfffff])
+#define filter_unsafe(x) (filterlut[x])
+#else
 static inline int filter(uint32_t const x)
 {
        uint32_t f;
@@ -91,6 +97,9 @@ static inline int filter(uint32_t const x)
        f |= 0x0d938 >> (x >> 16 & 0xf) &  1;
        return BIT(0xEC57E80A, f);
 }
+#define filter_unsafe(x) (filter(x))
+#endif
+
 #ifdef __cplusplus
 }
 #endif
Impressum, Datenschutz