]> git.zerfleddert.de Git - proxmark3-svn/commitdiff
Merge branch 'master' of https://github.com/Proxmark/proxmark3
authoriceman1001 <iceman@iuse.se>
Wed, 11 Mar 2015 21:21:01 +0000 (22:21 +0100)
committericeman1001 <iceman@iuse.se>
Wed, 11 Mar 2015 21:21:01 +0000 (22:21 +0100)
armsrc/iso14443a.c
client/cmdhf14a.c

index fe5533e09440846f4ac254cf04e19282e403f06f..e7477789d287312fbf68ec4a417f4cbbfb7b01ee 100644 (file)
@@ -1890,8 +1890,9 @@ void ReaderIso14443a(UsbCommand *c)
 {
        iso14a_command_t param = c->arg[0];
        uint8_t *cmd = c->d.asBytes;
-       size_t len = c->arg[1];
-       size_t lenbits = c->arg[2];
+       size_t len = c->arg[1] & 0xffff;
+       size_t lenbits = c->arg[1] >> 16;
+       uint32_t timeout = c->arg[2];
        uint32_t arg0 = 0;
        byte_t buf[USB_CMD_DATA_SIZE];
        uint8_t par[MAX_PARITY_SIZE];
@@ -1916,7 +1917,7 @@ void ReaderIso14443a(UsbCommand *c)
        }
 
        if(param & ISO14A_SET_TIMEOUT) {
-               iso14a_set_timeout(c->arg[2]);
+               iso14a_set_timeout(timeout);
        }
 
        if(param & ISO14A_APDU) {
index 744b38758588d27342b229d33b3b5223accc4753..d36ebb8bee959220547577c0d31495b764630e3b 100644 (file)
@@ -560,7 +560,7 @@ int CmdHF14ACmdRaw(const char *cmd) {
                                        timeout = temp;
                                        i+=3;
                                        while(cmd[i]!=' ' && cmd[i]!='\0') { i++; }
-                                       i+=2;
+                                       i-=2;
                                        break;
                 default:
                     PrintAndLog("Invalid option");
@@ -605,6 +605,7 @@ int CmdHF14ACmdRaw(const char *cmd) {
         if(active)
             c.arg[0] |= ISO14A_NO_SELECT;
     }
+
        if(bTimeout){
            #define MAX_TIMEOUT 40542464        // (2^32-1) * (8*16) / 13560000Hz * 1000ms/s = 
         c.arg[0] |= ISO14A_SET_TIMEOUT;
@@ -612,7 +613,7 @@ int CmdHF14ACmdRaw(const char *cmd) {
             timeout = MAX_TIMEOUT;
             PrintAndLog("Set timeout to 40542 seconds (11.26 hours). The max we can wait for response");
         }
-        c.arg[2] = 13560000 / 1000 / (8*16) * timeout; // timeout in ETUs (time to transfer 1 bit, approx. 9.4 us)
+               c.arg[2] = 13560000 / 1000 / (8*16) * timeout; // timeout in ETUs (time to transfer 1 bit, approx. 9.4 us)
        }
     if(power)
         c.arg[0] |= ISO14A_NO_DISCONNECT;
Impressum, Datenschutz