]> cvs.zerfleddert.de Git - proxmark3-svn/blobdiff - armsrc/epa.c
reenable intermediate "Waiting for a response from the proxmark..." message
[proxmark3-svn] / armsrc / epa.c
index 50c7d87804dbcd2fc9bc846387ef46ec613bdf05..fe32e4971b25eb5ad55526ce4e4a49860631391e 100644 (file)
 // functions, You need to do the setup before calling them!
 //-----------------------------------------------------------------------------
 
 // functions, You need to do the setup before calling them!
 //-----------------------------------------------------------------------------
 
+#include "apps.h"
 #include "iso14443a.h"
 #include "iso14443b.h"
 #include "epa.h"
 #include "iso14443a.h"
 #include "iso14443b.h"
 #include "epa.h"
-#include "cmd.h"
+#include "usb_cdc.h"
+#include "fpgaloader.h"
+#include "string.h"
+#include "util.h"
 
 // Protocol and Parameter Selection Request for ISO 14443 type A cards
 // use regular (1x) speed in both directions
 
 // Protocol and Parameter Selection Request for ISO 14443 type A cards
 // use regular (1x) speed in both directions
@@ -112,7 +116,7 @@ int EPA_APDU(uint8_t *apdu, size_t length, uint8_t *response)
        switch(iso_type)
        {
                case 'a':
        switch(iso_type)
        {
                case 'a':
-                       return iso14_apdu(apdu, (uint16_t) length, response);
+                       return iso14_apdu(apdu, (uint16_t) length, false, response, NULL);
                        break;
                case 'b':
                        return iso14443b_apdu(apdu, length, response);
                        break;
                case 'b':
                        return iso14443b_apdu(apdu, length, response);
@@ -449,20 +453,17 @@ int EPA_PACE_MSE_Set_AT(pace_version_info_t pace_version_info, uint8_t password)
 //-----------------------------------------------------------------------------
 // Perform the PACE protocol by replaying given APDUs
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 // Perform the PACE protocol by replaying given APDUs
 //-----------------------------------------------------------------------------
-void EPA_PACE_Replay(UsbCommand *c)
-{
+void EPA_PACE_Replay(UsbCommand *c) {
        uint32_t timings[sizeof(apdu_lengths_replay) / sizeof(apdu_lengths_replay[0])] = {0};
 
        uint32_t timings[sizeof(apdu_lengths_replay) / sizeof(apdu_lengths_replay[0])] = {0};
 
-       // if an APDU has been passed, save it
+       // if an APDU has been passed, just save it
        if (c->arg[0] != 0) {
                // make sure it's not too big
        if (c->arg[0] != 0) {
                // make sure it's not too big
-               if(c->arg[2] > apdus_replay[c->arg[0] - 1].len)
-               {
+               if(c->arg[2] > apdus_replay[c->arg[0] - 1].len) {
                        cmd_send(CMD_ACK, 1, 0, 0, NULL, 0);
                        cmd_send(CMD_ACK, 1, 0, 0, NULL, 0);
+                       return;
                }
                }
-               memcpy(apdus_replay[c->arg[0] - 1].data + c->arg[1],
-                  c->d.asBytes,
-                  c->arg[2]);
+               memcpy(apdus_replay[c->arg[0] - 1].data + c->arg[1], c->d.asBytes, c->arg[2]);
                // save/update APDU length
                if (c->arg[1] == 0) {
                        apdu_lengths_replay[c->arg[0] - 1] = c->arg[2];
                // save/update APDU length
                if (c->arg[1] == 0) {
                        apdu_lengths_replay[c->arg[0] - 1] = c->arg[2];
@@ -526,7 +527,7 @@ int EPA_Setup()
        // power up the field
        iso14443a_setup(FPGA_HF_ISO14443A_READER_MOD);
        // select the card
        // power up the field
        iso14443a_setup(FPGA_HF_ISO14443A_READER_MOD);
        // select the card
-       return_code = iso14443a_select_card(uid, &card_select_info, NULL);
+       return_code = iso14443a_select_card(uid, &card_select_info, NULL, true, 0, false);
        if (return_code == 1) {
                // send the PPS request
                ReaderTransmit((uint8_t *)pps, sizeof(pps), NULL);
        if (return_code == 1) {
                // send the PPS request
                ReaderTransmit((uint8_t *)pps, sizeof(pps), NULL);
Impressum, Datenschutz