Revert NFC FeliCa WIP PR (breaks more than adds)

This commit is contained in:
Willy-JL
2023-07-18 20:52:56 +01:00
parent 8d16b0e8f5
commit 1c00a0d119
48 changed files with 153 additions and 2615 deletions
+15 -21
View File
@@ -83,9 +83,9 @@ static void nfc_generate_mf_ul_common(NfcDeviceData* data) {
data->nfc_data.interface = FuriHalNfcInterfaceRf;
data->nfc_data.uid_len = 7;
nfc_generate_mf_ul_uid(data->nfc_data.uid);
data->nfc_data.a_data.atqa[0] = 0x44;
data->nfc_data.a_data.atqa[1] = 0x00;
data->nfc_data.a_data.sak = 0x00;
data->nfc_data.atqa[0] = 0x44;
data->nfc_data.atqa[1] = 0x00;
data->nfc_data.sak = 0x00;
data->protocol = NfcDeviceProtocolMifareUl;
}
@@ -94,15 +94,9 @@ static void
data->nfc_data.type = FuriHalNfcTypeA;
data->nfc_data.interface = FuriHalNfcInterfaceRf;
data->nfc_data.uid_len = uid_len;
data->nfc_data.a_data.atqa[0] = 0x44;
data->nfc_data.a_data.atqa[1] = 0x00;
data->nfc_data.a_data.sak = 0x08;
nfc_generate_mf_classic_block_0(
data->mf_classic_data.block[0].value,
uid_len,
data->nfc_data.a_data.sak,
data->nfc_data.a_data.atqa[0],
data->nfc_data.a_data.atqa[1]);
data->nfc_data.atqa[0] = 0x44;
data->nfc_data.atqa[1] = 0x00;
data->nfc_data.sak = 0x08;
data->protocol = NfcDeviceProtocolMifareClassic;
data->mf_classic_data.type = type;
}
@@ -256,9 +250,9 @@ static void
mful->data_size = num_pages * 4;
mful->data_read = mful->data_size;
memcpy(mful->data, data->nfc_data.uid, data->nfc_data.uid_len);
mful->data[7] = data->nfc_data.a_data.sak;
mful->data[8] = data->nfc_data.a_data.atqa[0];
mful->data[9] = data->nfc_data.a_data.atqa[1];
mful->data[7] = data->nfc_data.sak;
mful->data[8] = data->nfc_data.atqa[0];
mful->data[9] = data->nfc_data.atqa[1];
uint16_t config_register_page;
uint16_t session_register_page;
@@ -364,7 +358,7 @@ void nfc_generate_mf_classic(NfcDeviceData* data, uint8_t uid_len, MfClassicType
mf_classic_set_block_read(mfc, i, &mfc->block[i]);
}
// Set SAK to 18
data->nfc_data.a_data.sak = 0x18;
data->nfc_data.sak = 0x18;
} else if(type == MfClassicType1k) {
// Set every block to 0xFF
for(uint16_t i = 1; i < MF_CLASSIC_1K_TOTAL_SECTORS_NUM * 4; i += 1) {
@@ -376,7 +370,7 @@ void nfc_generate_mf_classic(NfcDeviceData* data, uint8_t uid_len, MfClassicType
mf_classic_set_block_read(mfc, i, &mfc->block[i]);
}
// Set SAK to 08
data->nfc_data.a_data.sak = 0x08;
data->nfc_data.sak = 0x08;
} else if(type == MfClassicTypeMini) {
// Set every block to 0xFF
for(uint16_t i = 1; i < MF_MINI_TOTAL_SECTORS_NUM * 4; i += 1) {
@@ -388,15 +382,15 @@ void nfc_generate_mf_classic(NfcDeviceData* data, uint8_t uid_len, MfClassicType
mf_classic_set_block_read(mfc, i, &mfc->block[i]);
}
// Set SAK to 09
data->nfc_data.a_data.sak = 0x09;
data->nfc_data.sak = 0x09;
}
nfc_generate_mf_classic_block_0(
data->mf_classic_data.block[0].value,
uid_len,
data->nfc_data.a_data.sak,
data->nfc_data.a_data.atqa[0],
data->nfc_data.a_data.atqa[1]);
data->nfc_data.sak,
data->nfc_data.atqa[0],
data->nfc_data.atqa[1]);
mfc->type = type;
}
+6 -4
View File
@@ -56,11 +56,13 @@ struct ReaderAnalyzer {
static FuriHalNfcDevData reader_analyzer_nfc_data[] = {
[ReaderAnalyzerNfcDataMfClassic] =
{.interface = FuriHalNfcInterfaceRf,
{.sak = 0x08,
.atqa = {0x44, 0x00},
.interface = FuriHalNfcInterfaceRf,
.type = FuriHalNfcTypeA,
.uid_len = READER_ANALYZER_UID_SIZE,
.uid = {0x04, 0x77, 0x70, 0x2A, 0x23, 0x4F, 0x80},
.a_data = {.sak = 0x08, .atqa = {0x44, 0x00}, .cuid = 0x2A234F80}},
.cuid = 0x2A234F80},
};
void reader_analyzer_parse(ReaderAnalyzer* instance, uint8_t* buffer, size_t size) {
@@ -122,7 +124,7 @@ ReaderAnalyzer* reader_analyzer_alloc() {
reader_analyzer_nfc_data[ReaderAnalyzerNfcDataMfClassic].uid,
Uid.full_uid,
READER_ANALYZER_UID_SIZE);
reader_analyzer_nfc_data[ReaderAnalyzerNfcDataMfClassic].a_data.cuid =
reader_analyzer_nfc_data[ReaderAnalyzerNfcDataMfClassic].cuid =
nfc_util_bytes2num(Uid.uid_converter.cuid, READER_ANALYZER_CUID_SIZE);
instance->nfc_data = reader_analyzer_nfc_data[ReaderAnalyzerNfcDataMfClassic];
@@ -156,7 +158,7 @@ void reader_analyzer_start(ReaderAnalyzer* instance, ReaderAnalyzerMode mode) {
instance->debug_log = nfc_debug_log_alloc();
}
if(mode & ReaderAnalyzerModeMfkey) {
instance->mfkey32 = mfkey32_alloc(instance->nfc_data.a_data.cuid);
instance->mfkey32 = mfkey32_alloc(instance->nfc_data.cuid);
if(instance->mfkey32) {
mfkey32_set_callback(instance->mfkey32, reader_analyzer_mfkey_callback, instance);
}