X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/417f4ae12711f28d8b27dcd29786a1cc9300aaad..cb832982c9402c6773d2fbef5b4d1679d8286163:/armsrc/crypto1.c diff --git a/armsrc/crypto1.c b/armsrc/crypto1.c index b218af19..68cb9b4e 100644 --- a/armsrc/crypto1.c +++ b/armsrc/crypto1.c @@ -20,7 +20,6 @@ #include "crapto1.h" #include - void crypto1_create(struct Crypto1State *s, uint64_t key) { // struct Crypto1State *s = malloc(sizeof(*s)); @@ -30,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) { @@ -143,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); +} +