le24toh is uint32_t

This commit is contained in:
iceman1001 2020-05-20 19:22:17 +02:00
commit b770cfd51c
3 changed files with 14 additions and 12 deletions

View file

@ -1482,8 +1482,8 @@ static int handler_desfire_writedata(mfdes_data_t *data, MFDES_FILE_TYPE_T type)
*/ */
if (data->fileno > 0x1F) return PM3_EINVARG; if (data->fileno > 0x1F) return PM3_EINVARG;
int datatowrite = le24toh(data->length); uint32_t datatowrite = le24toh(data->length);
int offset = le24toh(data->offset); uint32_t offset = le24toh(data->offset);
int datasize; int datasize;
int pos = 0; int pos = 0;
int recvlen = 0; int recvlen = 0;
@ -1496,7 +1496,8 @@ static int handler_desfire_writedata(mfdes_data_t *data, MFDES_FILE_TYPE_T type)
apdu.data = tmp; apdu.data = tmp;
if (type == MFDES_RECORD_FILE) apdu.INS = MFDES_WRITE_RECORD; if (type == MFDES_RECORD_FILE) apdu.INS = MFDES_WRITE_RECORD;
while (datatowrite > 0) { while (datatowrite) {
if (datatowrite > 52) if (datatowrite > 52)
datasize = 52; datasize = 52;
else else
@ -2319,7 +2320,8 @@ static int CmdHF14ADesReadData(const char *Cmd) {
memcpy(ft.length, filesize, 3); memcpy(ft.length, filesize, 3);
ft.fileno = _fileno[0]; ft.fileno = _fileno[0];
int bytestoread = le24toh(filesize); uint32_t bytestoread = le24toh(filesize);
bytestoread &= 0xFFFFFF;
if (bytestoread == 0) if (bytestoread == 0)
bytestoread = 0xFFFFFF; bytestoread = 0xFFFFFF;
@ -2332,8 +2334,8 @@ static int CmdHF14ADesReadData(const char *Cmd) {
PrintAndLogEx(SUCCESS, "Successfully read data from file %d:", ft.fileno); PrintAndLogEx(SUCCESS, "Successfully read data from file %d:", ft.fileno);
PrintAndLogEx(NORMAL, "\nOffset | Data | Ascii"); PrintAndLogEx(NORMAL, "\nOffset | Data | Ascii");
PrintAndLogEx(NORMAL, "----------------------------------------------------------------------------"); PrintAndLogEx(NORMAL, "----------------------------------------------------------------------------");
int len = le24toh(ft.length); uint32_t len = le24toh(ft.length);
for (int i = 0; i < len; i += 16) { for (uint32_t i = 0; i < len; i += 16) {
PrintAndLogEx(NORMAL, "%02d/0x%02X | %s| %s", i, i, sprint_hex(&ft.data[i], len > 16 ? 16 : len), sprint_ascii(&ft.data[i], len > 16 ? 16 : len)); PrintAndLogEx(NORMAL, "%02d/0x%02X | %s| %s", i, i, sprint_hex(&ft.data[i], len > 16 ? 16 : len), sprint_ascii(&ft.data[i], len > 16 ? 16 : len));
} }
} else { } else {
@ -3246,8 +3248,8 @@ static int CmdHF14ADesDump(const char *Cmd) {
if (res == PM3_SUCCESS) { if (res == PM3_SUCCESS) {
PrintAndLogEx(NORMAL, "\nOffset | Data | Ascii"); PrintAndLogEx(NORMAL, "\nOffset | Data | Ascii");
PrintAndLogEx(NORMAL, "----------------------------------------------------------------------------"); PrintAndLogEx(NORMAL, "----------------------------------------------------------------------------");
int len = le24toh(fdata.length); uint32_t len = le24toh(fdata.length);
for (int n = 0; n < len; n += 16) { for (uint32_t n = 0; n < len; n += 16) {
PrintAndLogEx(NORMAL, "%02d/0x%02X | %s| %s", n, n, sprint_hex(&fdata.data[n], len > 16 ? 16 : len), sprint_ascii(&fdata.data[n], len > 16 ? 16 : len)); PrintAndLogEx(NORMAL, "%02d/0x%02X | %s| %s", n, n, sprint_hex(&fdata.data[n], len > 16 ? 16 : len), sprint_ascii(&fdata.data[n], len > 16 ? 16 : len));
} }
} else { } else {
@ -3299,8 +3301,8 @@ static int CmdHF14ADesDump(const char *Cmd) {
if (res == PM3_SUCCESS) { if (res == PM3_SUCCESS) {
PrintAndLogEx(NORMAL, "\nOffset | Data | Ascii"); PrintAndLogEx(NORMAL, "\nOffset | Data | Ascii");
PrintAndLogEx(NORMAL, "----------------------------------------------------------------------------"); PrintAndLogEx(NORMAL, "----------------------------------------------------------------------------");
int len = le24toh(fdata.length); uint32_t len = le24toh(fdata.length);
for (int n = 0; n < len; n += 16) { for (uint32_t n = 0; n < len; n += 16) {
PrintAndLogEx(NORMAL, "%02d/0x%02X | %s| %s", n, n, sprint_hex(&fdata.data[n], len > 16 ? 16 : len), sprint_ascii(&fdata.data[n], len > 16 ? 16 : len)); PrintAndLogEx(NORMAL, "%02d/0x%02X | %s| %s", n, n, sprint_hex(&fdata.data[n], len > 16 ? 16 : len), sprint_ascii(&fdata.data[n], len > 16 ? 16 : len));
} }
} else { } else {

View file

@ -83,7 +83,7 @@ void lsl(uint8_t *data, size_t len) {
data[len - 1] <<= 1; data[len - 1] <<= 1;
} }
int32_t le24toh(uint8_t data[3]) { uint32_t le24toh(uint8_t data[3]) {
return (data[2] << 16) | (data[1] << 8) | data[0]; return (data[2] << 16) | (data[1] << 8) | data[0];
} }

View file

@ -50,7 +50,7 @@ uint64_t bytes_to_num(uint8_t *src, size_t len);
void rol(uint8_t *data, const size_t len); void rol(uint8_t *data, const size_t len);
void lsl(uint8_t *data, size_t len); void lsl(uint8_t *data, size_t len);
int32_t le24toh(uint8_t data[3]); uint32_t le24toh(uint8_t data[3]);
void htole24(uint32_t val, uint8_t data[3]); void htole24(uint32_t val, uint8_t data[3]);
#endif #endif