small refactoring
authormerlokk <olegmsn@gmail.com>
Tue, 31 Oct 2017 17:11:23 +0000 (19:11 +0200)
committermerlokk <olegmsn@gmail.com>
Tue, 31 Oct 2017 17:11:23 +0000 (19:11 +0200)
client/cmdhf14a.c
client/emv/apduinfo.c
client/emv/apduinfo.h

index 6d6ea8549a7cb9cbcae78ecf6f0f2c75cdb6db65..aebe246335dc8c4ce177031daebb7fe364dd0605 100644 (file)
@@ -618,7 +618,7 @@ int CmdHF14AAPDU(const char *cmd) {
                PrintAndLog("Usage: hf 14a apdu [-s] [-k] [-t] <APDU (hex)>");
                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;
        }
 
index e2e51d9db79c49a3b4db38f92efb27ac9148d4ce..d73c24fc1aca38f676118d3365b90bc41eb7c763 100644 (file)
@@ -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 charGetAPDUCodeDescription(uint8_t sw1, uint8_t sw2) {
+       const APDUCode *cd = GetAPDUCode(sw1, sw2);
        if (cd)
                return cd->Description;
        else
                return APDUCodeTable[0].Description; //empty string
 }
-
-
index e388ae68c2e6cde4bca45e090d36ec1b22b21c5d..a3fa2049b96736f80c86875414641f660f08e06b 100644 (file)
@@ -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
Impressum, Datenschutz