]> cvs.zerfleddert.de Git - proxmark3-svn/blobdiff - client/cmdhf.c
ADD: added option to call "hf mfu info" with a authentication key.
[proxmark3-svn] / client / cmdhf.c
index 65cc1c18fe95cc50a448d7ab237a060e5f156c87..dc843eaeca0c79e22dcebc0cdf2ebaff5d1fb937 100644 (file)
@@ -77,7 +77,7 @@ void annotateIso14443a(char *exp, size_t size, uint8_t* cmd, uint8_t cmdsize)
                if ( cmdsize > 3)
                        snprintf(exp,size,"AUTH-A(%d)",cmd[1]); 
                else
-                       //      case MIFARE_ULEV1_VERS :  both 0x60.
+                       //      case MIFARE_ULEV1_VERSION :  both 0x60.
                        snprintf(exp,size,"EV1 VERSION");
                break;
        }
@@ -88,15 +88,37 @@ void annotateIso14443a(char *exp, size_t size, uint8_t* cmd, uint8_t cmdsize)
        case MIFARE_ULC_AUTH_1 :                snprintf(exp,size,"AUTH "); break;
        case MIFARE_ULC_AUTH_2 :                snprintf(exp,size,"AUTH_ANSW"); break;
        case MIFARE_ULEV1_AUTH :                snprintf(exp,size,"PWD-AUTH"); break;
-
-       case MIFARE_ULEV1_FASTREAD :    snprintf(exp,size,"READ RANGE (%d-%d)",cmd[1],cmd[2]); break;
-       case MIFARE_ULEV1_WRITE :               snprintf(exp,size,"WRITEBLOCK(%d)",cmd[1]); break;
-       case MIFARE_ULEV1_READ_CNT :    snprintf(exp,size,"READ CNT(%d)",cmd[1]); break;
-       case MIFARE_ULEV1_INCR_CNT :    snprintf(exp,size,"INC(%d)",cmd[1]); break;
+       case MIFARE_ULEV1_FASTREAD : {
+               if ( cmdsize >=3 && cmd[2] < 0x21)
+                       snprintf(exp,size,"READ RANGE (%d-%d)",cmd[1],cmd[2]); 
+               else
+                       snprintf(exp,size,"?");
+               break;
+       }
+       case MIFARE_ULC_WRITE : {
+               if ( cmd[1] < 0x21 )
+                       snprintf(exp,size,"WRITEBLOCK(%d)",cmd[1]); 
+               else
+                       snprintf(exp,size,"?");
+               break;
+       }
+       case MIFARE_ULEV1_READ_CNT :{
+               if ( cmd[1] < 5 )
+                       snprintf(exp,size,"READ CNT(%d)",cmd[1]);
+               else
+                       snprintf(exp,size,"?");
+               break;
+       }
+       case MIFARE_ULEV1_INCR_CNT : {
+               if ( cmd[1] < 5 )
+                       snprintf(exp,size,"INCR(%d)",cmd[1]);
+               else
+                       snprintf(exp,size,"?");
+               break;
+       }
        case MIFARE_ULEV1_READSIG :             snprintf(exp,size,"READ_SIG"); break;
        case MIFARE_ULEV1_CHECKTEAR :   snprintf(exp,size,"CHK_TEARING(%d)",cmd[1]); break;
        case MIFARE_ULEV1_VCSL :                snprintf(exp,size,"VCSL"); break;
-       
        default:                                                snprintf(exp,size,"?"); break;
        }
        return;
@@ -258,9 +280,8 @@ uint8_t iso14443B_CRC_check(bool isResponse, uint8_t* data, uint8_t len)
        ComputeCrc14443(CRC_14443_B, data, len-2, &b1, &b2);
        if(b1 != data[len-2] || b2 != data[len-1]) {
          return 0;
-       } else {
-       return 1;
        }
+       return 1;
 }
 
 /**
Impressum, Datenschutz