X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/bf22fab73b6a969d761c8f0f259e5fc67a806f83..9bfd93ec1501d9fd7ff09684fe881511d7d60fc9:/armsrc/crypto1.c

diff --git a/armsrc/crypto1.c b/armsrc/crypto1.c
index a212ecc4..68cb9b4e 100644
--- a/armsrc/crypto1.c
+++ b/armsrc/crypto1.c
@@ -20,18 +20,15 @@
 #include "crapto1.h"
 #include <stdlib.h>
 
-
 void crypto1_create(struct Crypto1State *s, uint64_t key)
 {
 //	struct Crypto1State *s = malloc(sizeof(*s));
-	s->odd = s->even = 0;
 	int i;
 
 	for(i = 47;s && i > 0; i -= 2) {
 		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)
 {
@@ -144,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);
+}
+