X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/a61b4976bd2085bf0495855b48fcad0d9ed4572e..d3a22c7dfa87bf5e21d228849a602194be4a0895:/client/loclass/ikeys.c diff --git a/client/loclass/ikeys.c b/client/loclass/ikeys.c index a55227ef..fccd71d8 100644 --- a/client/loclass/ikeys.c +++ b/client/loclass/ikeys.c @@ -18,6 +18,10 @@ * Flavio D. Garcia, Gerhard de Koning Gans, Roel Verdult and * Milosch Meriac in the paper "Dismantling IClass". * + * This is a reference implementation of iclass key diversification. I'm sure it can be + * optimized heavily. It is written for ease of understanding and correctness, please take it + * and tweak it and make a super fast version instead, using this for testing and verification. + * Copyright (C) 2014 Martin Holst Swende * * This is free software: you can redistribute it and/or modify @@ -30,12 +34,8 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with loclass. If not, see . - * - * - * + * along with IClassCipher. If not, see . ****************************************************************************/ - /** @@ -403,7 +403,7 @@ void diversifyKey(uint8_t csn[8], uint8_t key[8], uint8_t div_key[8]) //Calculate HASH0(DES)) uint64_t crypt_csn = x_bytes_to_num(crypted_csn, 8); - uint64_t crypted_csn_swapped = swapZvalues(crypt_csn); + //uint64_t crypted_csn_swapped = swapZvalues(crypt_csn); hash0(crypt_csn,div_key); } @@ -742,7 +742,11 @@ int readKeyFile(uint8_t key[8]) f = fopen("iclass_key.bin", "rb"); if (f) { - if(fread(key, sizeof(key), 1, f) == 1) return 0; + if(fread(key, sizeof(uint8_t), 8, f) == 1) + { + retval = 0; + } + fclose(f); } return retval; }