Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/flipperzero-firmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEquip <72751518+equipter@users.noreply.github.com>2022-07-05 18:34:21 +0300
committerGitHub <noreply@github.com>2022-07-05 18:34:21 +0300
commite147b2ceea7e69d637b45c26533662337289a0d1 (patch)
tree258745cd91f526bc670b9165cfb2a6980f975871
parent8af2198684e92343fdd9bb6c8de2f95efc9d2d05 (diff)
Added Javacard Emulated mifare classic 1K compatibility (#1369)
* Add Mifare classic 1k JC handling Add mifare classic Javacard emulation handling * Adding MIFARE 1K Javacard Emulation Compatibility MIFARE Classic 1K Cards from NXP have the SAK value of 0x08. MIFARE Classic 1K Cards that are emulated via javacard applet have an SAK value of 0x09. Adding the SAK values accordingly so that Javacard emulated mifare classic tags are properly handled. * update mifare_common.c added javacard emulation handling for mifare classic 1k Co-authored-by: gornekich <n.gorbadey@gmail.com> Co-authored-by: あく <alleteam@gmail.com>
-rw-r--r--lib/nfc_protocols/mifare_classic.c4
-rw-r--r--lib/nfc_protocols/mifare_common.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/lib/nfc_protocols/mifare_classic.c b/lib/nfc_protocols/mifare_classic.c
index b6a1c23a..28334119 100644
--- a/lib/nfc_protocols/mifare_classic.c
+++ b/lib/nfc_protocols/mifare_classic.c
@@ -198,7 +198,7 @@ static bool mf_classic_is_allowed_access(
bool mf_classic_check_card_type(uint8_t ATQA0, uint8_t ATQA1, uint8_t SAK) {
UNUSED(ATQA1);
- if((ATQA0 == 0x44 || ATQA0 == 0x04) && (SAK == 0x08 || SAK == 0x88)) {
+ if((ATQA0 == 0x44 || ATQA0 == 0x04) && (SAK == 0x08 || SAK == 0x88 || SAK == 0x09)) {
return true;
} else if((ATQA0 == 0x42 || ATQA0 == 0x02) && (SAK == 0x18)) {
return true;
@@ -219,7 +219,7 @@ bool mf_classic_get_type(
furi_assert(reader);
memset(reader, 0, sizeof(MfClassicReader));
- if((ATQA0 == 0x44 || ATQA0 == 0x04) && (SAK == 0x08 || SAK == 0x88)) {
+ if((ATQA0 == 0x44 || ATQA0 == 0x04) && (SAK == 0x08 || SAK == 0x88 || SAK == 0x09)) {
reader->type = MfClassicType1k;
} else if((ATQA0 == 0x42 || ATQA0 == 0x02) && (SAK == 0x18)) {
reader->type = MfClassicType4k;
diff --git a/lib/nfc_protocols/mifare_common.c b/lib/nfc_protocols/mifare_common.c
index 78094cdd..fd622765 100644
--- a/lib/nfc_protocols/mifare_common.c
+++ b/lib/nfc_protocols/mifare_common.c
@@ -6,7 +6,7 @@ MifareType mifare_common_get_type(uint8_t ATQA0, uint8_t ATQA1, uint8_t SAK) {
if((ATQA0 == 0x44) && (ATQA1 == 0x00) && (SAK == 0x00)) {
type = MifareTypeUltralight;
} else if(
- ((ATQA0 == 0x44 || ATQA0 == 0x04) && (SAK == 0x08 || SAK == 0x88)) ||
+ ((ATQA0 == 0x44 || ATQA0 == 0x04) && (SAK == 0x08 || SAK == 0x88 || SAK == 0x09)) ||
((ATQA0 == 0x42 || ATQA0 == 0x02) && (SAK == 0x18))) {
type = MifareTypeClassic;
} else if(ATQA0 == 0x44 && ATQA1 == 0x03 && SAK == 0x20) {