X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/a1afa550ea5b602b6d8bc69bdc6f018696b21ff0..f0e183ece4b5d0a46857bf8386de5cac9ed76a79:/tools/mfkey/crypto1.c?ds=inline diff --git a/tools/mfkey/crypto1.c b/tools/mfkey/crypto1.c index f4554605..f49a0722 100755 --- a/tools/mfkey/crypto1.c +++ b/tools/mfkey/crypto1.c @@ -23,9 +23,13 @@ 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); } @@ -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; */ - // 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; @@ -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); */ +//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);