From af26a397a76bcb8ac6dd2d7c8aa31fe82091dd83 Mon Sep 17 00:00:00 2001 From: merlokk <807634+merlokk@users.noreply.github.com> Date: Tue, 17 Aug 2021 17:59:53 +0300 Subject: [PATCH] add select way commands --- client/src/mifare/desfirecore.c | 32 ++++++++++++++++++++++++++++++++ client/src/mifare/desfirecore.h | 2 ++ 2 files changed, 34 insertions(+) diff --git a/client/src/mifare/desfirecore.c b/client/src/mifare/desfirecore.c index 0ed81421b..f9725887a 100644 --- a/client/src/mifare/desfirecore.c +++ b/client/src/mifare/desfirecore.c @@ -290,6 +290,38 @@ const char *DesfireAuthErrorToStr(int error) { return ""; } +const char *DesfireSelectWayToStr(DesfireISOSelectWay way) { + switch (way) { + case ISW6bAID: + return "AID"; + case ISWMF: + return "MF"; + case ISWIsoID: + return "ISO ID"; + case ISWDFName: + return "DF Name"; + default: + break; + } + return ""; +} + +bool DesfireMFSelected(DesfireISOSelectWay way, uint32_t id) { + switch (way) { + case ISW6bAID: + return (id == 0x000000); + case ISWMF: + return true; + case ISWIsoID: + return (id == 0x3f00); + case ISWDFName: + return false; + default: + break; + } + return false; +} + uint32_t DesfireAIDByteToUint(uint8_t *data) { return data[0] + (data[1] << 8) + (data[2] << 16); } diff --git a/client/src/mifare/desfirecore.h b/client/src/mifare/desfirecore.h index 324940ece..8efc3052e 100644 --- a/client/src/mifare/desfirecore.h +++ b/client/src/mifare/desfirecore.h @@ -170,6 +170,8 @@ void DesfirePrintMADAID(uint32_t appid, bool verbose); int DesfireGetCardUID(DesfireContext *ctx); +const char *DesfireSelectWayToStr(DesfireISOSelectWay way); +bool DesfireMFSelected(DesfireISOSelectWay way, uint32_t id); int DesfireSelectEx(DesfireContext *ctx, bool fieldon, DesfireISOSelectWay way, uint32_t id, char *dfname); int DesfireSelect(DesfireContext *ctx, DesfireISOSelectWay way, uint32_t id, char *dfname);