X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/8130eba4d127d1093f55334998f25230f0731a92..ef085a59489765780ce877dd0fba243fd8e9aab3:/armsrc/crapto1.h diff --git a/armsrc/crapto1.h b/armsrc/crapto1.h index 9262b956..4d5fec0f 100644 --- a/armsrc/crapto1.h +++ b/armsrc/crapto1.h @@ -32,6 +32,7 @@ uint8_t crypto1_bit(struct Crypto1State*, uint8_t, int); uint8_t crypto1_byte(struct Crypto1State*, uint8_t, int); uint32_t crypto1_word(struct Crypto1State*, uint32_t, int); uint32_t prng_successor(uint32_t x, uint32_t n); +uint32_t prng_successor_one(uint32_t x); struct Crypto1State* lfsr_recovery32(uint32_t ks2, uint32_t in); struct Crypto1State* lfsr_recovery64(uint32_t ks2, uint32_t ks3); @@ -69,9 +70,9 @@ static inline int parity(uint32_t x) return BIT(0x6996, x & 0xf); #else __asm__( "movl %1, %%eax\n" - "mov %%ax, %%cx\n" - "shrl $0x10, %%eax\n" - "xor %%ax, %%cx\n" + "mov %%ax, %%cx\n" + "shrl $0x10, %%eax\n" + "xor %%ax, %%cx\n" "xor %%ch, %%cl\n" "setpo %%al\n" "movzx %%al, %0\n": "=r"(x) : "r"(x): "eax","ecx"); @@ -87,7 +88,7 @@ static inline int filter(uint32_t const x) f |= 0x3c8b0 >> (x >> 8 & 0xf) & 4; f |= 0x1e458 >> (x >> 12 & 0xf) & 2; f |= 0x0d938 >> (x >> 16 & 0xf) & 1; - return BIT(0xEC57E80A, f); + return BIT(0xEC57E80A, 0xf); } #ifdef __cplusplus }