X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/417f4ae12711f28d8b27dcd29786a1cc9300aaad..ce211cef39604f6075673c90881d12f19e1614ef:/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 <stdlib.h>
 
-
 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);
+}
+