mirror of
https://github.com/DarkFlippers/unleashed-firmware.git
synced 2025-12-12 04:34:43 +04:00
NFC: Fix NDEF parser for MIFARE Classic [ci skip]
by Willy-JL in OFW PR 4153
This commit is contained in:
@@ -392,37 +392,15 @@ static void nfc_generate_mf_classic(NfcDevice* nfc_device, uint8_t uid_len, MfCl
|
||||
|
||||
mf_classic_set_block_read(mfc_data, 0, &mfc_data->block[0]);
|
||||
|
||||
// Set every block to 0x00
|
||||
uint16_t block_num = mf_classic_get_total_block_num(type);
|
||||
if(type == MfClassicType4k) {
|
||||
// Set every block to 0x00
|
||||
for(uint16_t i = 1; i < block_num; i++) {
|
||||
if(mf_classic_is_sector_trailer(i)) {
|
||||
nfc_generate_mf_classic_sector_trailer(mfc_data, i);
|
||||
} else {
|
||||
memset(&mfc_data->block[i].data, 0x00, 16);
|
||||
}
|
||||
mf_classic_set_block_read(mfc_data, i, &mfc_data->block[i]);
|
||||
}
|
||||
} else if(type == MfClassicType1k) {
|
||||
// Set every block to 0x00
|
||||
for(uint16_t i = 1; i < block_num; i++) {
|
||||
if(mf_classic_is_sector_trailer(i)) {
|
||||
nfc_generate_mf_classic_sector_trailer(mfc_data, i);
|
||||
} else {
|
||||
memset(&mfc_data->block[i].data, 0x00, 16);
|
||||
}
|
||||
mf_classic_set_block_read(mfc_data, i, &mfc_data->block[i]);
|
||||
}
|
||||
} else if(type == MfClassicTypeMini) {
|
||||
// Set every block to 0x00
|
||||
for(uint16_t i = 1; i < block_num; i++) {
|
||||
if(mf_classic_is_sector_trailer(i)) {
|
||||
nfc_generate_mf_classic_sector_trailer(mfc_data, i);
|
||||
} else {
|
||||
memset(&mfc_data->block[i].data, 0x00, 16);
|
||||
}
|
||||
mf_classic_set_block_read(mfc_data, i, &mfc_data->block[i]);
|
||||
for(uint16_t i = 1; i < block_num; i++) {
|
||||
if(mf_classic_is_sector_trailer(i)) {
|
||||
nfc_generate_mf_classic_sector_trailer(mfc_data, i);
|
||||
} else {
|
||||
memset(&mfc_data->block[i].data, 0x00, MF_CLASSIC_BLOCK_SIZE);
|
||||
}
|
||||
mf_classic_set_block_read(mfc_data, i, &mfc_data->block[i]);
|
||||
}
|
||||
|
||||
nfc_generate_mf_classic_block_0(
|
||||
|
||||
@@ -36,11 +36,17 @@ void pretty_format_bytes_hex_canonical(
|
||||
}
|
||||
|
||||
const size_t begin_idx = i;
|
||||
const size_t end_idx = MIN(i + num_places, data_size);
|
||||
const size_t wrap_idx = i + num_places;
|
||||
const size_t end_idx = MIN(wrap_idx, data_size);
|
||||
|
||||
for(size_t j = begin_idx; j < end_idx; j++) {
|
||||
furi_string_cat_printf(result, "%02X ", data[j]);
|
||||
}
|
||||
if(end_idx < wrap_idx) {
|
||||
for(size_t j = end_idx; j < wrap_idx; j++) {
|
||||
furi_string_cat_printf(result, " ");
|
||||
}
|
||||
}
|
||||
|
||||
furi_string_push_back(result, '|');
|
||||
|
||||
|
||||
Reference in New Issue
Block a user