CHG: testing a prng_successor_one method

This commit is contained in:
iceman1001 2016-02-16 21:41:10 +01:00
parent a1689f417f
commit ee97a92adb
2 changed files with 10 additions and 0 deletions

View file

@ -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);

View file

@ -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);
}