From 5bcb3496fa0409fb7a1dd22e9357a812c3f3f4fe Mon Sep 17 00:00:00 2001 From: merlokk Date: Tue, 31 Oct 2017 19:11:23 +0200 Subject: [PATCH 1/1] small refactoring --- client/cmdhf14a.c | 2 +- client/emv/apduinfo.c | 13 +++++-------- client/emv/apduinfo.h | 2 +- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/client/cmdhf14a.c b/client/cmdhf14a.c index 6d6ea854..aebe2463 100644 --- a/client/cmdhf14a.c +++ b/client/cmdhf14a.c @@ -618,7 +618,7 @@ int CmdHF14AAPDU(const char *cmd) { PrintAndLog("Usage: hf 14a apdu [-s] [-k] [-t] "); PrintAndLog(" -s activate field and select card"); PrintAndLog(" -k leave the signal field ON after receive response"); - PrintAndLog(" -t executes TLV decoder if it possible"); + PrintAndLog(" -t executes TLV decoder if it possible. TODO!!!!"); return 0; } diff --git a/client/emv/apduinfo.c b/client/emv/apduinfo.c index e2e51d9d..d73c24fc 100644 --- a/client/emv/apduinfo.c +++ b/client/emv/apduinfo.c @@ -257,6 +257,7 @@ const APDUCode APDUCodeTable[] = { {"9FXX", APDUCODE_TYPE_NONE, "Command successfully executed; 'xx' bytes of data are available and can be requested using GET RESPONSE."}, {"9xXX", APDUCODE_TYPE_NONE, "Application related status, (ISO 7816-3)"} }; +const size_t APDUCodeTableLen = sizeof(APDUCodeTable)/sizeof(APDUCode); int CodeCmp(const char *code1, const char *code2) { int xsymb = 0; @@ -276,15 +277,13 @@ int CodeCmp(const char *code1, const char *code2) { return -1; } -APDUCode *GetAPDUCode(uint8_t sw1, uint8_t sw2) { +const APDUCode* const GetAPDUCode(uint8_t sw1, uint8_t sw2) { char buf[4] = {0}; sprintf(&buf[0], "%02X ", sw1); sprintf(&buf[2], "%02X ", sw2); - - int tableLen = sizeof(APDUCodeTable)/sizeof(APDUCode); - for (int i = 0; i < tableLen; i++) { + for (int i = 0; i < APDUCodeTableLen; i++) { if (CodeCmp(APDUCodeTable[i].ID, buf) == 0) { // TODO make not so equal comparation... XXXX - not works... return &APDUCodeTable[i]; } @@ -293,12 +292,10 @@ APDUCode *GetAPDUCode(uint8_t sw1, uint8_t sw2) { return NULL; } -const char *GetAPDUCodeDescription(uint8_t sw1, uint8_t sw2) { - APDUCode *cd = GetAPDUCode(sw1, sw2); +const char* GetAPDUCodeDescription(uint8_t sw1, uint8_t sw2) { + const APDUCode *cd = GetAPDUCode(sw1, sw2); if (cd) return cd->Description; else return APDUCodeTable[0].Description; //empty string } - - diff --git a/client/emv/apduinfo.h b/client/emv/apduinfo.h index e388ae68..a3fa2049 100644 --- a/client/emv/apduinfo.h +++ b/client/emv/apduinfo.h @@ -28,7 +28,7 @@ typedef struct { const char *Description; } APDUCode; -extern APDUCode* GetAPDUCode(uint8_t sw1, uint8_t sw2); +extern const APDUCode* const GetAPDUCode(uint8_t sw1, uint8_t sw2); extern const char* GetAPDUCodeDescription(uint8_t sw1, uint8_t sw2); #endif -- 2.39.5