]> cvs.zerfleddert.de Git - proxmark3-svn/commitdiff
FIX: Better legic annotation, show which byte was targeted during read and write...
authoriceman1001 <iceman@iuse.se>
Sat, 3 Sep 2016 10:20:12 +0000 (12:20 +0200)
committericeman1001 <iceman@iuse.se>
Sat, 3 Sep 2016 10:20:12 +0000 (12:20 +0200)
client/cmdhf.c
common/protocols.h

index 025a83d4087796657df6a975d3bbd8b5d4489e1d..1aa656ee88b29304174bf31f53003d6bcf014196 100644 (file)
@@ -371,13 +371,21 @@ void annotateIso14443b(char *exp, size_t size, uint8_t* cmd, uint8_t cmdsize) {
 // 0 = write
 // Quite simpel tag
 void annotateLegic(char *exp, size_t size, uint8_t* cmd, uint8_t cmdsize){
-       switch(cmd[0]) {
-               case LEGIC_HSK                                          :snprintf(exp, size, "HANDSHAKE");break;
-               case LEGIC_READ                                         :snprintf(exp, size, "READ");break;
-               case LEGIC_WRITE                                        :snprintf(exp, size, "WRITE");break;
-               default                                                         :snprintf(exp,size,"?"); break;
-       }               
+       
+       if ( cmdsize > 1) {
+               switch(cmd[0]) {
+                       case LEGIC_READ                 :snprintf(exp, size, "READ Byte(%d)", cmd[1]);break;
+                       case LEGIC_WRITE                :snprintf(exp, size, "WRITE Byte(%d)", cmd[1]);break;
+                       default                                 :snprintf(exp, size, "?"); break;
+               }               
+       } else {                
+               switch(cmd[0]) {
+                       case LEGIC_HSK                  :snprintf(exp, size, "END Handshake");break;
+                       default                                 :snprintf(exp, size, "?"); break;
+               }               
+       }
 }
+
 /**
  * @brief iso14443A_CRC_check Checks CRC in command or response
  * @param isResponse
@@ -491,6 +499,9 @@ uint8_t iclass_CRC_check(bool isResponse, uint8_t* data, uint8_t len)
 
 uint8_t legic_CRC_check(bool isResponse, uint8_t* data, uint8_t len){
        if (len > 2) return 2;
+       
+       uint8_t calccrc = CRC8Legic(data, len);
+       
        return 0;
        // crc_init(&legic_crc, 4, 0x19 >> 1, 0x5, 0);
        // crc_clear(&legic_crc);
@@ -654,17 +665,15 @@ uint16_t printTraceLine(uint16_t tracepos, uint16_t traceLen, uint8_t *trace, ui
                }
        }
 
-       if(data_len == 0 )
+       if (data_len == 0 )
                sprintf(line[0],"<empty trace - possible error>");
 
-
        //--- Draw the CRC column
        char *crc = (crcStatus == 0 ? "!crc" : (crcStatus == 1 ? " ok " : "    "));
 
        EndOfTransmissionTimestamp = timestamp + duration;
 
-       if(!isResponse)
-       {
+       if (!isResponse)        {
                switch(protocol) {
                        case ICLASS:            annotateIclass(explanation,sizeof(explanation),frame,data_len); break;
                        case ISO_14443A:        annotateIso14443a(explanation,sizeof(explanation),frame,data_len); break;
index 0182ceb5d0b5b9849f38cbb12458495c4660c5e4..37d12525a4105c9de7f298f1fec5462c9fa5b3cd 100644 (file)
@@ -326,7 +326,7 @@ ISO 7816-4 Basic interindustry commands. For command APDU's.
 #define     MFDES_AUTHENTICATION_FRAME                  0xAF
 
 // LEGIC Commands
-#define        LEGIC_HSK       0xFF
+#define        LEGIC_HSK       0x39
 #define                LEGIC_READ      0x01
 #define        LEGIC_WRITE     0x00
 
Impressum, Datenschutz