//Set card_data to all zeroes, we'll fill it with data
memset(card_data,0x0,USB_CMD_DATA_SIZE);
uint8_t failedRead =0;
- uint8_t stored_data_length =0;
+ uint32_t stored_data_length =0;
//then loop around remaining blocks
for(int block=0; block < cardsize; block++){
//Fill up the buffer
memcpy(card_data+stored_data_length,resp,8);
stored_data_length += 8;
-
if(stored_data_length +8 > USB_CMD_DATA_SIZE)
{//Time to send this off and start afresh
cmd_send(CMD_ACK,
Dbprintf("Failed to dump block %d", block);
}
}
+
//Send off any remaining data
if(stored_data_length > 0)
{
printvar("MAC", MAC, 4);
uint8_t iclass_data[32000] = {0};
- uint8_t iclass_datalen = 0;
- uint8_t iclass_blocksFailed = 0;//Set to 1 if dump was incomplete
+ uint32_t iclass_datalen = 0;
+ uint32_t iclass_blocksFailed = 0;//Set to 1 if dump was incomplete
UsbCommand d = {CMD_READER_ICLASS_REPLAY, {readerType}};
memcpy(d.d.asBytes, MAC, 4);
}
if(WaitForResponseTimeout(CMD_ACK,&resp,4500))
{
- uint64_t dataLength = resp.arg[0];
+ uint32_t dataLength = resp.arg[0];
iclass_blocksFailed |= resp.arg[1];
-
if(dataLength > 0)
{
+ PrintAndLog("Got %d bytes data (total so far %d)" ,dataLength,iclass_datalen);
memcpy(iclass_data, resp.d.asBytes,dataLength);
iclass_datalen += dataLength;
}else
CSN[0],CSN[1],CSN[2],CSN[3],
CSN[4],CSN[5],CSN[6],CSN[7]);
saveFile(filename,"bin",iclass_data, iclass_datalen );
-
}
//Aaaand we're finished
return 0;