X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/857bc2ff6a4b7112b61def90b4716dcdf2c448af..4211fdce315b6f20d624374d5a249627bf871a06:/armsrc/mifaredesfire.c diff --git a/armsrc/mifaredesfire.c b/armsrc/mifaredesfire.c index 57681d71..75cb9e73 100644 --- a/armsrc/mifaredesfire.c +++ b/armsrc/mifaredesfire.c @@ -25,7 +25,7 @@ bool InitDesfireCard(){ byte_t cardbuf[USB_CMD_DATA_SIZE] = {0x00}; iso14a_card_select_t *card = (iso14a_card_select_t*)cardbuf; - int len = iso14443a_select_card(NULL,card,NULL); + int len = iso14443a_select_card(NULL,card,NULL,true,0); if (!len) { if (MF_DBGLEVEL >= MF_DBG_ERROR) @@ -63,9 +63,8 @@ void MifareSendCommand(uint8_t arg0, uint8_t arg1, uint8_t *datain){ print_result(" RX : ", datain, datalen); } - if ( flags & CLEARTRACE ){ + if ( flags & CLEARTRACE ) clear_trace(); - } if ( flags & INIT ){ if ( !InitDesfireCard() ) @@ -73,9 +72,8 @@ void MifareSendCommand(uint8_t arg0, uint8_t arg1, uint8_t *datain){ } int len = DesfireAPDU(datain, datalen, resp); - if (MF_DBGLEVEL >= 4) { + if (MF_DBGLEVEL >= 4) print_result("ERR <--: ", resp, len); - } if ( !len ) { OnError(2); @@ -85,9 +83,8 @@ void MifareSendCommand(uint8_t arg0, uint8_t arg1, uint8_t *datain){ // reset the pcb_blocknum, pcb_blocknum = 0; - if ( flags & DISCONNECT ){ + if ( flags & DISCONNECT ) OnSuccess(); - } cmd_send(CMD_ACK,1,len,0,resp,len); } @@ -114,7 +111,7 @@ void MifareDesfireGetInformation(){ // card select - information iso14a_card_select_t *card = (iso14a_card_select_t*)cardbuf; - byte_t isOK = iso14443a_select_card(NULL, card, NULL); + byte_t isOK = iso14443a_select_card(NULL, card, NULL, true, 0); if ( isOK == 0) { if (MF_DBGLEVEL >= MF_DBG_ERROR) { Dbprintf("Can't select card"); @@ -575,11 +572,6 @@ void OnSuccess(){ } void OnError(uint8_t reason){ - pcb_blocknum = 0; - ReaderTransmit(deselect_cmd, 3 , NULL); - - FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF); cmd_send(CMD_ACK,0,reason,0,0,0); - LEDsoff(); - set_tracing(FALSE); + OnSuccess(); }