From 8bfb91562482be7b061a58f796b9be2cb84a74e9 Mon Sep 17 00:00:00 2001 From: iceman1001 Date: Thu, 27 Jul 2023 19:01:46 +0200 Subject: [PATCH] adapt the leftovers --- armsrc/appmain.c | 12 ++++++++++-- client/src/mifare/mifarehost.c | 8 ++++---- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/armsrc/appmain.c b/armsrc/appmain.c index ced039702..79b21c5bf 100644 --- a/armsrc/appmain.c +++ b/armsrc/appmain.c @@ -61,6 +61,7 @@ #include "commonutil.h" #include "crc16.h" #include "protocols.h" +#include "mifareutil.h" #ifdef WITH_LCD @@ -1287,7 +1288,7 @@ static void PacketReceived(PacketCommandNG *packet) { uint8_t data[]; } PACKED; struct p *payload = (struct p *) packet->data.asBytes; - EmlSetMemIso15693(payload->count, payload->data, payload->offset); + emlSet(payload->data, payload->offset, payload->count); break; } case CMD_HF_ISO15693_SIMULATE: { @@ -1693,7 +1694,14 @@ static void PacketReceived(PacketCommandNG *packet) { uint8_t data[]; } PACKED; struct p *payload = (struct p *) packet->data.asBytes; - MifareEMemSet(payload->blockno, payload->blockcnt, payload->blockwidth, payload->data); + + FpgaDownloadAndGo(FPGA_BITSTREAM_HF); + + // backwards compat... default bytewidth + if (payload->blockwidth == 0) + payload->blockwidth = 16; + + emlSetMem_xt(payload->data, payload->blockno, payload->blockcnt, payload->blockwidth); break; } case CMD_HF_MIFARE_EML_MEMGET: { diff --git a/client/src/mifare/mifarehost.c b/client/src/mifare/mifarehost.c index 1576b03e5..a05456bcd 100644 --- a/client/src/mifare/mifarehost.c +++ b/client/src/mifare/mifarehost.c @@ -947,7 +947,7 @@ int mfEmlGetMem(uint8_t *data, int blockNum, int blocksCount) { } int mfEmlSetMem(uint8_t *data, int blockNum, int blocksCount) { - return mfEmlSetMem_xt(data, blockNum, blocksCount, 16); + return mfEmlSetMem_xt(data, blockNum, blocksCount, MFBLOCK_SIZE); } int mfEmlSetMem_xt(uint8_t *data, int blockNum, int blocksCount, int blockBtWidth) { @@ -961,7 +961,7 @@ int mfEmlSetMem_xt(uint8_t *data, int blockNum, int blocksCount, int blockBtWidt size_t size = ((size_t) blocksCount) * blockBtWidth; if (size > (PM3_CMD_DATA_SIZE - sizeof(struct p))) { - return PM3_ESOFT; + return PM3_EINVARG; } size_t paylen = sizeof(struct p) + size; @@ -1271,7 +1271,7 @@ int detect_classic_prng(void) { clearCommandBuffer(); SendCommandMIX(CMD_HF_ISO14443A_READER, flags, sizeof(cmd), 0, cmd, sizeof(cmd)); - if (!WaitForResponseTimeout(CMD_ACK, &resp, 2000)) { + if (WaitForResponseTimeout(CMD_ACK, &resp, 2000) == false) { PrintAndLogEx(WARNING, "PRNG UID: Reply timeout."); return PM3_ETIMEOUT; } @@ -1281,7 +1281,7 @@ int detect_classic_prng(void) { PrintAndLogEx(ERR, "error: selecting tag failed, can't detect prng\n"); return PM3_ERFTRANS; } - if (!WaitForResponseTimeout(CMD_ACK, &respA, 2500)) { + if (WaitForResponseTimeout(CMD_ACK, &respA, 2500) == false) { PrintAndLogEx(WARNING, "PRNG data: Reply timeout."); return PM3_ETIMEOUT; }