From: iceman1001 Date: Tue, 16 Feb 2016 20:41:10 +0000 (+0100) Subject: CHG: testing a prng_successor_one method X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/commitdiff_plain/ee97a92adbf2009117c6c76e82bbdb57746355ae?hp=--cc CHG: testing a prng_successor_one method --- ee97a92adbf2009117c6c76e82bbdb57746355ae diff --git a/armsrc/crapto1.h b/armsrc/crapto1.h index 9262b956..7ea6fa28 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); diff --git a/armsrc/crypto1.c b/armsrc/crypto1.c index 98d38b2b..993c05e7 100644 --- a/armsrc/crypto1.c +++ b/armsrc/crypto1.c @@ -141,3 +141,12 @@ 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); +} \ No newline at end of file