X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/c2d2a5a6b580670724e68a86f46adfa2946a45b9..38e4191705fcf63696116c6663982f5b921ac2c1:/armsrc/crypto1.c diff --git a/armsrc/crypto1.c b/armsrc/crypto1.c index db864113..68cb9b4e 100644 --- a/armsrc/crypto1.c +++ b/armsrc/crypto1.c @@ -20,9 +20,6 @@ #include "crapto1.h" #include -#define SWAPENDIAN(x)\ - (x = (x >> 8 & 0xff00ff) | (x & 0xff00ff) << 8, x = x >> 16 | x << 16) - void crypto1_create(struct Crypto1State *s, uint64_t key) { // struct Crypto1State *s = malloc(sizeof(*s)); @@ -32,7 +29,6 @@ void crypto1_create(struct Crypto1State *s, uint64_t key) s->odd = s->odd << 1 | BIT(key, (i - 1) ^ 7); s->even = s->even << 1 | BIT(key, i ^ 7); } - return; } void crypto1_destroy(struct Crypto1State *state) { @@ -145,3 +141,13 @@ uint32_t prng_successor(uint32_t x, uint32_t n) return SWAPENDIAN(x); } + +uint32_t prng_successor_one(uint32_t x) +{ + SWAPENDIAN(x); + + x = x >> 1 | (x >> 16 ^ x >> 18 ^ x >> 19 ^ x >> 21) << 31; + + return SWAPENDIAN(x); +} +