From 732bc766f9a9a0ec1033b16111fbf263c1a50a21 Mon Sep 17 00:00:00 2001 From: Philippe Teuwen Date: Fri, 7 Jun 2019 18:41:39 +0200 Subject: [PATCH] Reduce some var scopes --- armsrc/Standalone/hf_mattyrun.c | 4 +- armsrc/Standalone/hf_young.c | 3 +- armsrc/appmain.c | 3 +- armsrc/des.c | 4 +- armsrc/desfire_crypto.c | 3 +- armsrc/epa.c | 9 ++-- armsrc/hitag2.c | 6 +-- armsrc/hitagS.c | 93 +++++++++++++++------------------ armsrc/iso14443a.c | 45 ++++++---------- armsrc/iso14443b.c | 38 ++++++-------- armsrc/iso15693.c | 6 +-- armsrc/lfops.c | 22 ++++---- armsrc/mifarecmd.c | 19 ++++--- armsrc/mifaredesfire.c | 8 +-- armsrc/mifaresniff.c | 4 +- armsrc/optimized_cipher.c | 12 ++--- armsrc/printf.c | 6 +-- armsrc/string.c | 6 +-- bootrom/bootrom.c | 3 +- client/cmdcrc.c | 22 ++++---- client/cmddata.c | 13 +++-- client/cmdhf14a.c | 7 ++- client/cmdhf14b.c | 2 +- client/cmdhf15.c | 7 ++- client/cmdhficlass.c | 38 ++++++-------- client/cmdhfmf.c | 75 ++++++++++++-------------- client/cmdhfmfhard.c | 25 ++++----- client/cmdhfmfu.c | 21 ++++---- client/cmdlfem4x.c | 3 +- client/cmdlfindala.c | 25 +++++---- client/cmdlfnedap.c | 13 +++-- client/cmdlfpresco.c | 3 +- client/cmdlfpyramid.c | 19 ++++--- client/cmdlft55xx.c | 3 +- client/comms.c | 6 +-- client/emv/apduinfo.c | 3 +- client/fido/cose.c | 2 +- client/fpga_compress.c | 14 ++--- client/loclass/ikeys.c | 23 ++++---- client/mifare/mfkey.c | 4 +- client/mifare/mifarehost.c | 14 ++--- client/pm3_binlib.c | 3 +- client/scripting.c | 4 +- client/ui.c | 6 +-- common/bucketsort.c | 3 +- common/crapto1/crapto1.c | 28 +++++----- common/crc16.c | 18 +++---- common/lfdemod.c | 6 +-- common/usart.c | 4 +- common/usb_cdc.c | 3 +- tools/nonce2key/crapto1.c | 4 +- tools/nonce2key/nonce2key.c | 12 ++--- 52 files changed, 318 insertions(+), 409 deletions(-) diff --git a/armsrc/Standalone/hf_mattyrun.c b/armsrc/Standalone/hf_mattyrun.c index e7be77bd7..541bedf2e 100644 --- a/armsrc/Standalone/hf_mattyrun.c +++ b/armsrc/Standalone/hf_mattyrun.c @@ -223,7 +223,6 @@ void RunMod() { */ bool printKeys = false; // Prints keys bool transferToEml = true; // Transfer keys to emulator memory - bool ecfill = true; // Fill emulator memory with cards content. bool simulation = true; // Simulates an exact copy of the target tag bool fillFromEmulator = false; // Dump emulator memory. @@ -236,7 +235,6 @@ void RunMod() { uint64_t key64; // Defines current key uint8_t *keyBlock; // Where the keys will be held in memory. uint8_t stKeyBlock = 20; // Set the quantity of keys in the block. - int filled; // Used to check if the memory was filled with success. bool keyFound = false; /* @@ -368,7 +366,7 @@ void RunMod() { } Dbprintf("\t✓ Found keys have been transferred to the emulator memory."); if (ecfill) { - + int filled; Dbprintf("\tFilling in with key A."); filled = MifareECardLoad(sectorsCnt, 0); if (filled != PM3_SUCCESS) { diff --git a/armsrc/Standalone/hf_young.c b/armsrc/Standalone/hf_young.c index 59d1750b9..6b56935bd 100644 --- a/armsrc/Standalone/hf_young.c +++ b/armsrc/Standalone/hf_young.c @@ -160,13 +160,14 @@ void RunMod() { Bytes 5-7 are reserved SAK and ATQA for mifare classic -Use mfCSetBlock(0, block0, oldUID, wantWipe, MAGIC_SINGLE) to write it */ - uint8_t oldBlock0[16] = {0}, newBlock0[16] = {0}, testBlock0[16] = {0}; + uint8_t oldBlock0[16] = {0}, newBlock0[16] = {0}; // arg0 = Flags, arg1=blockNo MifareCGetBlock(params, 0, oldBlock0); if (oldBlock0[0] == 0 && oldBlock0[0] == oldBlock0[1] && oldBlock0[1] == oldBlock0[2] && oldBlock0[2] == oldBlock0[3]) { Dbprintf("No changeable tag detected. Returning to replay mode for bank[%d]", selected); playing = 1; } else { + uint8_t testBlock0[16] = {0}; Dbprintf("UID from target tag: %02X%02X%02X%02X", oldBlock0[0], oldBlock0[1], oldBlock0[2], oldBlock0[3]); memcpy(newBlock0 + 5, oldBlock0 + 5, 11); diff --git a/armsrc/appmain.c b/armsrc/appmain.c index 14a14c4dd..ef6ce30d2 100644 --- a/armsrc/appmain.c +++ b/armsrc/appmain.c @@ -1465,7 +1465,6 @@ static void PacketReceived(PacketCommandNG *packet) { case CMD_DOWNLOAD_EML_BIGBUF: { LED_B_ON(); uint8_t *mem = BigBuf_get_EM_addr(); - size_t len = 0; uint32_t startidx = packet->oldarg[0]; uint32_t numofbytes = packet->oldarg[1]; @@ -1474,7 +1473,7 @@ static void PacketReceived(PacketCommandNG *packet) { // arg2 = RFU for (size_t i = 0; i < numofbytes; i += PM3_CMD_DATA_SIZE) { - len = MIN((numofbytes - i), PM3_CMD_DATA_SIZE); + size_t len = MIN((numofbytes - i), PM3_CMD_DATA_SIZE); int result = reply_old(CMD_DOWNLOADED_EML_BIGBUF, i, len, 0, mem + startidx + i, len); if (result != PM3_SUCCESS) Dbprintf("transfer to client failed :: | bytes between %d - %d (%d) | result: %d", i, i + len, len, result); diff --git a/armsrc/des.c b/armsrc/des.c index 6229ac8f6..41b30734c 100644 --- a/armsrc/des.c +++ b/armsrc/des.c @@ -208,9 +208,9 @@ void permute(const uint8_t *ptable, const uint8_t *in, uint8_t *out) { ob = ptable[1]; ptable = &(ptable[2]); for (byte = 0; byte < ob; ++byte) { - uint8_t x, t = 0; + uint8_t t = 0; for (bit = 0; bit < 8; ++bit) { - x = *ptable++ - 1; + uint8_t x = *ptable++ - 1; t <<= 1; if ((in[x / 8]) & (0x80 >> (x % 8))) { t |= 0x01; diff --git a/armsrc/desfire_crypto.c b/armsrc/desfire_crypto.c index e29d46492..496f8ae31 100644 --- a/armsrc/desfire_crypto.c +++ b/armsrc/desfire_crypto.c @@ -288,7 +288,6 @@ void *mifare_cryto_preprocess_data(desfiretag_t tag, void *data, size_t *nbytes, void *mifare_cryto_postprocess_data(desfiretag_t tag, void *data, size_t *nbytes, int communication_settings) { void *res = data; - size_t edl; void *edata = NULL; uint8_t first_cmac_byte = 0x00; @@ -322,7 +321,7 @@ void *mifare_cryto_postprocess_data(desfiretag_t tag, void *data, size_t *nbytes break; } - edl = enciphered_data_length(tag, *nbytes - 1, communication_settings); + size_t edl = enciphered_data_length(tag, *nbytes - 1, communication_settings); edata = malloc(edl); memcpy(edata, data, *nbytes - 1); diff --git a/armsrc/epa.c b/armsrc/epa.c index 7d994d756..fabeec6d2 100644 --- a/armsrc/epa.c +++ b/armsrc/epa.c @@ -496,19 +496,17 @@ void EPA_PACE_Replay(PacketCommandNG *c) { // Returns 0 on success or a non-zero error code on failure //----------------------------------------------------------------------------- int EPA_Setup() { - int return_code = 0; uint8_t uid[10]; - uint8_t pps_response[3]; - uint8_t pps_response_par[1]; iso14a_card_select_t card_a_info; - iso14b_card_select_t card_b_info; // first, look for type A cards // power up the field iso14443a_setup(FPGA_HF_ISO14443A_READER_MOD); // select the card - return_code = iso14443a_select_card(uid, &card_a_info, NULL, true, 0, false); + int return_code = iso14443a_select_card(uid, &card_a_info, NULL, true, 0, false); if (return_code == 1) { + uint8_t pps_response[3]; + uint8_t pps_response_par[1]; // send the PPS request ReaderTransmit((uint8_t *)pps, sizeof(pps), NULL); return_code = ReaderReceive(pps_response, pps_response_par); @@ -523,6 +521,7 @@ int EPA_Setup() { // if we're here, there is no type A card, so we look for type B // power up the field iso14443b_setup(); + iso14b_card_select_t card_b_info; // select the card return_code = iso14443b_select_card(&card_b_info); if (return_code == 0) { diff --git a/armsrc/hitag2.c b/armsrc/hitag2.c index 4f3a1856d..70f6281dc 100644 --- a/armsrc/hitag2.c +++ b/armsrc/hitag2.c @@ -1366,9 +1366,7 @@ void WriterHitag(hitag_function htf, hitag_data *htd, int page) { uint8_t *tx = txbuf; size_t txlen = 0; int lastbit; - bool bSkip; int reset_sof; - int tag_sof; int t_wait = HITAG_T_WAIT_MAX; bool bStop; @@ -1515,8 +1513,8 @@ void WriterHitag(hitag_function htf, hitag_data *htd, int page) { memset(rx, 0x00, sizeof(rx)); rxlen = 0; lastbit = 1; - bSkip = true; - tag_sof = reset_sof; + bool bSkip = true; + int tag_sof = reset_sof; response = 0; uint32_t errorCount = 0; diff --git a/armsrc/hitagS.c b/armsrc/hitagS.c index 83263bbfd..8d00b881d 100644 --- a/armsrc/hitagS.c +++ b/armsrc/hitagS.c @@ -295,8 +295,6 @@ static int check_select(uint8_t *rx, uint32_t uid) { static void hitagS_handle_reader_command(uint8_t *rx, const size_t rxlen, uint8_t *tx, size_t *txlen) { uint8_t rx_air[HITAG_FRAME_LEN]; - uint8_t page; - int i; uint64_t state; unsigned char crc; @@ -330,7 +328,7 @@ static void hitagS_handle_reader_command(uint8_t *rx, const size_t rxlen, } //send uid as a response *txlen = 32; - for (i = 0; i < 4; i++) + for (int i = 0; i < 4; i++) tx[i] = (tag.uid >> (24 - (i * 8))) & 0xff; } break; @@ -357,13 +355,13 @@ static void hitagS_handle_reader_command(uint8_t *rx, const size_t rxlen, } //send configuration - for (i = 0; i < 4; i++) + for (int i = 0; i < 4; i++) tx[i] = (tag.pages[0][1] >> (i * 8)) & 0xff; tx[3] = 0xff; if (tag.mode != HT_STANDARD) { *txlen = 40; crc = CRC_PRESET; - for (i = 0; i < 4; i++) + for (int i = 0; i < 4; i++) calc_crc(&crc, tx[i], 8); tx[4] = crc; } @@ -399,7 +397,7 @@ static void hitagS_handle_reader_command(uint8_t *rx, const size_t rxlen, break; } - for (i = 0; i < 4; i++) + for (int i = 0; i < 4; i++) _hitag2_byte(&state); //send con2, pwdh0, pwdl0, pwdl1 encrypted as a response @@ -490,7 +488,7 @@ static void hitagS_handle_reader_command(uint8_t *rx, const size_t rxlen, //write page, write block, read page or read block command received if ((rx[0] & 0xf0) == 0xc0) { //read page //send page data - page = ((rx[0] & 0x0f) * 16) + ((rx[1] & 0xf0) / 16); + uint8_t page = ((rx[0] & 0x0f) * 16) + ((rx[1] & 0xf0) / 16); *txlen = 32; tx[0] = (tag.pages[page / 4][page % 4]) & 0xff; tx[1] = (tag.pages[page / 4][page % 4] >> 8) & 0xff; @@ -520,7 +518,7 @@ static void hitagS_handle_reader_command(uint8_t *rx, const size_t rxlen, //add crc8 *txlen = 40; crc = CRC_PRESET; - for (i = 0; i < 4; i++) + for (int i = 0; i < 4; i++) calc_crc(&crc, tx[i], 8); tx[4] = crc; } @@ -531,10 +529,10 @@ static void hitagS_handle_reader_command(uint8_t *rx, const size_t rxlen, *txlen = 0; } } else if ((rx[0] & 0xf0) == 0xd0) { //read block - page = ((rx[0] & 0x0f) * 16) + ((rx[1] & 0xf0) / 16); + uint8_t page = ((rx[0] & 0x0f) * 16) + ((rx[1] & 0xf0) / 16); *txlen = 32 * 4; //send page,...,page+3 data - for (i = 0; i < 4; i++) { + for (int i = 0; i < 4; i++) { tx[0 + i * 4] = (tag.pages[page / 4][page % 4]) & 0xff; tx[1 + i * 4] = (tag.pages[page / 4][page % 4] >> 8) & 0xff; tx[2 + i * 4] = (tag.pages[page / 4][page % 4] >> 16) & 0xff; @@ -563,7 +561,7 @@ static void hitagS_handle_reader_command(uint8_t *rx, const size_t rxlen, //add crc8 *txlen = 32 * 4 + 8; crc = CRC_PRESET; - for (i = 0; i < 16; i++) + for (int i = 0; i < 16; i++) calc_crc(&crc, tx[i], 8); tx[16] = crc; } @@ -573,7 +571,7 @@ static void hitagS_handle_reader_command(uint8_t *rx, const size_t rxlen, *txlen = 0; } } else if ((rx[0] & 0xf0) == 0x80) { //write page - page = ((rx[0] & 0x0f) * 16) + ((rx[1] & 0xf0) / 16); + uint8_t page = ((rx[0] & 0x0f) * 16) + ((rx[1] & 0xf0) / 16); switch (tag.mode) { case HT_STANDARD: @@ -604,7 +602,7 @@ static void hitagS_handle_reader_command(uint8_t *rx, const size_t rxlen, } } else if ((rx[0] & 0xf0) == 0x90) { //write block - page = ((rx[0] & 0x0f) * 6) + ((rx[1] & 0xf0) / 16); + uint8_t page = ((rx[0] & 0x0f) * 6) + ((rx[1] & 0xf0) / 16); switch (tag.mode) { case HT_STANDARD: sof_bits = 1; @@ -647,10 +645,8 @@ static void hitagS_handle_reader_command(uint8_t *rx, const size_t rxlen, static int hitagS_handle_tag_auth(hitag_function htf, uint64_t key, uint64_t NrAr, uint8_t *rx, const size_t rxlen, uint8_t *tx, size_t *txlen) { uint8_t rx_air[HITAG_FRAME_LEN]; int response_bit[200]; - int i, j, z; unsigned char mask = 1; unsigned char uid[32]; - uint8_t uid1, uid2, uid3, uid4; unsigned char crc; uint64_t state; uint8_t auth_ks[4]; @@ -664,9 +660,9 @@ static int hitagS_handle_tag_auth(hitag_function htf, uint64_t key, uint64_t NrA Dbprintf("authentication failed!"); return -1; } - z = 0; - for (i = 0; i < 10; i++) { - for (j = 0; j < 8; j++) { + int z = 0; + for (int i = 0; i < 10; i++) { + for (int j = 0; j < 8; j++) { response_bit[z] = 0; if ((rx[i] & ((mask << 7) >> j)) != 0) response_bit[z] = 1; @@ -674,13 +670,13 @@ static int hitagS_handle_tag_auth(hitag_function htf, uint64_t key, uint64_t NrA } } uint16_t k = 0; - for (i = 5; i < z; i += 2) { + for (int i = 5; i < z; i += 2) { uid[k] = response_bit[i]; k++; if (k > 31) break; } - uid1 = (uid[0] << 7) + uint8_t uid1 = (uid[0] << 7) | (uid[1] << 6) | (uid[2] << 5) | (uid[3] << 4) @@ -689,7 +685,7 @@ static int hitagS_handle_tag_auth(hitag_function htf, uint64_t key, uint64_t NrA | (uid[6] << 1) | uid[7]; - uid2 = (uid[8] << 7) + uint8_t uid2 = (uid[8] << 7) | (uid[9] << 6) | (uid[10] << 5) | (uid[11] << 4) @@ -698,7 +694,7 @@ static int hitagS_handle_tag_auth(hitag_function htf, uint64_t key, uint64_t NrA | (uid[14] << 1) | uid[15]; - uid3 = (uid[16] << 7) + uint8_t uid3 = (uid[16] << 7) | (uid[17] << 6) | (uid[18] << 5) | (uid[19] << 4) @@ -707,7 +703,7 @@ static int hitagS_handle_tag_auth(hitag_function htf, uint64_t key, uint64_t NrA | (uid[22] << 1) | uid[23]; - uid4 = (uid[24] << 7) + uint8_t uid4 = (uid[24] << 7) | (uid[25] << 6) | (uid[26] << 5) | (uid[27] << 4) @@ -730,19 +726,19 @@ static int hitagS_handle_tag_auth(hitag_function htf, uint64_t key, uint64_t NrA calc_crc(&crc, uid3, 8); calc_crc(&crc, uid4, 8); - for (i = 0; i < 100; i++) { + for (int i = 0; i < 100; i++) { response_bit[i] = 0; } - for (i = 0; i < 5; i++) { + for (int i = 0; i < 5; i++) { response_bit[i] = 0; } - - for (i = 5; i < 37; i++) { + int i = 5; + for (; i < 37; i++) { response_bit[i] = uid[i - 5]; } - for (j = 0; j < 8; j++) { + for (int j = 0; j < 8; j++) { response_bit[i] = 0; if ((crc & ((mask << 7) >> j)) != 0) response_bit[i] = 1; @@ -750,7 +746,7 @@ static int hitagS_handle_tag_auth(hitag_function htf, uint64_t key, uint64_t NrA } k = 0; - for (i = 0; i < 6; i++) { + for (int i = 0; i < 6; i++) { tx[i] = (response_bit[k] << 7) | (response_bit[k + 1] << 6) | (response_bit[k + 2] << 5) @@ -766,9 +762,9 @@ static int hitagS_handle_tag_auth(hitag_function htf, uint64_t key, uint64_t NrA tag.pstate = HT_INIT; } else if (tag.pstate == HT_INIT && rxlen == 44) { // received configuration after select command - z = 0; - for (i = 0; i < 6; i++) { - for (j = 0; j < 8; j++) { + int z = 0; + for (int i = 0; i < 6; i++) { + for (int j = 0; j < 8; j++) { response_bit[z] = 0; if ((rx[i] & ((mask << 7) >> j)) != 0) response_bit[z] = 1; @@ -819,7 +815,7 @@ static int hitagS_handle_tag_auth(hitag_function htf, uint64_t key, uint64_t NrA if (htf == 02 || htf == 04) { //RHTS_KEY //WHTS_KEY state = _hitag2_init(REV64(key), REV32(tag.uid), REV32(rnd)); - for (i = 0; i < 4; i++) { + for (int i = 0; i < 4; i++) { auth_ks[i] = _hitag2_byte(&state) ^ 0xff; } *txlen = 64; @@ -836,7 +832,7 @@ static int hitagS_handle_tag_auth(hitag_function htf, uint64_t key, uint64_t NrA Dbprintf("%02X %02X %02X %02X %02X %02X %02X %02X", tx[0], tx[1], tx[2], tx[3], tx[4], tx[5], tx[6], tx[7]); } else if (htf == 01 || htf == 03) { //RHTS_CHALLENGE //WHTS_CHALLENGE - for (i = 0; i < 8; i++) + for (int i = 0; i < 8; i++) tx[i] = ((NrAr >> (56 - (i * 8))) & 0xff); } end = true; @@ -869,7 +865,7 @@ static int hitagS_handle_tag_auth(hitag_function htf, uint64_t key, uint64_t NrA if (htf == 02 || htf == 04) { //RHTS_KEY //WHTS_KEY { state = _hitag2_init(REV64(key), REV32(tag.uid), REV32(rnd)); - for (i = 0; i < 5; i++) + for (int i = 0; i < 5; i++) _hitag2_byte(&state); pwdh0 = ((rx[1] & 0x0f) * 16 + ((rx[2] & 0xf0) / 16)) ^ _hitag2_byte(&state); @@ -1133,9 +1129,7 @@ void ReadHitagS(hitag_function htf, hitag_data *htd) { uint8_t *tx = txbuf; size_t txlen = 0; int lastbit = 1; - bool bSkip; int reset_sof = 1; - int tag_sof; int t_wait = HITAG_T_WAIT_MAX; bool bStop = false; int sendNum = 0; @@ -1369,8 +1363,8 @@ void ReadHitagS(hitag_function htf, hitag_data *htd) { memset(rx, 0x00, sizeof(rx)); rxlen = 0; lastbit = 1; - bSkip = true; - tag_sof = reset_sof; + bool bSkip = true; + int tag_sof = reset_sof; response = 0; // Receive frame, watch for at most T0*EOF periods @@ -1462,9 +1456,7 @@ void WritePageHitagS(hitag_function htf, hitag_data *htd, int page) { uint8_t *tx = txbuf; size_t txlen = 0; int lastbit; - bool bSkip; int reset_sof; - int tag_sof; int t_wait = HITAG_T_WAIT_MAX; bool bStop; unsigned char crc; @@ -1659,8 +1651,8 @@ void WritePageHitagS(hitag_function htf, hitag_data *htd, int page) { memset(rx, 0x00, sizeof(rx)); rxlen = 0; lastbit = 1; - bSkip = true; - tag_sof = reset_sof; + bool bSkip = true; + int tag_sof = reset_sof; response = 0; uint32_t errorCount = 0; @@ -1754,12 +1746,11 @@ void check_challenges(bool file_given, uint8_t *data) { uint8_t rx[HITAG_FRAME_LEN]; uint8_t unlocker[60][8]; int u1 = 0; - size_t rxlen = 0, txlen = 0; + size_t rxlen = 0; uint8_t txbuf[HITAG_FRAME_LEN]; - uint8_t *tx; int t_wait = HITAG_T_WAIT_MAX; - int lastbit, reset_sof, tag_sof, STATE = 0;; - bool bSkip, bStop; + int lastbit, reset_sof, STATE = 0;; + bool bStop; int response_bit[200]; unsigned char mask = 1; unsigned char uid[32]; @@ -1837,8 +1828,8 @@ void check_challenges(bool file_given, uint8_t *data) { LogTrace(rx, nbytes(rxlen), response, 0, NULL, false); } - tx = txbuf; - txlen = 0; + uint8_t *tx = txbuf; + size_t txlen = 0; if (rxlen == 0) { if (STATE == 2) // challenge failed @@ -1968,8 +1959,8 @@ void check_challenges(bool file_given, uint8_t *data) { memset(rx, 0x00, sizeof(rx)); rxlen = 0; lastbit = 1; - bSkip = true; - tag_sof = reset_sof; + bool bSkip = true; + int tag_sof = reset_sof; response = 0; // Receive frame, watch for at most T0*EOF periods diff --git a/armsrc/iso14443a.c b/armsrc/iso14443a.c index 330dc357e..6eeb6d966 100644 --- a/armsrc/iso14443a.c +++ b/armsrc/iso14443a.c @@ -1093,7 +1093,6 @@ void SimulateIso14443aTag(uint8_t tagType, uint8_t flags, uint8_t *data) { #define ORDER_EV1_COMP_WRITE 40 #define ORDER_RATS 70 int order = ORDER_NONE; - int lastorder; int retval = PM3_SUCCESS; @@ -1101,7 +1100,6 @@ void SimulateIso14443aTag(uint8_t tagType, uint8_t flags, uint8_t *data) { int happened = 0; int happened2 = 0; int cmdsRecvd = 0; - tag_response_info_t *p_response; // compatible write block number uint8_t wrblock = 0; @@ -1118,10 +1116,10 @@ void SimulateIso14443aTag(uint8_t tagType, uint8_t flags, uint8_t *data) { retval = PM3_EOPABORTED; break; } - p_response = NULL; + tag_response_info_t *p_response = NULL; // Okay, look at the command now. - lastorder = order; + int lastorder = order; // // we need to check "ordered" states before, because received data may be same to any command - is wrong!!! @@ -1527,17 +1525,16 @@ void PrepareDelayedTransfer(uint16_t delay) { delay &= 0x07; if (!delay) return; - uint8_t bitmask = 0, bits_to_shift; + uint8_t bitmask = 0; uint8_t bits_shifted = 0; - uint16_t i = 0; - for (i = 0; i < delay; i++) + for (uint16_t i = 0; i < delay; i++) bitmask |= (0x01 << i); ToSend[ToSendMax++] = 0x00; - for (i = 0; i < ToSendMax; i++) { - bits_to_shift = ToSend[i] & bitmask; + for (uint16_t i = 0; i < ToSendMax; i++) { + uint8_t bits_to_shift = ToSend[i] & bitmask; ToSend[i] = ToSend[i] >> delay; ToSend[i] = ToSend[i] | (bits_shifted << (8 - delay)); bits_shifted = bits_to_shift; @@ -1600,9 +1597,7 @@ static void TransmitFor14443a(const uint8_t *cmd, uint16_t len, uint32_t *timing // Prepare reader command (in bits, support short frames) to send to FPGA //----------------------------------------------------------------------------- void CodeIso14443aBitsAsReaderPar(const uint8_t *cmd, uint16_t bits, const uint8_t *par) { - int i, j; int last = 0; - uint8_t b; ToSendReset(); @@ -1612,11 +1607,11 @@ void CodeIso14443aBitsAsReaderPar(const uint8_t *cmd, uint16_t bits, const uint8 size_t bytecount = nbytes(bits); // Generate send structure for the data bits - for (i = 0; i < bytecount; i++) { + for (int i = 0; i < bytecount; i++) { // Get the current byte to send - b = cmd[i]; + uint8_t b = cmd[i]; size_t bitsleft = MIN((bits - (i * 8)), 8); - + int j; for (j = 0; j < bitsleft; j++) { if (b & 1) { // Sequence X @@ -2078,25 +2073,22 @@ void iso14443a_antifuzz(uint32_t flags) { static void iso14a_set_ATS_times(uint8_t *ats) { - uint8_t tb1; - uint8_t fwi, sfgi; - uint32_t fwt, sfgt; - if (ats[0] > 1) { // there is a format byte T0 if ((ats[1] & 0x20) == 0x20) { // there is an interface byte TB(1) + uint8_t tb1; if ((ats[1] & 0x10) == 0x10) { // there is an interface byte TA(1) preceding TB(1) tb1 = ats[3]; } else { tb1 = ats[2]; } - fwi = (tb1 & 0xf0) >> 4; // frame waiting time integer (FWI) + uint8_t fwi = (tb1 & 0xf0) >> 4; // frame waiting time integer (FWI) if (fwi != 15) { - fwt = 256 * 16 * (1 << fwi); // frame waiting time (FWT) in 1/fc + uint32_t fwt = 256 * 16 * (1 << fwi); // frame waiting time (FWT) in 1/fc iso14a_set_timeout(fwt / (8 * 16)); } - sfgi = tb1 & 0x0f; // startup frame guard time integer (SFGI) + uint8_t sfgi = tb1 & 0x0f; // startup frame guard time integer (SFGI) if (sfgi != 0 && sfgi != 15) { - sfgt = 256 * 16 * (1 << sfgi); // startup frame guard time (SFGT) in 1/fc + uint32_t sfgt = 256 * 16 * (1 << sfgi); // startup frame guard time (SFGT) in 1/fc NextTransferTime = MAX(NextTransferTime, Demod.endTime + (sfgt - DELAY_AIR2ARM_AS_READER - DELAY_ARM2AIR_AS_READER) / 16); } } @@ -2144,7 +2136,6 @@ int iso14443a_select_card(uint8_t *uid_ptr, iso14a_card_select_t *p_card, uint32 uint8_t sak = 0x04; // cascade uid int cascade_level = 0; - int len; if (p_card) { p_card->uidlen = 0; @@ -2271,7 +2262,7 @@ int iso14443a_select_card(uint8_t *uid_ptr, iso14a_card_select_t *p_card, uint32 AddCrc14A(rats, 2); ReaderTransmit(rats, sizeof(rats), NULL); - len = ReaderReceive(resp, resp_par); + int len = ReaderReceive(resp, resp_par); if (!len) return 0; @@ -2639,7 +2630,6 @@ void ReaderMifare(bool first_try, uint8_t block, uint8_t keytype) { uint16_t sync_tries = 0; bool have_uid = false; - bool received_nack; uint8_t cascade_levels = 0; // static variables here, is re-used in the next call @@ -2667,7 +2657,7 @@ void ReaderMifare(bool first_try, uint8_t block, uint8_t keytype) { uint16_t i; for (i = 0; true; ++i) { - received_nack = false; + bool received_nack = false; WDT_HIT(); @@ -2893,7 +2883,6 @@ void DetectNACKbug() { uint16_t sync_tries = 0; uint32_t sync_time = 0; bool have_uid = false; - bool received_nack; int32_t status = PM3_SUCCESS; @@ -2912,7 +2901,7 @@ void DetectNACKbug() { uint16_t i; for (i = 1; true; ++i) { - received_nack = false; + bool received_nack = false; // Cards always leaks a NACK, no matter the parity if ((i == 10) && (num_nacks == i - 1)) { diff --git a/armsrc/iso14443b.c b/armsrc/iso14443b.c index 24c993f0b..241484d01 100644 --- a/armsrc/iso14443b.c +++ b/armsrc/iso14443b.c @@ -237,9 +237,6 @@ static void CodeIso14443bAsTag(const uint8_t *cmd, int len) { * */ - int i, j; - uint8_t b; - ToSendReset(); // Transmit a burst of ones, as the initial thing that lets the @@ -252,23 +249,23 @@ static void CodeIso14443bAsTag(const uint8_t *cmd, int len) { // Send SOF. // 10-11 ETU * 4times samples ZEROS - for (i = 0; i < 10; i++) { SEND4STUFFBIT(0); } + for (int i = 0; i < 10; i++) { SEND4STUFFBIT(0); } //for(i = 0; i < 10; i++) { ToSendStuffBit(0); } // 2-3 ETU * 4times samples ONES - for (i = 0; i < 3; i++) { SEND4STUFFBIT(1); } + for (int i = 0; i < 3; i++) { SEND4STUFFBIT(1); } //for(i = 0; i < 3; i++) { ToSendStuffBit(1); } // data - for (i = 0; i < len; ++i) { + for (int i = 0; i < len; ++i) { // Start bit SEND4STUFFBIT(0); //ToSendStuffBit(0); // Data bits - b = cmd[i]; - for (j = 0; j < 8; ++j) { + uint8_t b = cmd[i]; + for (int j = 0; j < 8; ++j) { // if(b & 1) { // SEND4STUFFBIT(1); // //ToSendStuffBit(1); @@ -292,11 +289,11 @@ static void CodeIso14443bAsTag(const uint8_t *cmd, int len) { // Send EOF. // 10-11 ETU * 4 sample rate = ZEROS - for (i = 0; i < 10; i++) { SEND4STUFFBIT(0); } + for (int i = 0; i < 10; i++) { SEND4STUFFBIT(0); } //for(i = 0; i < 10; i++) { ToSendStuffBit(0); } // why this? - for (i = 0; i < 40; i++) { SEND4STUFFBIT(1); } + for (int i = 0; i < 40; i++) { SEND4STUFFBIT(1); } //for(i = 0; i < 40; i++) { ToSendStuffBit(1); } // Convert from last byte pos to length @@ -945,7 +942,7 @@ static RAMFUNC int Handle14443bTagSamplesDemod(int ci, int cq) { * quiet: set to 'TRUE' to disable debug output */ static void GetTagSamplesFor14443bDemod() { - bool gotFrame, finished = false; + bool finished = false; // int lastRxCounter = ISO14443B_DMA_BUFFER_SIZE; uint32_t time_0 = 0, time_stop = 0; @@ -991,7 +988,7 @@ static void GetTagSamplesFor14443bDemod() { } // https://github.com/Proxmark/proxmark3/issues/103 - gotFrame = Handle14443bTagSamplesDemod(ci, cq); + bool gotFrame = Handle14443bTagSamplesDemod(ci, cq); time_stop = GetCountSspClk() - time_0; finished = (time_stop > iso14b_timeout || gotFrame); @@ -1058,14 +1055,12 @@ static void CodeIso14443bAsReader(const uint8_t *cmd, int len) { * QUESTION: how long is a 1 or 0 in pulses in the xcorr_848 mode? * 1 "stuffbit" = 1ETU (9us) */ - int i; - uint8_t b; ToSendReset(); // Send SOF // 10-11 ETUs of ZERO - for (i = 0; i < 10; ++i) ToSendStuffBit(0); + for (int i = 0; i < 10; ++i) ToSendStuffBit(0); // 2-3 ETUs of ONE ToSendStuffBit(1); @@ -1074,11 +1069,11 @@ static void CodeIso14443bAsReader(const uint8_t *cmd, int len) { // Sending cmd, LSB // from here we add BITS - for (i = 0; i < len; ++i) { + for (int i = 0; i < len; ++i) { // Start bit ToSendStuffBit(0); // Data bits - b = cmd[i]; + uint8_t b = cmd[i]; // if ( b & 1 ) ToSendStuffBit(1); else ToSendStuffBit(0); // if ( (b>>1) & 1) ToSendStuffBit(1); else ToSendStuffBit(0); // if ( (b>>2) & 1) ToSendStuffBit(1); else ToSendStuffBit(0); @@ -1108,13 +1103,13 @@ static void CodeIso14443bAsReader(const uint8_t *cmd, int len) { // Send EOF // 10-11 ETUs of ZERO - for (i = 0; i < 10; ++i) ToSendStuffBit(0); + for (int i = 0; i < 10; ++i) ToSendStuffBit(0); // Transition time. TR0 - guard time // 8ETUS minum? // Per specification, Subcarrier must be stopped no later than 2 ETUs after EOF. // I'm guessing this is for the FPGA to be able to send all bits before we switch to listening mode - for (i = 0; i < 24 ; ++i) ToSendStuffBit(1); + for (int i = 0; i < 24 ; ++i) ToSendStuffBit(1); // TR1 - Synchronization time // Convert from last character reference to length @@ -1462,7 +1457,6 @@ static void iso1444b_setup_sniff(void) { void RAMFUNC SniffIso14443b(void) { uint32_t time_0 = 0, time_start = 0, time_stop; - int ci, cq; // We won't start recording the frames that we acquire until we trigger; // a good trigger condition to get started is probably when we see a @@ -1490,8 +1484,8 @@ void RAMFUNC SniffIso14443b(void) { while (!BUTTON_PRESS()) { WDT_HIT(); - ci = data[0]; - cq = data[1]; + int ci = data[0]; + int cq = data[1]; data += 2; if (data >= dmaBuf + ISO14443B_DMA_BUFFER_SIZE) { diff --git a/armsrc/iso15693.c b/armsrc/iso15693.c index e42a35499..374b2be23 100644 --- a/armsrc/iso15693.c +++ b/armsrc/iso15693.c @@ -736,9 +736,9 @@ int SendDataTag(uint8_t *send, int sendlen, bool init, int speed, uint8_t *outda // Decodes a message from a tag and displays its metadata and content #define DBD15STATLEN 48 void DbdecodeIso15693Answer(int len, uint8_t *d) { - char status[DBD15STATLEN + 1] = {0}; if (len > 3) { + char status[DBD15STATLEN + 1] = {0}; if (d[0] & (1 << 3)) strncat(status, "ProtExt ", DBD15STATLEN - strlen(status)); if (d[0] & 1) { @@ -802,9 +802,6 @@ void DbdecodeIso15693Answer(int len, uint8_t *d) { void ReaderIso15693(uint32_t parameter) { int answerLen1 = 0; int tsamples = 0, wait = 0, elapsed = 0; - - uint8_t uid[8] = {0, 0, 0, 0, 0, 0, 0, 0}; - // set up device/fpga Iso15693InitReader(); @@ -829,6 +826,7 @@ void ReaderIso15693(uint32_t parameter) { // we should do a better check than this if (answerLen1 >= 12) { + uint8_t uid[8]; uid[0] = answer1[9]; // always E0 uid[1] = answer1[8]; // IC Manufacturer code uid[2] = answer1[7]; diff --git a/armsrc/lfops.c b/armsrc/lfops.c index de4c412ca..5af13b76d 100644 --- a/armsrc/lfops.c +++ b/armsrc/lfops.c @@ -1151,24 +1151,20 @@ void CmdAWIDdemodFSK(int findone, uint32_t *high, uint32_t *low, int ledcontrol) // w = wiegand parity // (26 bit format shown) - uint32_t fac = 0; - uint32_t cardnum = 0; - uint32_t code1 = 0; - uint32_t code2 = 0; uint8_t fmtLen = bytebits_to_byte(dest, 8); if (fmtLen == 26) { - fac = bytebits_to_byte(dest + 9, 8); - cardnum = bytebits_to_byte(dest + 17, 16); - code1 = bytebits_to_byte(dest + 8, fmtLen); + uint32_t fac = bytebits_to_byte(dest + 9, 8); + uint32_t cardnum = bytebits_to_byte(dest + 17, 16); + uint32_t code1 = bytebits_to_byte(dest + 8, fmtLen); Dbprintf("AWID Found - BitLength: %d, FC: %d, Card: %d - Wiegand: %x, Raw: %08x%08x%08x", fmtLen, fac, cardnum, code1, rawHi2, rawHi, rawLo); } else { - cardnum = bytebits_to_byte(dest + 8 + (fmtLen - 17), 16); + uint32_t cardnum = bytebits_to_byte(dest + 8 + (fmtLen - 17), 16); if (fmtLen > 32) { - code1 = bytebits_to_byte(dest + 8, fmtLen - 32); - code2 = bytebits_to_byte(dest + 8 + (fmtLen - 32), 32); + uint32_t code1 = bytebits_to_byte(dest + 8, fmtLen - 32); + uint32_t code2 = bytebits_to_byte(dest + 8 + (fmtLen - 32), 32); Dbprintf("AWID Found - BitLength: %d -unknown BitLength- (%d) - Wiegand: %x%08x, Raw: %08x%08x%08x", fmtLen, cardnum, code1, code2, rawHi2, rawHi, rawLo); } else { - code1 = bytebits_to_byte(dest + 8, fmtLen); + uint32_t code1 = bytebits_to_byte(dest + 8, fmtLen); Dbprintf("AWID Found - BitLength: %d -unknown BitLength- (%d) - Wiegand: %x, Raw: %08x%08x%08x", fmtLen, cardnum, code1, rawHi2, rawHi, rawLo); } } @@ -1189,7 +1185,7 @@ void CmdEM410xdemod(int findone, uint32_t *high, uint64_t *low, int ledcontrol) uint8_t *dest = BigBuf_get_addr(); size_t size, idx = 0; - int clk = 0, invert = 0, errCnt, maxErr = 20; + int clk = 0, invert = 0, maxErr = 20; uint32_t hi = 0; uint64_t lo = 0; @@ -1207,7 +1203,7 @@ void CmdEM410xdemod(int findone, uint32_t *high, uint64_t *low, int ledcontrol) size = BigBuf_max_traceLen(); //askdemod and manchester decode if (size > 16385) size = 16385; //big enough to catch 2 sequences of largest format - errCnt = askdemod(dest, &size, &clk, &invert, maxErr, 0, 1); + int errCnt = askdemod(dest, &size, &clk, &invert, maxErr, 0, 1); WDT_HIT(); if (errCnt > 50) continue; diff --git a/armsrc/mifarecmd.c b/armsrc/mifarecmd.c index f7a710c0e..eee4fdb44 100644 --- a/armsrc/mifarecmd.c +++ b/armsrc/mifarecmd.c @@ -861,11 +861,10 @@ void MifareNested(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *datain) ui64Key = bytes_to_num(datain, 6); // variables - uint16_t rtr, i, j, len; - uint16_t davg = 0; + uint16_t i, j, len; static uint16_t dmin, dmax; uint8_t uid[10] = {0x00}; - uint32_t cuid = 0, nt1, nt2, nttmp, nttest, ks1; + uint32_t cuid = 0, nt1, nt2, nttest, ks1; uint8_t par[1] = {0x00}; uint32_t target_nt[2] = {0x00}, target_ks[2] = {0x00}; @@ -893,15 +892,16 @@ void MifareNested(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *datain) // statistics on nonce distance int16_t isOK = 0; #define NESTED_MAX_TRIES 12 - uint16_t unsuccessfull_tries = 0; if (arg2) { // calibrate: for first call only. Otherwise reuse previous calibration LED_B_ON(); WDT_HIT(); - davg = dmax = 0; + uint16_t unsuccessfull_tries = 0; + uint16_t davg = 0; + dmax = 0; dmin = 2000; delta_time = 0; - + uint16_t rtr; for (rtr = 0; rtr < 17; rtr++) { // Test if the action was cancelled @@ -937,7 +937,7 @@ void MifareNested(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *datain) continue; }; - nttmp = prng_successor(nt1, 100); //NXP Mifare is typical around 840,but for some unlicensed/compatible mifare card this can be 160 + uint32_t nttmp = prng_successor(nt1, 100); //NXP Mifare is typical around 840,but for some unlicensed/compatible mifare card this can be 160 for (i = 101; i < 1200; i++) { nttmp = prng_successor(nttmp, 1); if (nttmp == nt2) break; @@ -1653,7 +1653,6 @@ void MifareEMemGet(uint8_t blockno, uint8_t blockcnt) { // //----------------------------------------------------------------------------- int MifareECardLoad(uint32_t arg0, uint32_t arg1) { - uint64_t ui64Key; uint32_t cuid = 0; uint8_t numSectors = arg0; uint8_t keyType = arg1; @@ -1682,7 +1681,7 @@ int MifareECardLoad(uint32_t arg0, uint32_t arg1) { } for (uint8_t sectorNo = 0; isOK && sectorNo < numSectors; sectorNo++) { - ui64Key = emlGetKey(sectorNo, keyType); + uint64_t ui64Key = emlGetKey(sectorNo, keyType); if (sectorNo == 0) { if (isOK && mifare_classic_auth(pcs, cuid, FirstBlockOfSector(sectorNo), keyType, ui64Key, AUTH_FIRST)) { if (DBGLEVEL >= 1) Dbprintf("Sector[%2d]. Auth error", sectorNo); @@ -2016,7 +2015,6 @@ void MifareSetMod(uint8_t *datain) { uint32_t cuid = 0; struct Crypto1State mpcs = {0, 0}; struct Crypto1State *pcs = &mpcs; - int respLen; uint8_t receivedAnswer[MAX_MIFARE_FRAME_SIZE] = {0}; uint8_t receivedAnswerPar[MAX_MIFARE_PARITY_SIZE] = {0}; @@ -2040,6 +2038,7 @@ void MifareSetMod(uint8_t *datain) { break; } + int respLen; if (((respLen = mifare_sendcmd_short(pcs, 1, 0x43, mod, receivedAnswer, receivedAnswerPar, NULL)) != 1) || (receivedAnswer[0] != 0x0a)) { if (DBGLEVEL >= 1) Dbprintf("SetMod error; response[0]: %hhX, len: %d", receivedAnswer[0], respLen); break; diff --git a/armsrc/mifaredesfire.c b/armsrc/mifaredesfire.c index 9cfb0492f..bda31790d 100644 --- a/armsrc/mifaredesfire.c +++ b/armsrc/mifaredesfire.c @@ -174,22 +174,18 @@ void MifareDES_Auth1(uint8_t arg0, uint8_t arg1, uint8_t arg2, uint8_t *datain) int len = 0; //uint8_t PICC_MASTER_KEY8[8] = { 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47}; uint8_t PICC_MASTER_KEY16[16] = { 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f }; - uint8_t null_key_data8[8] = {0x00}; //uint8_t null_key_data16[16] = {0x00}; //uint8_t new_key_data8[8] = { 0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77}; //uint8_t new_key_data16[16] = { 0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xAA,0xBB,0xCC,0xDD,0xEE,0xFF}; uint8_t resp[256] = {0x00}; - uint8_t IV[16] = {0x00}; size_t datalen = datain[0]; uint8_t cmd[40] = {0x00}; uint8_t encRndB[16] = {0x00}; uint8_t decRndB[16] = {0x00}; - uint8_t nonce[16] = {0x00}; uint8_t both[32] = {0x00}; - uint8_t encBoth[32] = {0x00}; InitDesfireCard(); @@ -217,6 +213,7 @@ void MifareDES_Auth1(uint8_t arg0, uint8_t arg1, uint8_t arg2, uint8_t *datain) } else { if (arg1 == 1) { if (datain[1] == 0xff) { + uint8_t null_key_data8[8] = {0x00}; memcpy(keybytes, null_key_data8, 8); } else { memcpy(keybytes, datain + 1, datalen); @@ -437,6 +434,7 @@ void MifareDES_Auth1(uint8_t arg0, uint8_t arg1, uint8_t arg2, uint8_t *datain) Desfire_aes_key_new(keybytes, key); AesCtx ctx; + uint8_t IV[16] = {0x00}; if (AesCtxIni(&ctx, IV, key->data, KEY128, CBC) < 0) { if (DBGLEVEL >= 4) { DbpString("AES context failed to init"); @@ -461,8 +459,10 @@ void MifareDES_Auth1(uint8_t arg0, uint8_t arg1, uint8_t arg2, uint8_t *datain) // dekryptera tagnonce. AesDecrypt(&ctx, encRndB, decRndB, 16); rol(decRndB, 16); + uint8_t nonce[16] = {0x00}; memcpy(both, nonce, 16); memcpy(both + 16, decRndB, 16); + uint8_t encBoth[32] = {0x00}; AesEncrypt(&ctx, both, encBoth, 32); cmd[0] = ADDITIONAL_FRAME; diff --git a/armsrc/mifaresniff.c b/armsrc/mifaresniff.c index 0c69c0381..1d7f576af 100644 --- a/armsrc/mifaresniff.c +++ b/armsrc/mifaresniff.c @@ -309,13 +309,13 @@ bool RAMFUNC MfSniffLogic(const uint8_t *data, uint16_t len, uint8_t *parity, ui */ void RAMFUNC MfSniffSend() { - uint16_t chunksize, tracelen = BigBuf_get_traceLen(); + uint16_t tracelen = BigBuf_get_traceLen(); int packlen = tracelen; // total number of bytes to send uint8_t *data = BigBuf_get_addr(); while (packlen > 0) { LED_B_ON(); - chunksize = MIN(PM3_CMD_DATA_SIZE, packlen); // chunk size 512 + uint16_t chunksize = MIN(PM3_CMD_DATA_SIZE, packlen); // chunk size 512 reply_old(CMD_ACK, 1, tracelen, chunksize, data + tracelen - packlen, chunksize); packlen -= chunksize; LED_B_OFF(); diff --git a/armsrc/optimized_cipher.c b/armsrc/optimized_cipher.c index fee3c156f..4894bf6bc 100644 --- a/armsrc/optimized_cipher.c +++ b/armsrc/optimized_cipher.c @@ -111,9 +111,8 @@ void opt_successor(const uint8_t *k, State *s, bool y, State *successor) { void opt_suc(const uint8_t *k, State *s, uint8_t *in, uint8_t length, bool add32Zeroes) { State x2; - int i; - uint8_t head; - for (i = 0; i < length; i++) { + for (int i = 0; i < length; i++) { + uint8_t head; head = 1 & (in[i] >> 7); opt_successor(k, s, head, &x2); @@ -141,7 +140,7 @@ void opt_suc(const uint8_t *k, State *s, uint8_t *in, uint8_t length, bool add32 //For tag MAC, an additional 32 zeroes if (add32Zeroes) { - for (i = 0; i < 16; i++) { + for (int i = 0; i < 16; i++) { opt_successor(k, s, 0, &x2); opt_successor(k, &x2, 0, s); } @@ -149,10 +148,9 @@ void opt_suc(const uint8_t *k, State *s, uint8_t *in, uint8_t length, bool add32 } void opt_output(const uint8_t *k, State *s, uint8_t *buffer) { - uint8_t bout, times = 0; State temp = {0, 0, 0, 0}; - for (; times < 4; times++) { - bout = 0; + for (uint8_t times = 0; times < 4; times++) { + uint8_t bout = 0; bout |= (s->r & 0x4) << 5; opt_successor(k, s, 0, &temp); bout |= (temp.r & 0x4) << 4; diff --git a/armsrc/printf.c b/armsrc/printf.c index e2862f79e..d0d873e7d 100644 --- a/armsrc/printf.c +++ b/armsrc/printf.c @@ -60,12 +60,10 @@ char const hex2ascii_data[] = "0123456789abcdefghijklmnopqrstuvwxyz"; */ static char * ksprintn(char *nbuf, uintmax_t num, int base, int *lenp, int upper) { - char *p, c; - - p = nbuf; + char *p = nbuf; *p = '\0'; do { - c = hex2ascii(num % base); + char c = hex2ascii(num % base); *++p = upper ? toupper(c) : c; } while (num /= base); if (lenp) diff --git a/armsrc/string.c b/armsrc/string.c index 517c59e0a..5c154643c 100644 --- a/armsrc/string.c +++ b/armsrc/string.c @@ -80,10 +80,10 @@ char *strcat(char *dest, const char *src) { /* reverse: reverse string s in place */ void strreverse(char s[]) { - int c, i, j; + int j = strlen(s) - 1; - for (i = 0, j = strlen(s) - 1; i < j; i++, j--) { - c = s[i]; + for (int i = 0; i < j; i++, j--) { + int c = s[i]; s[i] = s[j]; s[j] = c; } diff --git a/bootrom/bootrom.c b/bootrom/bootrom.c index 005dbf662..30521fe01 100644 --- a/bootrom/bootrom.c +++ b/bootrom/bootrom.c @@ -114,7 +114,6 @@ static void Fatal(void) { void UsbPacketReceived(uint8_t *packet, int len) { int i, dont_ack = 0; PacketCommandOLD *c = (PacketCommandOLD *)packet; - volatile uint32_t *p; //if ( len != sizeof(PacketCommandOLD`)) Fatal(); @@ -136,7 +135,7 @@ void UsbPacketReceived(uint8_t *packet, int len) { /* The temporary write buffer of the embedded flash controller is mapped to the * whole memory region, only the last 8 bits are decoded. */ - p = (volatile uint32_t *)&_flash_start; + volatile uint32_t *p = (volatile uint32_t *)&_flash_start; for (i = 0; i < 12; i++) p[i + arg0] = c->d.asDwords[i]; } diff --git a/client/cmdcrc.c b/client/cmdcrc.c index e5d62d46e..58cab45e5 100644 --- a/client/cmdcrc.c +++ b/client/cmdcrc.c @@ -13,8 +13,6 @@ static int split(char *str, char *arr[MAX_ARGS]) { int beginIndex = 0; - int endIndex; - int maxWords = MAX_ARGS; int wordCnt = 0; while (1) { @@ -24,7 +22,7 @@ static int split(char *str, char *arr[MAX_ARGS]) { if (str[beginIndex] == '\0') { break; } - endIndex = beginIndex; + int endIndex = beginIndex; while (str[endIndex] && !isspace(str[endIndex])) { ++endIndex; } @@ -33,7 +31,7 @@ static int split(char *str, char *arr[MAX_ARGS]) { memcpy(tmp, &str[beginIndex], len); arr[wordCnt++] = tmp; beginIndex = endIndex; - if (wordCnt == maxWords) + if (wordCnt == MAX_ARGS) break; } return wordCnt; @@ -45,10 +43,8 @@ int GetModels(char *Models[], int *count, uint8_t *width) { /* default values */ static model_t model = MZERO; - int ibperhx = 8;//, obperhx = 8; - int rflags = 0, uflags = 0; /* search and UI flags */ poly_t apoly, crc, qpoly = PZERO, *apolys = NULL, *pptr = NULL, *qptr = NULL; - model_t pset = model, *candmods, *mptr; + model_t pset = model; /* stdin must be binary */ #ifdef _WIN32 @@ -81,6 +77,8 @@ int GetModels(char *Models[], int *count, uint8_t *width) { mfree(&model); } else { //reveng -s + int ibperhx = 8;//, obperhx = 8; + int rflags = 0, uflags = 0; /* search and UI flags */ if (~model.flags & P_MULXN) { PrintAndLogEx(WARNING, "cannot search for non-Williams compliant models"); return 0; @@ -108,9 +106,9 @@ int GetModels(char *Models[], int *count, uint8_t *width) { /* scan against preset models */ if (~uflags & C_NOPCK) { pass = 0; - int Cnt = 0, psets; + int Cnt = 0; do { - psets = mcount(); + int psets = mcount(); while (psets) { mbynum(&pset, --psets); @@ -192,7 +190,8 @@ int GetModels(char *Models[], int *count, uint8_t *width) { pass = 0; int args = 0; do { - mptr = candmods = reveng(&model, qpoly, rflags, args, apolys); + model_t *candmods = reveng(&model, qpoly, rflags, args, apolys); + model_t *mptr = candmods; if (mptr && plen(mptr->spoly)) { uflags |= C_RESULT; } @@ -396,7 +395,6 @@ static int CmdrevengSearch(const char *Cmd) { uint8_t width[NMODELS] = {0}; int count = 0; - uint8_t crcChars; char result[30]; char revResult[30]; int ans = GetModels(Models, &count, width); @@ -410,7 +408,7 @@ static int CmdrevengSearch(const char *Cmd) { continue; }*/ // round up to # of characters in this model's crc - crcChars = ((width[i] + 7) / 8) * 2; + uint8_t crcChars = ((width[i] + 7) / 8) * 2; // can't test a model that has more crc digits than our data if (crcChars >= dataLen) continue; diff --git a/client/cmddata.c b/client/cmddata.c index 9811d1b62..59bc5df73 100644 --- a/client/cmddata.c +++ b/client/cmddata.c @@ -384,7 +384,6 @@ void printDemodBuff(void) { } int CmdPrintDemodBuff(const char *Cmd) { - char hex[512] = {0x00}; bool hexMode = false; bool errors = false; uint32_t offset = 0; @@ -425,6 +424,7 @@ int CmdPrintDemodBuff(const char *Cmd) { if (hexMode) { char *buf = (char *)(DemodBuffer + offset); + char hex[512] = {0x00}; int numBits = binarraytohex(hex, sizeof(hex), buf, length); if (numBits == 0) { return PM3_ESOFT; @@ -745,15 +745,13 @@ int AutoCorrelate(const int *in, int *out, size_t len, size_t window, bool SaveG //test double autocv = 0.0; // Autocovariance value - double ac_value; // Computed autocorrelation value to be returned - double variance; // Computed variance - double mean; size_t correlation = 0; int lastmax = 0; // in, len, 4000 - mean = compute_mean(in, len); - variance = compute_variance(in, len); + double mean = compute_mean(in, len); + // Computed variance + double variance = compute_variance(in, len); static int CorrelBuffer[MAX_GRAPH_TRACE_LEN]; @@ -766,8 +764,9 @@ int AutoCorrelate(const int *in, int *out, size_t len, size_t window, bool SaveG CorrelBuffer[i] = autocv; + // Computed autocorrelation value to be returned // Autocorrelation is autocovariance divided by variance - ac_value = autocv / variance; + double ac_value = autocv / variance; // keep track of which distance is repeating. if (ac_value > 1) { diff --git a/client/cmdhf14a.c b/client/cmdhf14a.c index 9289abe22..3b87799a6 100644 --- a/client/cmdhf14a.c +++ b/client/cmdhf14a.c @@ -506,9 +506,9 @@ int CmdHF14ASim(const char *Cmd) { } int CmdHF14ASniff(const char *Cmd) { - uint8_t param = 0, ctmp; + uint8_t param = 0; for (uint8_t i = 0; i < 2; i++) { - ctmp = tolower(param_getchar(Cmd, i)); + uint8_t ctmp = tolower(param_getchar(Cmd, i)); if (ctmp == 'h') return usage_hf_14a_sniff(); if (ctmp == 'c') param |= 0x01; if (ctmp == 'r') param |= 0x02; @@ -701,11 +701,10 @@ static int CmdExchangeAPDU(bool chainingin, uint8_t *datain, int datainlen, bool else SendCommandMIX(CMD_READER_ISO_14443a, ISO14A_APDU | ISO14A_NO_DISCONNECT | cmdc, 0, 0, NULL, 0); - uint8_t *recv; PacketResponseNG resp; if (WaitForResponseTimeout(CMD_ACK, &resp, 1500)) { - recv = resp.data.asBytes; + uint8_t *recv = resp.data.asBytes; int iLen = resp.oldarg[0]; uint8_t res = resp.oldarg[1]; diff --git a/client/cmdhf14b.c b/client/cmdhf14b.c index 94a89a2bc..c95494b7a 100644 --- a/client/cmdhf14b.c +++ b/client/cmdhf14b.c @@ -121,7 +121,6 @@ static int switch_off_field_14b(void) { static bool waitCmd14b(bool verbose) { - uint8_t data[PM3_CMD_DATA_SIZE] = {0x00}; PacketResponseNG resp; if (WaitForResponseTimeout(CMD_ACK, &resp, TIMEOUT)) { @@ -130,6 +129,7 @@ static bool waitCmd14b(bool verbose) { uint16_t len = (resp.oldarg[1] & 0xFFFF); + uint8_t data[PM3_CMD_DATA_SIZE] = {0x00}; memcpy(data, resp.data.asBytes, len); if (verbose) { diff --git a/client/cmdhf15.c b/client/cmdhf15.c index 022a941b2..6f6d1ebc2 100644 --- a/client/cmdhf15.c +++ b/client/cmdhf15.c @@ -1160,9 +1160,8 @@ static int CmdHF15Restore(const char *Cmd) { char newCmdPrefix[FILE_PATH_SIZE + 1] = {0x00}, tmpCmd[FILE_PATH_SIZE + 262] = {0x00}; char param[FILE_PATH_SIZE] = ""; char hex[255] = ""; - uint8_t retries = 3, tried = 0, i = 0; + uint8_t retries = 3, i = 0; int retval = 0; - size_t bytes_read; while (param_getchar(Cmd, cmdp) != 0x00) { switch (tolower(param_getchar(Cmd, cmdp))) { @@ -1226,11 +1225,11 @@ static int CmdHF15Restore(const char *Cmd) { PrintAndLogEx(INFO, "Restoring data blocks."); while (1) { - tried = 0; + uint8_t tried = 0; hex[0] = 0x00; tmpCmd[0] = 0x00; - bytes_read = fread(buff, 1, blocksize, f); + size_t bytes_read = fread(buff, 1, blocksize, f); if (bytes_read == 0) { PrintAndLogEx(SUCCESS, "File reading done `%s`", filename); fclose(f); diff --git a/client/cmdhficlass.c b/client/cmdhficlass.c index 0c3cb9281..2bdb91fa1 100644 --- a/client/cmdhficlass.c +++ b/client/cmdhficlass.c @@ -308,8 +308,6 @@ static int CmdHFiClassSim(const char *Cmd) { return usage_hf_iclass_sim(); } - uint8_t numberOfCSNs = 0; - /* // pre-defined 8 CSN by Holiman uint8_t csns[8*NUM_CSNS] = { @@ -478,9 +476,8 @@ static int CmdHFiClassSim(const char *Cmd) { //KEYROLL 2 memset(dump, 0, datalen); - uint8_t resp_index = 0; for (uint8_t i = 0; i < NUM_CSNS; i++) { - resp_index = (i + NUM_CSNS) * 16; + uint8_t resp_index = (i + NUM_CSNS) * 16; // Copy CSN memcpy(dump + i * MAC_ITEM_SIZE, csns + i * 8, 8); // copy EPURSE @@ -496,6 +493,7 @@ static int CmdHFiClassSim(const char *Cmd) { case 1: case 3: default: { + uint8_t numberOfCSNs = 0; clearCommandBuffer(); SendCommandOLD(CMD_SIMULATE_TAG_ICLASS, simType, numberOfCSNs, 0, CSN, 8); break; @@ -1303,7 +1301,6 @@ static int CmdHFiClassCloneTag(const char *Cmd) { return 0; } - uint8_t *ptr; uint8_t data[(endblock - startblock) * 12]; // calculate all mac for every the block we will write for (i = startblock; i <= endblock; i++) { @@ -1312,7 +1309,7 @@ static int CmdHFiClassCloneTag(const char *Cmd) { // memcpy(pointer,tag_data[i - 6],8) 8 bytes // memcpy(pointer + 8,mac,sizoof(mac) 4 bytes; // next one - ptr = data + (i - startblock) * 12; + uint8_t *ptr = data + (i - startblock) * 12; memcpy(ptr, &(tag_data[i - startblock].d[0]), 8); memcpy(ptr + 8, MAC, 4); } @@ -1335,11 +1332,10 @@ static int CmdHFiClassCloneTag(const char *Cmd) { } static int ReadBlock(uint8_t *KEY, uint8_t blockno, uint8_t keyType, bool elite, bool rawkey, bool verbose, bool auth) { - uint8_t MAC[4] = {0x00, 0x00, 0x00, 0x00}; - uint8_t div_key[8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - // block 0,1 should always be able to read, and block 5 on some cards. if (auth || blockno >= 2) { + uint8_t MAC[4] = {0x00, 0x00, 0x00, 0x00}; + uint8_t div_key[8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; if (!select_and_auth(KEY, MAC, div_key, (keyType == 0x18), elite, rawkey, verbose)) return 0; } else { @@ -1445,8 +1441,8 @@ static int CmdHFiClass_loclass(const char *Cmd) { if (strlen(Cmd) < 1 || opt == 'h') usage_hf_iclass_loclass(); - char fileName[FILE_PATH_SIZE] = {0}; if (opt == 'f') { + char fileName[FILE_PATH_SIZE] = {0}; if (param_getstr(Cmd, 1, fileName, sizeof(fileName)) > 0) { return bruteforceFileNoKeys(fileName); } else { @@ -1551,9 +1547,9 @@ static int CmdHFiClassReadTagFile(const char *Cmd) { } void HFiClassCalcDivKey(uint8_t *CSN, uint8_t *KEY, uint8_t *div_key, bool elite) { - uint8_t keytable[128] = {0}; - uint8_t key_index[8] = {0}; if (elite) { + uint8_t keytable[128] = {0}; + uint8_t key_index[8] = {0}; uint8_t key_sel[8] = { 0 }; uint8_t key_sel_p[8] = { 0 }; hash2(KEY, keytable); @@ -1595,7 +1591,6 @@ static int CmdHFiClassCalcNewKey(const char *Cmd) { uint8_t NEWKEY[8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; uint8_t xor_div_key[8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; uint8_t CSN[8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - uint8_t CCNR[12] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; uint8_t keyNbr = 0; uint8_t dataLen = 0; char tempStr[50] = {0}; @@ -1665,9 +1660,11 @@ static int CmdHFiClassCalcNewKey(const char *Cmd) { } if (errors || cmdp < 4) return usage_hf_iclass_calc_newkey(); - if (!givenCSN) + if (!givenCSN) { + uint8_t CCNR[12] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; if (!select_only(CSN, CCNR, false, true)) return 0; + } HFiClassCalcNewKey(CSN, OLDKEY, NEWKEY, xor_div_key, elite, oldElite, true); return PM3_SUCCESS; @@ -2318,11 +2315,10 @@ static void permute(uint8_t *data, uint8_t len, uint8_t *output) { PrintAndLogEx(NORMAL, "[!] wrong key size\n"); return; } - uint8_t i, j, p, mask; - for (i = 0; i < KEY_SIZE; ++i) { - p = 0; - mask = 0x80 >> i; - for (j = 0; j < KEY_SIZE; ++j) { + for (uint8_t i = 0; i < KEY_SIZE; ++i) { + uint8_t p = 0; + uint8_t mask = 0x80 >> i; + for (uint8_t j = 0; j < KEY_SIZE; ++j) { p >>= 1; if (data[j] & mask) p |= 0x80; @@ -2377,8 +2373,6 @@ static void generate(uint8_t *data, uint8_t len) { static int CmdHFiClassPermuteKey(const char *Cmd) { uint8_t key[8] = {0}; - uint8_t key_std_format[8] = {0}; - uint8_t key_iclass_format[8] = {0}; uint8_t data[16] = {0}; bool isReverse = false; int len = 0; @@ -2396,10 +2390,12 @@ static int CmdHFiClassPermuteKey(const char *Cmd) { if (isReverse) { generate_rev(data, len); + uint8_t key_std_format[8] = {0}; permutekey_rev(key, key_std_format); PrintAndLogEx(SUCCESS, "holiman iclass key | %s \n", sprint_hex(key_std_format, 8)); } else { generate(data, len); + uint8_t key_iclass_format[8] = {0}; permutekey(key, key_iclass_format); PrintAndLogEx(SUCCESS, "holiman std key | %s \n", sprint_hex(key_iclass_format, 8)); } diff --git a/client/cmdhfmf.c b/client/cmdhfmf.c index 3aaa5187f..3a23b5047 100644 --- a/client/cmdhfmf.c +++ b/client/cmdhfmf.c @@ -591,10 +591,8 @@ static int CmdHF14AMfRdBl(const char *Cmd) { } static int CmdHF14AMfRdSc(const char *Cmd) { - int i; - uint8_t isOK, sectorNo = 0, keyType = 0; + uint8_t sectorNo = 0, keyType = 0; uint8_t key[6] = {0, 0, 0, 0, 0, 0}; - uint8_t *data = NULL; char cmdp = 0x00; if (strlen(Cmd) < 3) { @@ -631,12 +629,12 @@ static int CmdHF14AMfRdSc(const char *Cmd) { PacketResponseNG resp; if (WaitForResponseTimeout(CMD_ACK, &resp, 1500)) { - isOK = resp.oldarg[0] & 0xff; - data = resp.data.asBytes; + uint8_t isOK = resp.oldarg[0] & 0xff; + uint8_t *data = resp.data.asBytes; PrintAndLogEx(NORMAL, "isOk:%02x", isOK); if (isOK) { - for (i = 0; i < (sectorNo < 32 ? 3 : 15); i++) { + for (int i = 0; i < (sectorNo < 32 ? 3 : 15); i++) { PrintAndLogEx(NORMAL, "data : %s", sprint_hex(data + i * 16, 16)); } PrintAndLogEx(NORMAL, "trailer: %s", sprint_hex(data + (sectorNo < 32 ? 3 : 15) * 16, 16)); @@ -644,7 +642,7 @@ static int CmdHF14AMfRdSc(const char *Cmd) { PrintAndLogEx(NORMAL, "Trailer decoded:"); int bln = mfFirstBlockOfSector(sectorNo); int blinc = (mfNumBlocksPerSector(sectorNo) > 4) ? 5 : 1; - for (i = 0; i < 4; i++) { + for (int i = 0; i < 4; i++) { PrintAndLogEx(NORMAL, "Access block %d%s: %s", bln, ((blinc > 1) && (i < 3) ? "+" : ""), mfGetAccessConditionsDesc(i, &(data + (sectorNo < 32 ? 3 : 15) * 16)[6])); bln += blinc; } @@ -1065,9 +1063,7 @@ static int CmdHF14AMfRestore(const char *Cmd) { } static int CmdHF14AMfNested(const char *Cmd) { - int i, iterations; sector_t *e_sector = NULL; - uint8_t blockNo = 0; uint8_t keyType = 0; uint8_t trgBlockNo = 0; uint8_t trgKeyType = 0; @@ -1077,16 +1073,12 @@ static int CmdHF14AMfNested(const char *Cmd) { uint64_t key64 = 0; bool transferToEml = false; bool createDumpFile = false; - FILE *fkeys; - uint8_t standart[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; - uint8_t tempkey[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; - char *fptr; if (strlen(Cmd) < 3) return usage_hf14_nested(); char cmdp, ctmp; cmdp = tolower(param_getchar(Cmd, 0)); - blockNo = param_get8(Cmd, 1); + uint8_t blockNo = param_get8(Cmd, 1); ctmp = tolower(param_getchar(Cmd, 2)); if (ctmp != 'a' && ctmp != 'b') { @@ -1195,10 +1187,10 @@ static int CmdHF14AMfNested(const char *Cmd) { PrintAndLogEx(SUCCESS, "enter nested attack"); // nested sectors - iterations = 0; +// int iterations = 0; bool calibrate = true; - for (i = 0; i < MIFARE_SECTOR_RETRY; i++) { + for (int i = 0; i < MIFARE_SECTOR_RETRY; i++) { for (uint8_t sectorNo = 0; sectorNo < SectorsCnt; ++sectorNo) { for (trgKeyType = 0; trgKeyType < 2; ++trgKeyType) { @@ -1217,11 +1209,11 @@ static int CmdHF14AMfNested(const char *Cmd) { break; case -4 : //key not found calibrate = false; - iterations++; +// iterations++; continue; case -5 : calibrate = false; - iterations++; +// iterations++; e_sector[sectorNo].foundKey[trgKeyType] = 1; e_sector[sectorNo].Key[trgKeyType] = bytes_to_num(keyBlock, 6); @@ -1243,7 +1235,7 @@ static int CmdHF14AMfNested(const char *Cmd) { // 20160116 If Sector A is found, but not Sector B, try just reading it of the tag? PrintAndLogEx(INFO, "trying to read key B..."); - for (i = 0; i < SectorsCnt; i++) { + for (int i = 0; i < SectorsCnt; i++) { // KEY A but not KEY B if (e_sector[i].foundKey[0] && !e_sector[i].foundKey[1]) { @@ -1283,7 +1275,7 @@ static int CmdHF14AMfNested(const char *Cmd) { if (transferToEml) { // fast push mode conn.block_after_ACK = true; - for (i = 0; i < SectorsCnt; i++) { + for (int i = 0; i < SectorsCnt; i++) { mfEmlGetMem(keyBlock, FirstBlockOfSector(i) + NumBlocksPerSector(i) - 1, 1); if (e_sector[i].foundKey[0]) @@ -1303,12 +1295,12 @@ static int CmdHF14AMfNested(const char *Cmd) { // Create dump file if (createDumpFile) { - fptr = GenerateFilename("hf-mf-", "-key.bin"); + char *fptr = GenerateFilename("hf-mf-", "-key.bin"); if (fptr == NULL) { free(e_sector); return PM3_ESOFT; } - + FILE *fkeys; if ((fkeys = fopen(fptr, "wb")) == NULL) { PrintAndLogEx(WARNING, "could not create file " _YELLOW_("%s"), fptr); free(e_sector); @@ -1316,7 +1308,9 @@ static int CmdHF14AMfNested(const char *Cmd) { } PrintAndLogEx(SUCCESS, "saving keys to binary file " _YELLOW_("%s"), fptr); - for (i = 0; i < SectorsCnt; i++) { + uint8_t standart[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; + uint8_t tempkey[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; + for (int i = 0; i < SectorsCnt; i++) { if (e_sector[i].foundKey[0]) { num_to_bytes(e_sector[i].Key[0], 6, tempkey); fwrite(tempkey, 1, 6, fkeys); @@ -1324,7 +1318,7 @@ static int CmdHF14AMfNested(const char *Cmd) { fwrite(&standart, 1, 6, fkeys); } } - for (i = 0; i < SectorsCnt; i++) { + for (int i = 0; i < SectorsCnt; i++) { if (e_sector[i].foundKey[1]) { num_to_bytes(e_sector[i].Key[1], 6, tempkey); fwrite(tempkey, 1, 6, fkeys); @@ -2756,7 +2750,6 @@ static int CmdHF14AMfEKeyPrn(const char *Cmd) { int i; uint8_t numSectors; uint8_t data[16]; - uint64_t keyA, keyB; char c = tolower(param_getchar(Cmd, 0)); if (c == 'h') @@ -2777,8 +2770,8 @@ static int CmdHF14AMfEKeyPrn(const char *Cmd) { PrintAndLogEx(WARNING, "error get block %d", FirstBlockOfSector(i) + NumBlocksPerSector(i) - 1); break; } - keyA = bytes_to_num(data, 6); - keyB = bytes_to_num(data + 10, 6); + uint64_t keyA = bytes_to_num(data, 6); + uint64_t keyB = bytes_to_num(data + 10, 6); PrintAndLogEx(NORMAL, "|%03d| %012" PRIx64 " | %012" PRIx64 " |", i, keyA, keyB); } PrintAndLogEx(NORMAL, "|---|----------------|----------------|"); @@ -2875,9 +2868,7 @@ static int CmdHF14AMfCSetBlk(const char *Cmd) { static int CmdHF14AMfCLoad(const char *Cmd) { - uint8_t buf8[16] = {0x00}; uint8_t fillFromEmulator = 0; - int blockNum, flags = 0; bool fillFromJson = false; bool fillFromBin = false; char fileName[50] = {0}; @@ -2895,7 +2886,9 @@ static int CmdHF14AMfCLoad(const char *Cmd) { if (fillFromEmulator) { - for (blockNum = 0; blockNum < 16 * 4; blockNum += 1) { + for (int blockNum = 0; blockNum < 16 * 4; blockNum += 1) { + int flags = 0; + uint8_t buf8[16] = {0x00}; if (mfEmlGetMem(buf8, blockNum, 1)) { PrintAndLogEx(WARNING, "Cant get block: %d", blockNum); return 2; @@ -2949,7 +2942,8 @@ static int CmdHF14AMfCLoad(const char *Cmd) { PrintAndLogEx(INFO, "Copying to magic card"); - blockNum = 0; + int blockNum = 0; + int flags = 0; while (datalen) { // switch on field and send magic sequence @@ -2992,17 +2986,15 @@ static int CmdHF14AMfCLoad(const char *Cmd) { static int CmdHF14AMfCGetBlk(const char *Cmd) { uint8_t data[16] = {0}; - uint8_t blockNo = 0; - int res; char ctmp = tolower(param_getchar(Cmd, 0)); if (strlen(Cmd) < 1 || ctmp == 'h') return usage_hf14_cgetblk(); - blockNo = param_get8(Cmd, 0); + uint8_t blockNo = param_get8(Cmd, 0); PrintAndLogEx(NORMAL, "--block number:%2d ", blockNo); - res = mfCGetBlock(blockNo, data, MAGIC_SINGLE); + int res = mfCGetBlock(blockNo, data, MAGIC_SINGLE); if (res) { PrintAndLogEx(WARNING, "Can't read block. error=%d", res); return PM3_ESOFT; @@ -3028,13 +3020,11 @@ static int CmdHF14AMfCGetBlk(const char *Cmd) { static int CmdHF14AMfCGetSc(const char *Cmd) { uint8_t data[16] = {0}; - uint8_t sector = 0; - int i, res, flags; char ctmp = tolower(param_getchar(Cmd, 0)); if (strlen(Cmd) < 1 || ctmp == 'h') return usage_hf14_cgetsc(); - sector = param_get8(Cmd, 0); + uint8_t sector = param_get8(Cmd, 0); if (sector > 39) { PrintAndLogEx(WARNING, "Sector number must be less then 40"); return PM3_ESOFT; @@ -3049,13 +3039,13 @@ static int CmdHF14AMfCGetSc(const char *Cmd) { start = 128 + (sector - 32) * 16; } - flags = MAGIC_INIT + MAGIC_WUPC; + int flags = MAGIC_INIT + MAGIC_WUPC; - for (i = 0; i < blocks; i++) { + for (int i = 0; i < blocks; i++) { if (i == 1) flags = 0; if (i == blocks - 1) flags = MAGIC_HALT + MAGIC_OFF; - res = mfCGetBlock(start + i, data, flags); + int res = mfCGetBlock(start + i, data, flags); if (res) { PrintAndLogEx(WARNING, "Can't read block. %d error=%d", start + i, res); return PM3_ESOFT; @@ -3075,10 +3065,9 @@ static int CmdHF14AMfCSave(const char *Cmd) { int i, len, flags; uint8_t numblocks = 0, cmdp = 0; uint16_t bytes = 0; - char ctmp; while (param_getchar(Cmd, cmdp) != 0x00 && !errors) { - ctmp = tolower(param_getchar(Cmd, cmdp)); + char ctmp = tolower(param_getchar(Cmd, cmdp)); switch (ctmp) { case 'e': useuid = true; diff --git a/client/cmdhfmfhard.c b/client/cmdhfmfhard.c index 672064987..8ae1b6d1a 100644 --- a/client/cmdhfmfhard.c +++ b/client/cmdhfmfhard.c @@ -1038,12 +1038,7 @@ static void estimate_sum_a8(void) { static int read_nonce_file(char *filename) { FILE *fnonces = NULL; char progress_text[80] = ""; - size_t bytes_read; - uint8_t trgBlockNo; - uint8_t trgKeyType; uint8_t read_buf[9]; - uint32_t nt_enc1, nt_enc2; - uint8_t par_enc; num_acquired_nonces = 0; if ((fnonces = fopen(filename, "rb")) == NULL) { @@ -1052,21 +1047,21 @@ static int read_nonce_file(char *filename) { } snprintf(progress_text, 80, "Reading nonces from file %s...", filename); hardnested_print_progress(0, progress_text, (float)(1LL << 47), 0); - bytes_read = fread(read_buf, 1, 6, fnonces); + size_t bytes_read = fread(read_buf, 1, 6, fnonces); if (bytes_read != 6) { PrintAndLogEx(WARNING, "File reading error."); fclose(fnonces); return 1; } cuid = bytes_to_num(read_buf, 4); - trgBlockNo = bytes_to_num(read_buf + 4, 1); - trgKeyType = bytes_to_num(read_buf + 5, 1); + uint8_t trgBlockNo = bytes_to_num(read_buf + 4, 1); + uint8_t trgKeyType = bytes_to_num(read_buf + 5, 1); bytes_read = fread(read_buf, 1, 9, fnonces); while (bytes_read == 9) { - nt_enc1 = bytes_to_num(read_buf, 4); - nt_enc2 = bytes_to_num(read_buf + 4, 4); - par_enc = bytes_to_num(read_buf + 8, 1); + uint32_t nt_enc1 = bytes_to_num(read_buf, 4); + uint32_t nt_enc2 = bytes_to_num(read_buf + 4, 4); + uint8_t par_enc = bytes_to_num(read_buf + 8, 1); add_nonce(nt_enc1, par_enc >> 4); add_nonce(nt_enc2, par_enc & 0x0f); num_acquired_nonces += 2; @@ -1416,14 +1411,12 @@ static int acquire_nonces(uint8_t blockNo, uint8_t keyType, uint8_t *key, uint8_ } if (!initialize) { - uint32_t nt_enc1, nt_enc2; - uint8_t par_enc; uint16_t num_sampled_nonces = resp.oldarg[2]; uint8_t *bufp = resp.data.asBytes; for (uint16_t i = 0; i < num_sampled_nonces; i += 2) { - nt_enc1 = bytes_to_num(bufp, 4); - nt_enc2 = bytes_to_num(bufp + 4, 4); - par_enc = bytes_to_num(bufp + 8, 1); + uint32_t nt_enc1 = bytes_to_num(bufp, 4); + uint32_t nt_enc2 = bytes_to_num(bufp + 4, 4); + uint8_t par_enc = bytes_to_num(bufp + 8, 1); //PrintAndLogEx(NORMAL, "Encrypted nonce: %08x, encrypted_parity: %02x\n", nt_enc1, par_enc >> 4); num_acquired_nonces += add_nonce(nt_enc1, par_enc >> 4); diff --git a/client/cmdhfmfu.c b/client/cmdhfmfu.c index 77624ee59..740bfa065 100644 --- a/client/cmdhfmfu.c +++ b/client/cmdhfmfu.c @@ -1051,9 +1051,6 @@ uint32_t GetHF14AMfU_Type(void) { TagTypeUL_t tagtype = UNKNOWN; iso14a_card_select_t card; - uint8_t version[10] = {0x00}; - int status = 0; - int len; if (!ul_select(&card)) return UL_ERROR; @@ -1066,7 +1063,8 @@ uint32_t GetHF14AMfU_Type(void) { if (card.uid[0] != 0x05) { - len = ulev1_getVersion(version, sizeof(version)); + uint8_t version[10] = {0x00}; + int len = ulev1_getVersion(version, sizeof(version)); DropField(); switch (len) { @@ -1112,7 +1110,7 @@ uint32_t GetHF14AMfU_Type(void) { // do UL_C check first... uint8_t nonce[11] = {0x00}; - status = ulc_requestAuthentication(nonce, sizeof(nonce)); + int status = ulc_requestAuthentication(nonce, sizeof(nonce)); DropField(); if (status > 1) { tagtype = UL_C; @@ -1944,10 +1942,8 @@ static int CmdHF14AMfUDump(const char *Cmd) { iso14a_card_select_t card; mfu_dump_t dump_file_data; - uint8_t get_pack[] = {0, 0}; uint8_t get_version[] = {0, 0, 0, 0, 0, 0, 0, 0}; uint8_t get_counter_tearing[][4] = {{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}}; - uint8_t dummy_pack[] = {0, 0}; uint8_t get_signature[32]; memset(get_signature, 0, sizeof(get_signature)); @@ -1955,6 +1951,7 @@ static int CmdHF14AMfUDump(const char *Cmd) { // VERSION, SIGNATURE, COUNTERS, TEARING, PACK, if (!(tagtype & UL_C || tagtype & UL)) { //attempt to read pack + uint8_t get_pack[] = {0, 0}; if (!ul_auth_select(&card, tagtype, true, authKeyPtr, get_pack, sizeof(get_pack))) { //reset pack get_pack[0] = 0; @@ -1969,9 +1966,10 @@ static int CmdHF14AMfUDump(const char *Cmd) { memcpy(data + (pages * 4) - 4, get_pack, sizeof(get_pack)); } - if (hasAuthKey) + if (hasAuthKey) { + uint8_t dummy_pack[] = {0, 0}; ul_auth_select(&card, tagtype, hasAuthKey, authKeyPtr, dummy_pack, sizeof(dummy_pack)); - else + } else ul_select(&card); ulev1_getVersion(get_version, sizeof(get_version)); @@ -1981,9 +1979,10 @@ static int CmdHF14AMfUDump(const char *Cmd) { } DropField(); - if (hasAuthKey) + if (hasAuthKey) { + uint8_t dummy_pack[] = {0, 0}; ul_auth_select(&card, tagtype, hasAuthKey, authKeyPtr, dummy_pack, sizeof(dummy_pack)); - else + } else ul_select(&card); ulev1_readSignature(get_signature, sizeof(get_signature)); diff --git a/client/cmdlfem4x.c b/client/cmdlfem4x.c index 9b175f212..4b74a5811 100644 --- a/client/cmdlfem4x.c +++ b/client/cmdlfem4x.c @@ -898,7 +898,6 @@ int EM4x50Read(const char *Cmd, bool verbose) { // get rid of leading crap snprintf(tmp, sizeof(tmp), "%i", skip); CmdLtrim(tmp); - bool pTest; bool AllPTest = true; // now work through remaining buffer printing out data blocks block = 0; @@ -930,7 +929,7 @@ int EM4x50Read(const char *Cmd, bool verbose) { //set DemodBufferLen to just one block DemodBufferLen = skip / clk; //test parities - pTest = EM_ByteParityTest(DemodBuffer, DemodBufferLen, 5, 9, 0); + bool pTest = EM_ByteParityTest(DemodBuffer, DemodBufferLen, 5, 9, 0); pTest &= EM_EndParityTest(DemodBuffer, DemodBufferLen, 5, 9, 0); AllPTest &= pTest; //get output diff --git a/client/cmdlfindala.c b/client/cmdlfindala.c index d0eabfc4b..41c292a5b 100644 --- a/client/cmdlfindala.c +++ b/client/cmdlfindala.c @@ -89,9 +89,8 @@ static int CmdIndalaDemod(const char *Cmd) { setClockGrid(g_DemodClock, g_DemodStartIdx + (idx * g_DemodClock)); //convert UID to HEX - uint32_t uid1, uid2, uid3, uid4, uid5, uid6, uid7; - uid1 = bytebits_to_byte(DemodBuffer, 32); - uid2 = bytebits_to_byte(DemodBuffer + 32, 32); + uint32_t uid1 = bytebits_to_byte(DemodBuffer, 32); + uint32_t uid2 = bytebits_to_byte(DemodBuffer + 32, 32); uint64_t foo = (((uint64_t)uid1 << 32) & 0x1FFFFFFF) | (uid2 & 0x7FFFFFFF); if (DemodBufferLen == 64) { @@ -137,11 +136,11 @@ static int CmdIndalaDemod(const char *Cmd) { } else { - uid3 = bytebits_to_byte(DemodBuffer + 64, 32); - uid4 = bytebits_to_byte(DemodBuffer + 96, 32); - uid5 = bytebits_to_byte(DemodBuffer + 128, 32); - uid6 = bytebits_to_byte(DemodBuffer + 160, 32); - uid7 = bytebits_to_byte(DemodBuffer + 192, 32); + uint32_t uid3 = bytebits_to_byte(DemodBuffer + 64, 32); + uint32_t uid4 = bytebits_to_byte(DemodBuffer + 96, 32); + uint32_t uid5 = bytebits_to_byte(DemodBuffer + 128, 32); + uint32_t uid6 = bytebits_to_byte(DemodBuffer + 160, 32); + uint32_t uid7 = bytebits_to_byte(DemodBuffer + 192, 32); PrintAndLogEx( SUCCESS , "Indala Found - bitlength %d, Raw 0x%x%08x%08x%08x%08x%08x%08x" @@ -288,9 +287,9 @@ static int CmdIndalaDemodAlt(const char *Cmd) { } //convert UID to HEX - uint32_t uid1, uid2, uid3, uid4, uid5, uid6, uid7; int idx; - uid1 = uid2 = 0; + uint32_t uid1 = 0; + uint32_t uid2 = 0; if (uidlen == 64) { for (idx = 0; idx < 64; idx++) { @@ -304,7 +303,11 @@ static int CmdIndalaDemodAlt(const char *Cmd) { } PrintAndLogEx(SUCCESS, "UID | %s (%x%08x)", showbits, uid1, uid2); } else { - uid3 = uid4 = uid5 = uid6 = uid7 = 0; + uint32_t uid3 = 0; + uint32_t uid4 = 0; + uint32_t uid5 = 0; + uint32_t uid6 = 0; + uint32_t uid7 = 0; for (idx = 0; idx < 224; idx++) { uid1 = (uid1 << 1) | (uid2 >> 31); diff --git a/client/cmdlfnedap.c b/client/cmdlfnedap.c index 636a23b33..d081ff56c 100644 --- a/client/cmdlfnedap.c +++ b/client/cmdlfnedap.c @@ -284,20 +284,19 @@ static int CmdLFNedapChk(const char *Cmd) { //uint8_t last = GetParity(data, EVEN, 62); //PrintAndLogEx(NORMAL, "TEST PARITY:: %d | %d ", DemodBuffer[62], last); - uint8_t cl = 0x1D, ch = 0x1D, carry = 0; - uint8_t al, bl, temp; + uint8_t cl = 0x1D, ch = 0x1D; for (int i = len; i >= 0; --i) { - al = data[i]; + uint8_t al = data[i]; for (int j = 8; j > 0; --j) { - bl = al ^ ch; + uint8_t bl = al ^ ch; //PrintAndLogEx(NORMAL, "BL %02x | CH %02x \n", al, ch); - carry = (cl & 0x80) ? 1 : 0; + uint8_t carry = (cl & 0x80) ? 1 : 0; cl <<= 1; - temp = (ch & 0x80) ? 1 : 0; + uint8_t temp = (ch & 0x80) ? 1 : 0; ch = (ch << 1) | carry; carry = temp; @@ -305,7 +304,7 @@ static int CmdLFNedapChk(const char *Cmd) { al <<= 1; carry = (bl & 0x80) ? 1 : 0; - bl <<= 1; +// bl <<= 1; if (carry) { cl ^= 0x21; diff --git a/client/cmdlfpresco.c b/client/cmdlfpresco.c index 76a67f2b7..8f3e22ee1 100644 --- a/client/cmdlfpresco.c +++ b/client/cmdlfpresco.c @@ -213,7 +213,6 @@ int detectPresco(uint8_t *dest, size_t *size) { // convert base 12 ID to sitecode & usercode & 8 bit other unknown code int getWiegandFromPresco(const char *Cmd, uint32_t *sitecode, uint32_t *usercode, uint32_t *fullcode, bool *Q5) { - uint8_t val = 0; bool hex = false, errors = false; uint8_t cmdp = 0; char id[11]; @@ -250,8 +249,8 @@ int getWiegandFromPresco(const char *Cmd, uint32_t *sitecode, uint32_t *usercode if (errors || cmdp == 0) return PM3_EINVARG; if (!hex) { + uint8_t val = 0; for (int index = 0; index < strlen(id); ++index) { - // Get value from number string. if (id[index] == '*') val = 10; diff --git a/client/cmdlfpyramid.c b/client/cmdlfpyramid.c index 80ef7b94f..f5db47cb3 100644 --- a/client/cmdlfpyramid.c +++ b/client/cmdlfpyramid.c @@ -154,28 +154,27 @@ static int CmdPyramidDemod(const char *Cmd) { } uint8_t fmtLen = size - j - 8; - uint32_t fc, cardnum, code1; if (fmtLen == 26) { - fc = bytebits_to_byte(bits + 73, 8); - cardnum = bytebits_to_byte(bits + 81, 16); - code1 = bytebits_to_byte(bits + 72, fmtLen); + uint32_t fc = bytebits_to_byte(bits + 73, 8); + uint32_t cardnum = bytebits_to_byte(bits + 81, 16); + uint32_t code1 = bytebits_to_byte(bits + 72, fmtLen); PrintAndLogEx(SUCCESS, "Pyramid ID Found - BitLength: %d, FC: %d, Card: %d - Wiegand: %x, Raw: %08x%08x%08x%08x", fmtLen, fc, cardnum, code1, rawHi3, rawHi2, rawHi, rawLo); } else if (fmtLen == 45) { fmtLen = 42; //end = 10 bits not 7 like 26 bit fmt - fc = bytebits_to_byte(bits + 53, 10); - cardnum = bytebits_to_byte(bits + 63, 32); + uint32_t fc = bytebits_to_byte(bits + 53, 10); + uint32_t cardnum = bytebits_to_byte(bits + 63, 32); PrintAndLogEx(SUCCESS, "Pyramid ID Found - BitLength: %d, FC: %d, Card: %d - Raw: %08x%08x%08x%08x", fmtLen, fc, cardnum, rawHi3, rawHi2, rawHi, rawLo); /* } else if (fmtLen > 32) { - cardnum = bytebits_to_byte(bits + 81, 16); - //code1 = bytebits_to_byte(bits+(size-fmtLen),fmtLen-32); + uint32_t cardnum = bytebits_to_byte(bits + 81, 16); + //uint32_t code1 = bytebits_to_byte(bits+(size-fmtLen),fmtLen-32); //code2 = bytebits_to_byte(bits+(size-32),32); PrintAndLogEx(SUCCESS, "Pyramid ID Found - BitLength: %d -unknown BitLength- (%d), Raw: %08x%08x%08x%08x", fmtLen, cardnum, rawHi3, rawHi2, rawHi, rawLo); */ } else { - cardnum = bytebits_to_byte(bits + 81, 16); - //code1 = bytebits_to_byte(bits+(size-fmtLen),fmtLen); + uint32_t cardnum = bytebits_to_byte(bits + 81, 16); + //uint32_t code1 = bytebits_to_byte(bits+(size-fmtLen),fmtLen); PrintAndLogEx(SUCCESS, "Pyramid ID Found - BitLength: %d -unknown BitLength- (%d), Raw: %08x%08x%08x%08x", fmtLen, cardnum, rawHi3, rawHi2, rawHi, rawLo); } diff --git a/client/cmdlft55xx.c b/client/cmdlft55xx.c index 3bccd79ba..d78119059 100644 --- a/client/cmdlft55xx.c +++ b/client/cmdlft55xx.c @@ -918,9 +918,8 @@ static bool testBitRate(uint8_t readRate, uint8_t clk) { bool test(uint8_t mode, uint8_t *offset, int *fndBitRate, uint8_t clk, bool *Q5) { if (DemodBufferLen < 64) return false; - uint8_t si; for (uint8_t idx = 28; idx < 64; idx++) { - si = idx; + uint8_t si = idx; if (PackBits(si, 28, DemodBuffer) == 0x00) continue; uint8_t safer = PackBits(si, 4, DemodBuffer); diff --git a/client/comms.c b/client/comms.c index 89e9ec610..7d4a9dc9c 100644 --- a/client/comms.c +++ b/client/comms.c @@ -694,7 +694,6 @@ bool WaitForResponseTimeoutW(uint32_t cmd, PacketResponseNG *response, size_t ms ms_timeout += communication_delay(); __atomic_store_n(&timeout_start_time, msclock(), __ATOMIC_SEQ_CST); - uint64_t tmp_clk; // Wait until the command is received while (true) { @@ -705,7 +704,7 @@ bool WaitForResponseTimeoutW(uint32_t cmd, PacketResponseNG *response, size_t ms } } - tmp_clk = __atomic_load_n(&timeout_start_time, __ATOMIC_SEQ_CST); + uint64_t tmp_clk = __atomic_load_n(&timeout_start_time, __ATOMIC_SEQ_CST); if ((ms_timeout != (size_t) -1) && (msclock() - tmp_clk > ms_timeout)) break; @@ -778,7 +777,6 @@ static bool dl_it(uint8_t *dest, uint32_t bytes, uint32_t start_index, PacketRes uint32_t bytes_completed = 0; __atomic_store_n(&timeout_start_time, msclock(), __ATOMIC_SEQ_CST); - uint64_t tmp_clk; // Add delay depending on the communication channel & speed if (ms_timeout != (size_t) -1) @@ -815,7 +813,7 @@ static bool dl_it(uint8_t *dest, uint32_t bytes, uint32_t start_index, PacketRes } } - tmp_clk = __atomic_load_n(&timeout_start_time, __ATOMIC_SEQ_CST); + uint64_t tmp_clk = __atomic_load_n(&timeout_start_time, __ATOMIC_SEQ_CST); if (msclock() - tmp_clk > ms_timeout) { PrintAndLogEx(FAILED, "Timed out while trying to download data from device"); break; diff --git a/client/emv/apduinfo.c b/client/emv/apduinfo.c index 27e48156c..df44ef961 100644 --- a/client/emv/apduinfo.c +++ b/client/emv/apduinfo.c @@ -279,14 +279,13 @@ static int CodeCmp(const char *code1, const char *code2) { const APDUCode *GetAPDUCode(uint8_t sw1, uint8_t sw2) { char buf[6] = {0}; - int res; int mineq = APDUCodeTableLen; int mineqindx = 0; sprintf(buf, "%02X%02X", sw1, sw2); for (int i = 0; i < APDUCodeTableLen; i++) { - res = CodeCmp(APDUCodeTable[i].ID, buf); + int res = CodeCmp(APDUCodeTable[i].ID, buf); // equal if (res == 0) { diff --git a/client/fido/cose.c b/client/fido/cose.c index 82f6999b8..c62d6cfb3 100644 --- a/client/fido/cose.c +++ b/client/fido/cose.c @@ -220,9 +220,9 @@ int COSEGetECDSAKey(uint8_t *data, size_t datalen, bool verbose, uint8_t *public } // d - private key - uint8_t private_key[128] = {0}; res = CborMapGetKeyById(&parser, &map, data, datalen, -4); if (!res) { + uint8_t private_key[128] = {0}; res = CborGetBinStringValue(&map, private_key, sizeof(private_key), &len); cbor_check(res); if (verbose) diff --git a/client/fpga_compress.c b/client/fpga_compress.c index 7e5616813..7cd4652e1 100644 --- a/client/fpga_compress.c +++ b/client/fpga_compress.c @@ -397,10 +397,6 @@ static int generate_fpga_version_info(FILE *infile[], char *infile_names[], int } int main(int argc, char **argv) { - FILE **infiles; - char **infile_names; - FILE *outfile; - if (argc == 1 || argc == 2) { usage(); return (EXIT_FAILURE); @@ -408,7 +404,7 @@ int main(int argc, char **argv) { if (!strcmp(argv[1], "-d")) { // Decompress - infiles = calloc(1, sizeof(FILE *)); + FILE **infiles = calloc(1, sizeof(FILE *)); if (argc != 4) { usage(); free(infiles); @@ -420,7 +416,7 @@ int main(int argc, char **argv) { free(infiles); return (EXIT_FAILURE); } - outfile = fopen(argv[3], "wb"); + FILE *outfile = fopen(argv[3], "wb"); if (outfile == NULL) { fprintf(stderr, "Error. Cannot open output file %s\n\n", argv[3]); free(infiles); @@ -450,8 +446,8 @@ int main(int argc, char **argv) { num_input_files = argc - 2; } - infiles = calloc(num_input_files, sizeof(FILE *)); - infile_names = calloc(num_input_files, sizeof(char *)); + FILE **infiles = calloc(num_input_files, sizeof(FILE *)); + char **infile_names = calloc(num_input_files, sizeof(char *)); for (uint16_t i = 0; i < num_input_files; i++) { infile_names[i] = argv[i + ((hardnested_mode || generate_version_file) ? 2 : 1)]; infiles[i] = fopen(infile_names[i], "rb"); @@ -462,7 +458,7 @@ int main(int argc, char **argv) { return (EXIT_FAILURE); } } - outfile = fopen(argv[argc - 1], "wb"); + FILE *outfile = fopen(argv[argc - 1], "wb"); if (outfile == NULL) { fprintf(stderr, "Error. Cannot open output file %s\n\n", argv[argc - 1]); free(infile_names); diff --git a/client/loclass/ikeys.c b/client/loclass/ikeys.c index 0c0235b31..70605942f 100644 --- a/client/loclass/ikeys.c +++ b/client/loclass/ikeys.c @@ -257,17 +257,15 @@ void hash0(uint64_t c, uint8_t k[8]) { // z0-z7 6 bits each : 48 bits uint8_t x = (c & 0xFF00000000000000) >> 56; uint8_t y = (c & 0x00FF000000000000) >> 48; - int n; - uint8_t zn, zn4, _zn, _zn4; uint64_t zP = 0; - for (n = 0; n < 4 ; n++) { - zn = getSixBitByte(c, n); + for (int n = 0; n < 4 ; n++) { + uint8_t zn = getSixBitByte(c, n); - zn4 = getSixBitByte(c, n + 4); + uint8_t zn4 = getSixBitByte(c, n + 4); - _zn = (zn % (63 - n)) + n; - _zn4 = (zn4 % (64 - n)) + n; + uint8_t _zn = (zn % (63 - n)) + n; + uint8_t _zn4 = (zn4 % (64 - n)) + n; pushbackSixBitByte(&zP, _zn, n); pushbackSixBitByte(&zP, _zn4, n + 4); @@ -300,9 +298,8 @@ void hash0(uint64_t c, uint8_t k[8]) { printState("0|0|z~", zTilde); - int i; - int zerocounter = 0 ; - for (i = 0; i < 8; i++) { +// int zerocounter = 0 ; + for (int i = 0; i < 8; i++) { // the key on index i is first a bit from y // then six bits from z, // then a bit from p @@ -340,9 +337,9 @@ void hash0(uint64_t c, uint8_t k[8]) { k[i] |= zTilde_i & 0x7E; k[i] |= (~p_i) & 1; } - if ((k[i] & 1) == 0) { - zerocounter++; - } +// if ((k[i] & 1) == 0) { +// zerocounter++; +// } } } /** diff --git a/client/mifare/mfkey.c b/client/mifare/mfkey.c index 3ce2975b9..178da7fe4 100644 --- a/client/mifare/mfkey.c +++ b/client/mifare/mfkey.c @@ -45,7 +45,7 @@ uint32_t intersection(uint64_t *listA, uint64_t *listB) { uint32_t nonce2key(uint32_t uid, uint32_t nt, uint32_t nr, uint32_t ar, uint64_t par_info, uint64_t ks_info, uint64_t **keys) { struct Crypto1State *states; uint32_t i, pos; - uint8_t bt, ks3x[8], par[8][8]; + uint8_t ks3x[8], par[8][8]; uint64_t key_recovered; uint64_t *keylist; @@ -54,7 +54,7 @@ uint32_t nonce2key(uint32_t uid, uint32_t nt, uint32_t nr, uint32_t ar, uint64_t for (pos = 0; pos < 8; pos++) { ks3x[7 - pos] = (ks_info >> (pos * 8)) & 0x0F; - bt = (par_info >> (pos * 8)) & 0xFF; + uint8_t bt = (par_info >> (pos * 8)) & 0xFF; par[7 - pos][0] = (bt >> 0) & 1; par[7 - pos][1] = (bt >> 1) & 1; diff --git a/client/mifare/mifarehost.c b/client/mifare/mifarehost.c index 076d3f092..7bbd61812 100644 --- a/client/mifare/mifarehost.c +++ b/client/mifare/mifarehost.c @@ -339,16 +339,16 @@ int mfnested(uint8_t blockNo, uint8_t keyType, uint8_t *key, uint8_t trgBlockNo, while (p1 <= statelists[0].tail.sltail && p2 <= statelists[1].tail.sltail) { if (Compare16Bits(p1, p2) == 0) { - struct Crypto1State savestate, *savep = &savestate; + struct Crypto1State savestate; savestate = *p1; - while (Compare16Bits(p1, savep) == 0 && p1 <= statelists[0].tail.sltail) { + while (Compare16Bits(p1, &savestate) == 0 && p1 <= statelists[0].tail.sltail) { *p3 = *p1; lfsr_rollback_word(p3, statelists[0].nt ^ statelists[0].uid, 0); p3++; p1++; } savestate = *p2; - while (Compare16Bits(p2, savep) == 0 && p2 <= statelists[1].tail.sltail) { + while (Compare16Bits(p2, &savestate) == 0 && p2 <= statelists[1].tail.sltail) { *p4 = *p2; lfsr_rollback_word(p4, statelists[1].nt ^ statelists[1].uid, 0); p4++; @@ -710,10 +710,6 @@ void mf_crypto1_decrypt(struct Crypto1State *pcs, uint8_t *data, int len, bool i } int mfTraceDecode(uint8_t *data_src, int len, bool wantSaveToEmlFile) { - uint32_t nt = 0; // tag challenge - uint32_t nr_enc = 0; // encrypted reader challenge - uint32_t ar_enc = 0; // encrypted reader response - uint32_t at_enc = 0; // encrypted tag response if (traceState == TRACE_ERROR) return PM3_ESOFT; @@ -831,6 +827,10 @@ int mfTraceDecode(uint8_t *data_src, int len, bool wantSaveToEmlFile) { break; case TRACE_AUTH_OK: if (len == 4) { + uint32_t nt = 0; // tag challenge + uint32_t nr_enc = 0; // encrypted reader challenge + uint32_t ar_enc = 0; // encrypted reader response + uint32_t at_enc = 0; // encrypted tag response traceState = TRACE_IDLE; // encrypted tag response at_enc = bytes_to_num(data, 4); diff --git a/client/pm3_binlib.c b/client/pm3_binlib.c index c90fc96f9..d694ee3b0 100644 --- a/client/pm3_binlib.c +++ b/client/pm3_binlib.c @@ -167,12 +167,11 @@ static int l_unpack(lua_State *L) { /** unpack(f,s, [init]) */ case OP_HEX: { luaL_Buffer buf; char hdigit = '0'; - int val = 0; luaL_buffinit(L, &buf); N++; if (i + N > len) {done = 1; break;} for (unsigned int ii = i; ii < i + N; ii++) { - val = s[ii] & 0xF0; + int val = s[ii] & 0xF0; val = val >> 4; hdigit = HEXDIGITS(val); luaL_addlstring(&buf, &hdigit, 1); diff --git a/client/scripting.c b/client/scripting.c index 19914c258..cfa361256 100644 --- a/client/scripting.c +++ b/client/scripting.c @@ -338,6 +338,7 @@ static int l_WaitForResponseTimeout(lua_State *L) { memcpy(foo + n, &resp.ng, sizeof(resp.ng)); n += sizeof(resp.ng); + (void) n; //Push it as a string lua_pushlstring(L, (const char *)&foo, sizeof(foo)); @@ -995,7 +996,7 @@ static int l_T55xx_detect(lua_State *L) { // static int l_ndefparse(lua_State *L) { - size_t len = 0, size; + size_t size; //Check number of arguments int n = lua_gettop(L); @@ -1021,7 +1022,6 @@ static int l_ndefparse(lua_State *L) { for (int i = 0; i < size; i += 2) { sscanf(&p_data[i], "%02x", &tmp); data[i >> 1] = tmp & 0xFF; - len++; } } diff --git a/client/ui.c b/client/ui.c index f233da60a..0dcaca9e6 100644 --- a/client/ui.c +++ b/client/ui.c @@ -234,13 +234,13 @@ void memcpy_filter_ansi(void *dest, const void *src, size_t n, bool filter) { uint8_t *rsrc = (uint8_t *)src; uint16_t si = 0; for (uint16_t i = 0; i < n; i++) { - if ((rsrc[i] == '\x1b') - && (i < n - 1) + if ((i < n - 1) + && (rsrc[i] == '\x1b') && (rsrc[i + 1] >= 0x40) && (rsrc[i + 1] <= 0x5F)) { // entering ANSI sequence i++; - if ((rsrc[i] == '[') && (i < n - 1)) { // entering CSI sequence + if ((i < n - 1) && (rsrc[i] == '[')) { // entering CSI sequence i++; while ((i < n - 1) && (rsrc[i] >= 0x30) && (rsrc[i] <= 0x3F)) { // parameter bytes diff --git a/common/bucketsort.c b/common/bucketsort.c index dd70755ec..9ede6ee6e 100644 --- a/common/bucketsort.c +++ b/common/bucketsort.c @@ -29,10 +29,9 @@ extern void bucket_sort_intersect(uint32_t *const estart, uint32_t *const estop, // write back intersecting buckets as sorted list. // fill in bucket_info with head and tail of the bucket contents in the list and number of non-empty buckets. - uint32_t nonempty_bucket; for (uint32_t i = 0; i < 2; i++) { p1 = start[i]; - nonempty_bucket = 0; + uint32_t nonempty_bucket = 0; for (uint32_t j = 0x00; j <= 0xff; j++) { if (bucket[0][j].bp != bucket[0][j].head && bucket[1][j].bp != bucket[1][j].head) { // non-empty intersecting buckets only bucket_info->bucket_info[i][nonempty_bucket].head = p1; diff --git a/common/crapto1/crapto1.c b/common/crapto1/crapto1.c index a74fbb36c..ba55227b5 100644 --- a/common/crapto1/crapto1.c +++ b/common/crapto1/crapto1.c @@ -369,12 +369,12 @@ uint32_t lfsr_rollback_word(struct Crypto1State *s, uint32_t in, int fb) { */ static uint16_t *dist = 0; int nonce_distance(uint32_t from, uint32_t to) { - uint16_t x, i; if (!dist) { dist = calloc(2 << 16, sizeof(uint8_t)); if (!dist) return -1; - for (x = i = 1; i; ++i) { + uint16_t x = 1; + for (uint16_t i = 1; i; ++i) { dist[(x & 0xff) << 8 | x >> 8] = i; x = x >> 1 | (x ^ x >> 2 ^ x >> 3 ^ x >> 5) << 15; } @@ -412,12 +412,12 @@ uint32_t *lfsr_prefix_ks(uint8_t ks[8], int isodd) { uint32_t *candidates = calloc(4 << 10, sizeof(uint8_t)); if (!candidates) return 0; - uint32_t c, entry; - int size = 0, i, good; + int size = 0; - for (i = 0; i < 1 << 21; ++i) { - for (c = 0, good = 1; good && c < 8; ++c) { - entry = i ^ fastfwd[isodd][c]; + for (int i = 0; i < 1 << 21; ++i) { + int good = 1; + for (uint32_t c = 0; good && c < 8; ++c) { + uint32_t entry = i ^ fastfwd[isodd][c]; good &= (BIT(ks[c], isodd) == filter(entry >> 1)); good &= (BIT(ks[c], isodd + 2) == filter(entry)); } @@ -434,24 +434,24 @@ uint32_t *lfsr_prefix_ks(uint8_t ks[8], int isodd) { * helper function which eliminates possible secret states using parity bits */ static struct Crypto1State *check_pfx_parity(uint32_t prefix, uint32_t rresp, uint8_t parities[8][8], uint32_t odd, uint32_t even, struct Crypto1State *sl, uint32_t no_par) { - uint32_t ks1, nr, ks2, rr, ks3, c, good = 1; + uint32_t good = 1; - for (c = 0; good && c < 8; ++c) { + for (uint32_t c = 0; good && c < 8; ++c) { sl->odd = odd ^ fastfwd[1][c]; sl->even = even ^ fastfwd[0][c]; lfsr_rollback_bit(sl, 0, 0); lfsr_rollback_bit(sl, 0, 0); - ks3 = lfsr_rollback_bit(sl, 0, 0); - ks2 = lfsr_rollback_word(sl, 0, 0); - ks1 = lfsr_rollback_word(sl, prefix | c << 5, 1); + uint32_t ks3 = lfsr_rollback_bit(sl, 0, 0); + uint32_t ks2 = lfsr_rollback_word(sl, 0, 0); + uint32_t ks1 = lfsr_rollback_word(sl, prefix | c << 5, 1); if (no_par) break; - nr = ks1 ^ (prefix | c << 5); - rr = ks2 ^ rresp; + uint32_t nr = ks1 ^ (prefix | c << 5); + uint32_t rr = ks2 ^ rresp; good &= evenparity32(nr & 0x000000ff) ^ parities[c][3] ^ BIT(ks2, 24); good &= evenparity32(rr & 0xff000000) ^ parities[c][4] ^ BIT(ks2, 16); diff --git a/common/crc16.c b/common/crc16.c index 917de3595..47d408660 100644 --- a/common/crc16.c +++ b/common/crc16.c @@ -51,16 +51,14 @@ void init_table(CrcType_t crctype) { void generate_table(uint16_t polynomial, bool refin) { - uint16_t i, j, crc, c; - - for (i = 0; i < 256; i++) { - crc = 0; + for (uint16_t i = 0; i < 256; i++) { + uint16_t c, crc = 0; if (refin) c = reflect8(i) << 8; else c = i << 8; - for (j = 0; j < 8; j++) { + for (uint16_t j = 0; j < 8; j++) { if ((crc ^ c) & 0x8000) crc = (crc << 1) ^ polynomial; @@ -109,11 +107,10 @@ uint16_t crc16_fast(uint8_t const *d, size_t n, uint16_t initval, bool refin, bo // bit looped solution TODO REMOVED uint16_t update_crc16_ex(uint16_t crc, uint8_t c, uint16_t polynomial) { - uint16_t i, v, tmp = 0; + uint16_t tmp = 0; + uint16_t v = (crc ^ c) & 0xff; - v = (crc ^ c) & 0xff; - - for (i = 0; i < 8; i++) { + for (uint16_t i = 0; i < 8; i++) { if ((tmp ^ v) & 1) tmp = (tmp >> 1) ^ polynomial; @@ -133,9 +130,8 @@ uint16_t Crc16(uint8_t const *d, size_t length, uint16_t remainder, uint16_t pol if (length == 0) return (~remainder); - uint8_t c; for (uint32_t i = 0; i < length; ++i) { - c = d[i]; + uint8_t c = d[i]; if (refin) c = reflect8(c); // xor in at msb diff --git a/common/lfdemod.c b/common/lfdemod.c index 0bc4d8d96..a3aaf3f26 100644 --- a/common/lfdemod.c +++ b/common/lfdemod.c @@ -333,7 +333,7 @@ void getNextHigh(uint8_t *samples, size_t size, int high, size_t *i) { // load wave counters bool loadWaveCounters(uint8_t *samples, size_t size, int lowToLowWaveLen[], int highToLowWaveLen[], int *waveCnt, int *skip, int *minClk, int *high, int *low) { - size_t i = 0, firstLow, firstHigh; + size_t i = 0; //size_t testsize = (size < 512) ? size : 512; // just noise - no super good detection. good enough @@ -352,10 +352,10 @@ bool loadWaveCounters(uint8_t *samples, size_t size, int lowToLowWaveLen[], int // populate tmpbuff buffer with pulse lengths while (i < size) { // measure from low to low - firstLow = i; + size_t firstLow = i; //find first high point for this wave getNextHigh(samples, size, *high, &i); - firstHigh = i; + size_t firstHigh = i; getNextLow(samples, size, *low, &i); diff --git a/common/usart.c b/common/usart.c index 3b1587f40..c7b4a5ebb 100644 --- a/common/usart.c +++ b/common/usart.c @@ -112,7 +112,7 @@ uint16_t usart_rxdata_available(void) { uint32_t usart_read_ng(uint8_t *data, size_t len) { if (len == 0) return 0; - uint32_t packetSize, nbBytesRcv = 0; + uint32_t nbBytesRcv = 0; uint32_t try = 0; // uint32_t highest_observed_try = 0; // Empirical max try observed: 3000000 / USART_BAUD_RATE @@ -129,7 +129,7 @@ uint32_t usart_read_ng(uint8_t *data, size_t len) { while (len) { uint32_t available = usart_rxdata_available(); - packetSize = MIN(available, len); + uint32_t packetSize = MIN(available, len); if (available > 0) { // Dbprintf_usb("Dbg USART ask %d bytes, available %d bytes, packetsize %d bytes", len, available, packetSize); // highest_observed_try = MAX(highest_observed_try, try); diff --git a/common/usb_cdc.c b/common/usb_cdc.c index 63d5c66d0..25a5d80d9 100644 --- a/common/usb_cdc.c +++ b/common/usb_cdc.c @@ -766,11 +766,10 @@ int usb_write(const uint8_t *data, const size_t len) { //* \brief Send Data through the control endpoint //*---------------------------------------------------------------------------- void AT91F_USB_SendData(AT91PS_UDP pUdp, const char *pData, uint32_t length) { - uint32_t cpt = 0; AT91_REG csr; do { - cpt = MIN(length, AT91C_EP_CONTROL_SIZE); + uint32_t cpt = MIN(length, AT91C_EP_CONTROL_SIZE); length -= cpt; while (cpt--) diff --git a/tools/nonce2key/crapto1.c b/tools/nonce2key/crapto1.c index bc9165f0e..3be92c0f2 100644 --- a/tools/nonce2key/crapto1.c +++ b/tools/nonce2key/crapto1.c @@ -428,12 +428,12 @@ uint32_t lfsr_rollback_word(struct Crypto1State *s, uint32_t in, int fb) { */ static uint16_t *dist = 0; int nonce_distance(uint32_t from, uint32_t to) { - uint16_t x, i; if (!dist) { dist = calloc(2 << 16, sizeof(uint8_t)); if (!dist) return -1; - for (x = i = 1; i; ++i) { + uint16_t x = 1; + for (uint16_t i = 1; i; ++i) { dist[(x & 0xff) << 8 | x >> 8] = i; x = x >> 1 | (x ^ x >> 2 ^ x >> 3 ^ x >> 5) << 15; } diff --git a/tools/nonce2key/nonce2key.c b/tools/nonce2key/nonce2key.c index 7c1514a28..f4cb10e62 100644 --- a/tools/nonce2key/nonce2key.c +++ b/tools/nonce2key/nonce2key.c @@ -5,8 +5,8 @@ int main(const int argc, const char *argv[]) { struct Crypto1State *state; - uint32_t pos, uid, nt, nr, rr, nr_diff; - uint8_t bt, i, ks3x[8], par[8][8]; + uint32_t pos, uid, nt, nr, rr; + uint8_t ks3x[8], par[8][8]; uint64_t key_recovered; uint64_t par_info; uint64_t ks_info; @@ -28,9 +28,9 @@ int main(const int argc, const char *argv[]) { for (pos = 0; pos < 8; pos++) { ks3x[7 - pos] = (ks_info >> (pos * 8)) & 0x0f; - bt = (par_info >> (pos * 8)) & 0xff; + uint8_t bt = (par_info >> (pos * 8)) & 0xff; - for (i = 0; i < 8; i++) { + for (uint8_t i = 0; i < 8; i++) { par[7 - pos][i] = (bt >> i) & 0x01; } } @@ -38,8 +38,8 @@ int main(const int argc, const char *argv[]) { printf("|diff|{nr} |ks3|ks3^5|parity |\n"); printf("+----+--------+---+-----+---------------+\n"); - for (i = 0; i < 8; i++) { - nr_diff = nr | i << 5; + for (uint8_t i = 0; i < 8; i++) { + uint32_t nr_diff = nr | i << 5; printf("| %02x |%08x| %01x | %01x |", i << 5, nr_diff, ks3x[i], ks3x[i] ^ 5); for (pos = 0; pos < 7; pos++)