]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - tools/mfkey/crypto1.c
Update README.md
[proxmark3-svn] / tools / mfkey / crypto1.c
index f45546055cb46d54dac201043ab4c6182110780c..f49a07225a1753d21bfebcb3b0b1ad65229cfd66 100755 (executable)
 struct Crypto1State * crypto1_create(uint64_t key)
 {
        struct Crypto1State *s = malloc(sizeof(*s));
 struct Crypto1State * crypto1_create(uint64_t key)
 {
        struct Crypto1State *s = malloc(sizeof(*s));
-       int i;
+       if ( !s ) return NULL;
 
 
-       for(i = 47;s && i > 0; i -= 2) {
+       s->odd = s->even = 0;   
+       
+       int i;
+       //for(i = 47;s && i > 0; i -= 2) {
+       for(i = 47; i > 0; i -= 2) {
                s->odd  = s->odd  << 1 | BIT(key, (i - 1) ^ 7);
                s->even = s->even << 1 | BIT(key, i ^ 7);
        }
                s->odd  = s->odd  << 1 | BIT(key, (i - 1) ^ 7);
                s->even = s->even << 1 | BIT(key, i ^ 7);
        }
@@ -69,7 +73,7 @@ uint8_t crypto1_byte(struct Crypto1State *s, uint8_t in, int is_encrypted)
        for (i = 0; i < 8; ++i)
                ret |= crypto1_bit(s, BIT(in, i), is_encrypted) << i;
        */
        for (i = 0; i < 8; ++i)
                ret |= crypto1_bit(s, BIT(in, i), is_encrypted) << i;
        */
-       // unfold loop
+// unfold loop 20161012
        uint8_t ret = 0;
        ret |= crypto1_bit(s, BIT(in, 0), is_encrypted) << 0;
        ret |= crypto1_bit(s, BIT(in, 1), is_encrypted) << 1;
        uint8_t ret = 0;
        ret |= crypto1_bit(s, BIT(in, 0), is_encrypted) << 0;
        ret |= crypto1_bit(s, BIT(in, 1), is_encrypted) << 1;
@@ -89,6 +93,7 @@ uint32_t crypto1_word(struct Crypto1State *s, uint32_t in, int is_encrypted)
        for (i = 0; i < 32; ++i)
                ret |= crypto1_bit(s, BEBIT(in, i), is_encrypted) << (i ^ 24);
 */
        for (i = 0; i < 32; ++i)
                ret |= crypto1_bit(s, BEBIT(in, i), is_encrypted) << (i ^ 24);
 */
+//unfold loop 2016012
        uint32_t ret = 0;
        ret |= crypto1_bit(s, BEBIT(in, 0), is_encrypted) << (0 ^ 24);
        ret |= crypto1_bit(s, BEBIT(in, 1), is_encrypted) << (1 ^ 24);
        uint32_t ret = 0;
        ret |= crypto1_bit(s, BEBIT(in, 0), is_encrypted) << (0 ^ 24);
        ret |= crypto1_bit(s, BEBIT(in, 1), is_encrypted) << (1 ^ 24);
Impressum, Datenschutz