From: marshmellow42 Date: Tue, 28 Jul 2015 19:20:19 +0000 (-0400) Subject: iclass Write doMAC_N - rename variables to correct descriptions. X-Git-Tag: v2.3.0~22^2~4 X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/commitdiff_plain/e1c6e9e8f1d6e0266f79b5ec40a0bd93cd96b14a?ds=sidebyside iclass Write doMAC_N - rename variables to correct descriptions. --- diff --git a/client/loclass/cipher.c b/client/loclass/cipher.c index 2aae093d..a701da31 100644 --- a/client/loclass/cipher.c +++ b/client/loclass/cipher.c @@ -224,42 +224,42 @@ void MAC(uint8_t* k, BitstreamIn input, BitstreamOut out) void doMAC(uint8_t *cc_nr_p, uint8_t *div_key_p, uint8_t mac[4]) { uint8_t cc_nr[13] = { 0 }; - uint8_t div_key[8]; + uint8_t div_key[8]; //cc_nr=(uint8_t*)malloc(length+1); - memcpy(cc_nr,cc_nr_p,12); - memcpy(div_key,div_key_p,8); + memcpy(cc_nr, cc_nr_p, 12); + memcpy(div_key, div_key_p, 8); reverse_arraybytes(cc_nr,12); - BitstreamIn bitstream = {cc_nr,12 * 8,0}; - uint8_t dest []= {0,0,0,0,0,0,0,0}; - BitstreamOut out = { dest, sizeof(dest)*8, 0 }; - MAC(div_key,bitstream, out); - //The output MAC must also be reversed - reverse_arraybytes(dest, sizeof(dest)); - memcpy(mac, dest, 4); + BitstreamIn bitstream = {cc_nr, 12 * 8, 0}; + uint8_t dest []= {0,0,0,0,0,0,0,0}; + BitstreamOut out = { dest, sizeof(dest)*8, 0 }; + MAC(div_key,bitstream, out); + //The output MAC must also be reversed + reverse_arraybytes(dest, sizeof(dest)); + memcpy(mac, dest, 4); //free(cc_nr); - return; + return; } -void doMAC_N(uint8_t *cc_nr_p,uint8_t cc_nr_size, uint8_t *div_key_p, uint8_t mac[4]) +void doMAC_N(uint8_t *address_data_p, uint8_t address_data_size, uint8_t *div_key_p, uint8_t mac[4]) { - uint8_t *cc_nr; - uint8_t div_key[8]; - cc_nr = (uint8_t*) malloc(cc_nr_size); - - memcpy(cc_nr,cc_nr_p,cc_nr_size); - memcpy(div_key,div_key_p,8); - - reverse_arraybytes(cc_nr,cc_nr_size); - BitstreamIn bitstream = {cc_nr,cc_nr_size * 8,0}; - uint8_t dest []= {0,0,0,0,0,0,0,0}; - BitstreamOut out = { dest, sizeof(dest)*8, 0 }; - MAC(div_key,bitstream, out); - //The output MAC must also be reversed - reverse_arraybytes(dest, sizeof(dest)); - memcpy(mac, dest, 4); - free(cc_nr); - return; + uint8_t *address_data; + uint8_t div_key[8]; + address_data = (uint8_t*) malloc(address_data_size); + + memcpy(address_data, address_data_p, address_data_size); + memcpy(div_key, div_key_p, 8); + + reverse_arraybytes(address_data, address_data_size); + BitstreamIn bitstream = {address_data, address_data_size * 8, 0}; + uint8_t dest []= {0,0,0,0,0,0,0,0}; + BitstreamOut out = { dest, sizeof(dest)*8, 0 }; + MAC(div_key, bitstream, out); + //The output MAC must also be reversed + reverse_arraybytes(dest, sizeof(dest)); + memcpy(mac, dest, 4); + free(address_data); + return; } #ifndef ON_DEVICE diff --git a/client/loclass/cipher.h b/client/loclass/cipher.h index 24e86851..7afdb524 100644 --- a/client/loclass/cipher.h +++ b/client/loclass/cipher.h @@ -42,7 +42,7 @@ #include void doMAC(uint8_t *cc_nr_p, uint8_t *div_key_p, uint8_t mac[4]); -void doMAC_N(uint8_t *cc_nr_p,uint8_t cc_nr_size, uint8_t *div_key_p, uint8_t mac[4]); +void doMAC_N(uint8_t *address_data_p,uint8_t address_data_size, uint8_t *div_key_p, uint8_t mac[4]); #ifndef ON_DEVICE int testMAC();