From 7cf206030deb35f5d448e6abd05b2b12185f41fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Ho=C5=99=C4=8Dica?= Date: Sat, 12 Jul 2025 10:31:07 +0200 Subject: [PATCH] Add recognition of Swissbit iShield Key Mifare as MFD EV3 --- CHANGELOG.md | 1 + client/src/cmdhfmfdes.c | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a5e218e7e..3a67c11a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ All notable changes to this project will be documented in this file. This project uses the changelog in accordance with [keepchangelog](http://keepachangelog.com/). Please use this to write notable changes, which is not the same as git commit log... ## [unreleased][unreleased] +- Changed `hf mfdes info` - add recognition of Swissbit iShield Key Mifare - Changed `hf mf info` - add detection for unknown backdoor keys and for some backdoor variants (@doegox) - Changed `mqtt` commnands - now honors preference settings (@iceman1001) - Changed `prefs` - now handles MQTT settings too (@iceman1001) diff --git a/client/src/cmdhfmfdes.c b/client/src/cmdhfmfdes.c index 341ced612..14e716c8c 100644 --- a/client/src/cmdhfmfdes.c +++ b/client/src/cmdhfmfdes.c @@ -238,7 +238,7 @@ static char *getProtocolStr(uint8_t id, bool hw) { static char *getVersionStr(uint8_t type, uint8_t major, uint8_t minor) { - static char buf[40] = {0x00}; + static char buf[60] = {0x00}; char *retStr = buf; if (type == 0x01 && major == 0x00) @@ -255,6 +255,8 @@ static char *getVersionStr(uint8_t type, uint8_t major, uint8_t minor) { snprintf(retStr, sizeof(buf), "%x.%x ( " _GREEN_("DESFire EV2") " )", major, minor); else if (type == 0x01 && major == 0x33 && minor == 0x00) snprintf(retStr, sizeof(buf), "%x.%x ( " _GREEN_("DESFire EV3") " )", major, minor); + else if (type == 0x81 && major == 0x43 && minor == 0x01) + snprintf(retStr, sizeof(buf), "%x.%x ( " _GREEN_("DESFire EV3C implementation on P71D600") " )", major, minor); // Swisskey iShield Key else if (type == 0x01 && major == 0x30 && minor == 0x00) snprintf(retStr, sizeof(buf), "%x.%x ( " _GREEN_("DESFire Light") " )", major, minor); else if (type == 0x02 && major == 0x11 && minor == 0x00) @@ -329,6 +331,9 @@ nxp_cardtype_t getCardType(uint8_t type, uint8_t major, uint8_t minor) { if (type == 0x01 && major == 0x33 && minor == 0x00) return DESFIRE_EV3; + if (type == 0x81 && major == 0x43 && minor == 0x01) + return DESFIRE_EV3; + // Duox if (type == 0x01 && major == 0xA0 && minor == 0x00) return DUOX;