diff --git a/armsrc/iso14443a.c b/armsrc/iso14443a.c index 17eb156f6..19a79f706 100644 --- a/armsrc/iso14443a.c +++ b/armsrc/iso14443a.c @@ -1818,7 +1818,7 @@ static void PrepareDelayedTransfer(uint16_t delay) { ts->buf[ts->max++] = 0x00; - for (uint16_t i = 0; i < ts->max; i++) { + for (uint32_t i = 0; i < ts->max; i++) { uint8_t bits_to_shift = ts->buf[i] & bitmask; ts->buf[i] = ts->buf[i] >> delay; ts->buf[i] = ts->buf[i] | (bits_shifted << (8 - delay)); @@ -2321,16 +2321,16 @@ void ReaderTransmit(uint8_t *frame, uint16_t len, uint32_t *timing) { ReaderTransmitBitsPar(frame, len * 8, par, timing); } -static int ReaderReceiveOffset(uint8_t *receivedAnswer, uint16_t offset, uint8_t *par) { +static uint16_t ReaderReceiveOffset(uint8_t *receivedAnswer, uint16_t offset, uint8_t *par) { if (!GetIso14443aAnswerFromTag(receivedAnswer, par, offset)) - return false; + return 0; LogTrace(receivedAnswer, Demod.len, Demod.startTime * 16 - DELAY_AIR2ARM_AS_READER, Demod.endTime * 16 - DELAY_AIR2ARM_AS_READER, par, false); return Demod.len; } -int ReaderReceive(uint8_t *receivedAnswer, uint8_t *par) { +uint16_t ReaderReceive(uint8_t *receivedAnswer, uint8_t *par) { if (!GetIso14443aAnswerFromTag(receivedAnswer, par, 0)) - return false; + return 0; LogTrace(receivedAnswer, Demod.len, Demod.startTime * 16 - DELAY_AIR2ARM_AS_READER, Demod.endTime * 16 - DELAY_AIR2ARM_AS_READER, par, false); return Demod.len; } @@ -2578,7 +2578,7 @@ int iso14443a_select_cardEx(uint8_t *uid_ptr, iso14a_card_select_t *p_card, uint } // finally, add the last bits and BCC of the UID - for (uint16_t i = collision_answer_offset; i < Demod.len * 8; i++, uid_resp_bits++) { + for (uint32_t i = collision_answer_offset; i < Demod.len * 8; i++, uid_resp_bits++) { uint16_t UIDbit = (resp[i / 8] >> (i % 8)) & 0x01; uid_resp[uid_resp_bits / 8] |= UIDbit << (uid_resp_bits % 8); } @@ -2972,7 +2972,7 @@ void ReaderIso14443a(PacketCommandNG *c) { } } else { // want to send complete bytes only if ((param & ISO14A_TOPAZMODE)) { - uint16_t i = 0; + size_t i = 0; ReaderTransmitBitsPar(&cmd[i++], 7, NULL, NULL); // first byte: 7 bits, no paritiy while (i < len) { ReaderTransmitBitsPar(&cmd[i++], 8, NULL, NULL); // following bytes: 8 bits, no paritiy diff --git a/armsrc/iso14443a.h b/armsrc/iso14443a.h index 08b73aad2..cf3ecf854 100644 --- a/armsrc/iso14443a.h +++ b/armsrc/iso14443a.h @@ -145,7 +145,7 @@ void ReaderIso14443a(PacketCommandNG *c); void ReaderTransmit(uint8_t *frame, uint16_t len, uint32_t *timing); void ReaderTransmitBitsPar(uint8_t *frame, uint16_t bits, uint8_t *par, uint32_t *timing); void ReaderTransmitPar(uint8_t *frame, uint16_t len, uint8_t *par, uint32_t *timing); -int ReaderReceive(uint8_t *receivedAnswer, uint8_t *par); +uint16_t ReaderReceive(uint8_t *receivedAnswer, uint8_t *par); void iso14443a_setup(uint8_t fpga_minor_mode); int iso14_apdu(uint8_t *cmd, uint16_t cmd_len, bool send_chaining, void *data, uint8_t *res); diff --git a/armsrc/mifareutil.c b/armsrc/mifareutil.c index 0a3008200..ab69dc0a8 100644 --- a/armsrc/mifareutil.c +++ b/armsrc/mifareutil.c @@ -76,7 +76,7 @@ uint8_t mf_crypto1_encrypt4bit(struct Crypto1State *pcs, uint8_t data) { } // send X byte basic commands -int mifare_sendcmd(uint8_t cmd, uint8_t *data, uint8_t data_size, uint8_t *answer, uint8_t *answer_parity, uint32_t *timing) { +uint16_t mifare_sendcmd(uint8_t cmd, uint8_t *data, uint8_t data_size, uint8_t *answer, uint8_t *answer_parity, uint32_t *timing) { uint8_t dcmd[data_size + 3]; dcmd[0] = cmd; @@ -85,8 +85,8 @@ int mifare_sendcmd(uint8_t cmd, uint8_t *data, uint8_t data_size, uint8_t *answe AddCrc14A(dcmd, data_size + 1); ReaderTransmit(dcmd, sizeof(dcmd), timing); - int len = ReaderReceive(answer, answer_parity); - if (!len) { + uint16_t len = ReaderReceive(answer, answer_parity); + if (len == 0) { if (g_dbglevel >= DBG_ERROR) Dbprintf("%02X Cmd failed. Card timeout.", cmd); len = ReaderReceive(answer, answer_parity); } @@ -94,7 +94,7 @@ int mifare_sendcmd(uint8_t cmd, uint8_t *data, uint8_t data_size, uint8_t *answe } // send 2 byte commands -int mifare_sendcmd_short(struct Crypto1State *pcs, uint8_t crypted, uint8_t cmd, uint8_t data, uint8_t *answer, uint8_t *answer_parity, uint32_t *timing) { +uint16_t mifare_sendcmd_short(struct Crypto1State *pcs, uint8_t crypted, uint8_t cmd, uint8_t data, uint8_t *answer, uint8_t *answer_parity, uint32_t *timing) { uint16_t pos; uint8_t dcmd[4] = {cmd, data, 0x00, 0x00}; uint8_t ecmd[4] = {0x00, 0x00, 0x00, 0x00}; @@ -113,7 +113,7 @@ int mifare_sendcmd_short(struct Crypto1State *pcs, uint8_t crypted, uint8_t cmd, ReaderTransmit(dcmd, sizeof(dcmd), timing); } - int len = ReaderReceive(answer, par); + uint16_t len = ReaderReceive(answer, par); if (answer_parity) *answer_parity = par[0]; diff --git a/armsrc/mifareutil.h b/armsrc/mifareutil.h index bb1360b0e..586672100 100644 --- a/armsrc/mifareutil.h +++ b/armsrc/mifareutil.h @@ -66,8 +66,8 @@ #endif //functions -int mifare_sendcmd(uint8_t cmd, uint8_t *data, uint8_t data_size, uint8_t *answer, uint8_t *answer_parity, uint32_t *timing); -int mifare_sendcmd_short(struct Crypto1State *pcs, uint8_t crypted, uint8_t cmd, uint8_t data, uint8_t *answer, uint8_t *answer_parity, uint32_t *timing); +uint16_t mifare_sendcmd(uint8_t cmd, uint8_t *data, uint8_t data_size, uint8_t *answer, uint8_t *answer_parity, uint32_t *timing); +uint16_t mifare_sendcmd_short(struct Crypto1State *pcs, uint8_t crypted, uint8_t cmd, uint8_t data, uint8_t *answer, uint8_t *answer_parity, uint32_t *timing); // mifare classic int mifare_classic_auth(struct Crypto1State *pcs, uint32_t uid, uint8_t blockNo, uint8_t keyType, uint64_t ui64Key, uint8_t isNested);