]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - client/cmdhf14a.c
TLV decoding works
[proxmark3-svn] / client / cmdhf14a.c
index cdaa18cd1ca106960e0f7eb91a875ddea512af6f..1a7f6970db214a2c39b5a640fa15e2de934532c1 100644 (file)
@@ -1,5 +1,5 @@
 //-----------------------------------------------------------------------------
-// 2011, Merlok
+// 2011, 2017 Merlok
 // Copyright (C) 2010 iZsh <izsh at fail0verflow.com>, Hagen Fritsch
 //
 // This code is licensed to you under the terms of the GNU GPL, version 2 or,
 static int CmdHelp(const char *Cmd);
 static int waitCmd(uint8_t iLen);
 
-// structure and database for uid -> tagtype lookups 
-typedef struct { 
-       uint8_t uid;
-       char* desc;
-} manufactureName; 
-
 const manufactureName manufactureMapping[] = {
        // ID,  "Vendor Country"
        { 0x01, "Motorola UK" },
@@ -93,7 +87,6 @@ const manufactureName manufactureMapping[] = {
        { 0x00, "no tag-info available" } // must be the last entry
 };
 
-
 // get a product description based on the UID
 //             uid[8]  tag uid
 // returns description of the best match       
@@ -625,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;
        }
 
@@ -692,11 +685,11 @@ int CmdHF14AAPDU(const char *cmd) {
 
        PrintAndLog("<<<< %s", sprint_hex(data, datalen));
        
-       PrintAndLog("APDU response: %02x %02x", data[datalen - 2], data[datalen - 1]); // TODO add APDU descriptions
+       PrintAndLog("APDU response: %02x %02x - %s", data[datalen - 2], data[datalen - 1], GetAPDUCodeDescription(data[datalen - 2], data[datalen - 1])); 
 
        // here TLV decoder...
-       if (decodeTLV) {
-               PrintAndLog("--- TLV decoded:");
+       if (decodeTLV && datalen > 4) {
+               TLVPrintFromBuffer(data, datalen - 2);
        }
        
        return 0;
Impressum, Datenschutz