]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - armsrc/crypto1.c
FIX: this fixes the mftry32, mftry32moebius and trymf64 implementations. Which...
[proxmark3-svn] / armsrc / crypto1.c
index a212ecc4cc79ce45de6da4337b4ecf6ec04f9f32..68cb9b4e54064b22d849fa70ae2de748454d8761 100644 (file)
 #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);
+}
+
Impressum, Datenschutz