X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/a1afa550ea5b602b6d8bc69bdc6f018696b21ff0..a81b99b9b1fbd8eae9f819a2d997a2cef0e2efea:/tools/mfkey/crypto1.c

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);