]> cvs.zerfleddert.de Git - proxmark3-svn/blobdiff - armsrc/crypto1.c
CHG: syntax suger.
[proxmark3-svn] / armsrc / crypto1.c
index db864113dbdf5758652c36d4cea1c28190f8b78e..68cb9b4e54064b22d849fa70ae2de748454d8761 100644 (file)
@@ -20,9 +20,6 @@
 #include "crapto1.h"
 #include <stdlib.h>
 
-#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);
+}
+
Impressum, Datenschutz