From 76701af8a773ad64972b1c7ce927bfc4ab5310ac Mon Sep 17 00:00:00 2001 From: Philippe Teuwen Date: Sun, 11 Oct 2020 22:38:52 +0200 Subject: [PATCH] Make clear current FDX in Pm3 is FDX-B only --- client/CMakeLists.txt | 2 +- client/Makefile | 2 +- client/android/CMakeLists.txt | 2 +- client/luascripts/multi_bruteforce.lua | 8 +-- client/src/cmddata.h | 2 +- client/src/cmdlf.c | 6 +- client/src/{cmdlffdx.c => cmdlffdxb.c} | 68 +++++++++---------- client/src/{cmdlffdx.h => cmdlffdxb.h} | 10 +-- client/src/cmdlft55xx.c | 2 +- common/crc16.c | 8 +-- common/crc16.h | 2 +- tools/pm3_tests.sh | 10 +-- ..._animal.pm3 => lf_ATA5577_fdxb_animal.pm3} | 0 ...ended.pm3 => lf_ATA5577_fdxb_extended.pm3} | 0 ..._Bio-Thermo.pm3 => lf_FDXB_Bio-Thermo.pm3} | 0 15 files changed, 61 insertions(+), 61 deletions(-) rename client/src/{cmdlffdx.c => cmdlffdxb.c} (90%) rename client/src/{cmdlffdx.h => cmdlffdxb.h} (68%) rename traces/{lf_ATA5577_fdx_animal.pm3 => lf_ATA5577_fdxb_animal.pm3} (100%) rename traces/{lf_ATA5577_fdx_extended.pm3 => lf_ATA5577_fdxb_extended.pm3} (100%) rename traces/{lf_FDX_Bio-Thermo.pm3 => lf_FDXB_Bio-Thermo.pm3} (100%) diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt index dd4811435..c371ecb29 100644 --- a/client/CMakeLists.txt +++ b/client/CMakeLists.txt @@ -248,7 +248,7 @@ set (TARGET_SOURCES ${PM3_ROOT}/client/src/cmdlfcotag.c ${PM3_ROOT}/client/src/cmdlfem4x.c ${PM3_ROOT}/client/src/cmdlfem4x50.c - ${PM3_ROOT}/client/src/cmdlffdx.c + ${PM3_ROOT}/client/src/cmdlffdxb.c ${PM3_ROOT}/client/src/cmdlfgallagher.c ${PM3_ROOT}/client/src/cmdlfguard.c ${PM3_ROOT}/client/src/cmdlfhid.c diff --git a/client/Makefile b/client/Makefile index ac51cb1bd..9fa8565e6 100644 --- a/client/Makefile +++ b/client/Makefile @@ -443,7 +443,7 @@ SRCS = aidsearch.c \ cmdlfcotag.c \ cmdlfem4x.c \ cmdlfem4x50.c \ - cmdlffdx.c \ + cmdlffdxb.c \ cmdlfguard.c \ cmdlfgallagher.c \ cmdlfhid.c \ diff --git a/client/android/CMakeLists.txt b/client/android/CMakeLists.txt index 7b7335071..3ab423c3c 100644 --- a/client/android/CMakeLists.txt +++ b/client/android/CMakeLists.txt @@ -127,7 +127,7 @@ add_library(pm3rrg_rdv4 SHARED ${PM3_ROOT}/client/src/cmdlfcotag.c ${PM3_ROOT}/client/src/cmdlfem4x.c ${PM3_ROOT}/client/src/cmdlfem4x50.c - ${PM3_ROOT}/client/src/cmdlffdx.c + ${PM3_ROOT}/client/src/cmdlffdxb.c ${PM3_ROOT}/client/src/cmdlfgallagher.c ${PM3_ROOT}/client/src/cmdlfguard.c ${PM3_ROOT}/client/src/cmdlfhid.c diff --git a/client/luascripts/multi_bruteforce.lua b/client/luascripts/multi_bruteforce.lua index 50f9429aa..e9b320058 100644 --- a/client/luascripts/multi_bruteforce.lua +++ b/client/luascripts/multi_bruteforce.lua @@ -18,7 +18,7 @@ desc = [[ \ / \ / `---' `---' -*SUPPORTED TAGS: pyramid, awid, fdx, jablotron, noralsy, presco, visa2000, 14a, hid +*SUPPORTED TAGS: pyramid, awid, fdxb, jablotron, noralsy, presco, visa2000, 14a, hid This script uses the Proxmark3 implementations of simulation to bruteforce given ranges of id. It uses both LF and HF simulations. @@ -42,7 +42,7 @@ arguments = [[ -r *see below RFID Tag: the RFID tag to emulate pyramid awid - fdx + fdxb jablotron noralsy presco @@ -180,8 +180,8 @@ local function main(args) consolecommand = 'lf awid sim' rfidtagname = 'AWID' facilityrequired = 1 - elseif rfidtag == 'fdx' then -- I'm not sure why you would need to bruteforce this ¯\_(ツ)_/¯ - consolecommand = 'lf fdx sim' + elseif rfidtag == 'fdxb' then -- I'm not sure why you would need to bruteforce this ¯\_(ツ)_/¯ + consolecommand = 'lf fdxb sim' rfidtagname = 'FDX-B' facilityrequired = 1 elseif rfidtag == 'jablotron' then diff --git a/client/src/cmddata.h b/client/src/cmddata.h index b009aaaf8..785e88b49 100644 --- a/client/src/cmddata.h +++ b/client/src/cmddata.h @@ -60,7 +60,7 @@ int CmdPlot(const char *Cmd); int CmdSave(const char *Cmd); // used by cmd auto int CmdTuneSamples(const char *Cmd); // used by cmd lf hw -int ASKbiphaseDemod(int offset, int clk, int invert, int maxErr, bool verbose); // used by cmd lf em4x, lf fdx, lf guard, lf jablotron, lf nedap, lf t55xx +int ASKbiphaseDemod(int offset, int clk, int invert, int maxErr, bool verbose); // used by cmd lf em4x, lf fdxb, lf guard, lf jablotron, lf nedap, lf t55xx int ASKDemod(int clk, int invert, int maxErr, size_t maxLen, bool amplify, bool verbose, bool emSearch, uint8_t askType); // used by cmd lf em4x, lf t55xx, lf viking int ASKDemod_ext(int clk, int invert, int maxErr, size_t maxLen, bool amplify, bool verbose, bool emSearch, uint8_t askType, bool *stCheck); // used by cmd lf, lf em4x, lf noralsy, le presco, lf securekey, lf t55xx, lf visa2k int FSKrawDemod(uint8_t rfLen, uint8_t invert, uint8_t fchigh, uint8_t fclow, bool verbose); // used by cmd lf, lf em4x, lf t55xx diff --git a/client/src/cmdlf.c b/client/src/cmdlf.c index 48b830fdb..e42fd777c 100644 --- a/client/src/cmdlf.c +++ b/client/src/cmdlf.c @@ -36,7 +36,7 @@ #include "cmdlfidteck.h" // for idteck menu #include "cmdlfio.h" // for ioprox menu #include "cmdlfcotag.h" // for COTAG meny -#include "cmdlffdx.h" // for fdx-b menu +#include "cmdlffdxb.h" // for FDX-B menu #include "cmdlfgallagher.h" // for GALLAGHER menu #include "cmdlfguard.h" // for gproxii menu #include "cmdlfindala.h" // for indala menu @@ -1454,7 +1454,7 @@ int CmdLFfind(const char *Cmd) { if (demodNexWatch(true) == PM3_SUCCESS) { PrintAndLogEx(SUCCESS, "\nValid " _GREEN_("NexWatch ID") " found!"); goto out;} if (demodIndala(true) == PM3_SUCCESS) { PrintAndLogEx(SUCCESS, "\nValid " _GREEN_("Indala ID") " found!"); goto out;} if (demodEM410x(true) == PM3_SUCCESS) { PrintAndLogEx(SUCCESS, "\nValid " _GREEN_("EM410x ID") " found!"); goto out;} - if (demodFDX(true) == PM3_SUCCESS) { PrintAndLogEx(SUCCESS, "\nValid " _GREEN_("FDX-B ID") " found!"); goto out;} + if (demodFDXB(true) == PM3_SUCCESS) { PrintAndLogEx(SUCCESS, "\nValid " _GREEN_("FDX-B ID") " found!"); goto out;} if (demodGuard(true) == PM3_SUCCESS) { PrintAndLogEx(SUCCESS, "\nValid " _GREEN_("Guardall G-Prox II ID") " found!"); goto out; } if (demodIdteck(true) == PM3_SUCCESS) { PrintAndLogEx(SUCCESS, "\nValid " _GREEN_("Idteck ID") " found!"); goto out;} if (demodJablotron(true) == PM3_SUCCESS) { PrintAndLogEx(SUCCESS, "\nValid " _GREEN_("Jablotron ID") " found!"); goto out;} @@ -1527,7 +1527,7 @@ static command_t CommandTable[] = { {"awid", CmdLFAWID, AlwaysAvailable, "{ AWID RFIDs... }"}, {"cotag", CmdLFCOTAG, AlwaysAvailable, "{ COTAG CHIPs... }"}, {"em", CmdLFEM4X, AlwaysAvailable, "{ EM4X CHIPs & RFIDs... }"}, - {"fdx", CmdLFFdx, AlwaysAvailable, "{ FDX-B RFIDs... }"}, + {"fdxb", CmdLFFdxB, AlwaysAvailable, "{ FDX-B RFIDs... }"}, {"gallagher", CmdLFGallagher, AlwaysAvailable, "{ GALLAGHER RFIDs... }"}, {"gproxii", CmdLFGuard, AlwaysAvailable, "{ Guardall Prox II RFIDs... }"}, {"hid", CmdLFHID, AlwaysAvailable, "{ HID Prox RFIDs... }"}, diff --git a/client/src/cmdlffdx.c b/client/src/cmdlffdxb.c similarity index 90% rename from client/src/cmdlffdx.c rename to client/src/cmdlffdxb.c index 03c9728d7..342797503 100644 --- a/client/src/cmdlffdx.c +++ b/client/src/cmdlffdxb.c @@ -8,7 +8,7 @@ // Differential Biphase, rf/32, 128 bits (known) //----------------------------------------------------------------------------- -#include "cmdlffdx.h" +#include "cmdlffdxb.h" #include #include @@ -48,9 +48,9 @@ static int CmdHelp(const char *Cmd); -static int usage_lf_fdx_clone(void) { +static int usage_lf_fdxb_clone(void) { PrintAndLogEx(NORMAL, "Clone a FDX-B animal tag to a T55x7 or Q5/T5555 tag."); - PrintAndLogEx(NORMAL, "Usage: lf fdx clone [h] [c ] [a ] [e ] "); + PrintAndLogEx(NORMAL, "Usage: lf fdxb clone [h] [c ] [a ] [e ] "); PrintAndLogEx(NORMAL, "Options:"); PrintAndLogEx(NORMAL, " h : This help"); PrintAndLogEx(NORMAL, " c : (dec) Country code"); @@ -60,15 +60,15 @@ static int usage_lf_fdx_clone(void) { PrintAndLogEx(NORMAL, " : Specify writing to Q5/T5555 tag"); PrintAndLogEx(NORMAL, ""); PrintAndLogEx(NORMAL, "Examples:"); - PrintAndLogEx(NORMAL, _YELLOW_(" lf fdx clone c 999 n 112233 s")); - PrintAndLogEx(NORMAL, _YELLOW_(" lf fdx clone c 999 n 112233 e 16a")); + PrintAndLogEx(NORMAL, _YELLOW_(" lf fdxb clone c 999 n 112233 s")); + PrintAndLogEx(NORMAL, _YELLOW_(" lf fdxb clone c 999 n 112233 e 16a")); return PM3_SUCCESS; } -static int usage_lf_fdx_read(void) { +static int usage_lf_fdxb_read(void) { PrintAndLogEx(NORMAL, "Read FDX-B animal tag"); PrintAndLogEx(NORMAL, ""); - PrintAndLogEx(NORMAL, "Usage: lf fdx read [h] [@]"); + PrintAndLogEx(NORMAL, "Usage: lf fdxb read [h] [@]"); PrintAndLogEx(NORMAL, "Options:"); PrintAndLogEx(NORMAL, " h : This help"); PrintAndLogEx(NORMAL, " @ : run continuously until a key is pressed (optional)"); @@ -76,11 +76,11 @@ static int usage_lf_fdx_read(void) { return PM3_SUCCESS; } -static int usage_lf_fdx_sim(void) { +static int usage_lf_fdxb_sim(void) { PrintAndLogEx(NORMAL, "Enables simulation of FDX-B animal tag"); PrintAndLogEx(NORMAL, "Simulation runs until the button is pressed or another USB command is issued."); PrintAndLogEx(NORMAL, ""); - PrintAndLogEx(NORMAL, "Usage: lf fdx sim [h] [c ] [n ] [e ] "); + PrintAndLogEx(NORMAL, "Usage: lf fdxb sim [h] [c ] [n ] [e ] "); PrintAndLogEx(NORMAL, "Options:"); PrintAndLogEx(NORMAL, " h : This help"); PrintAndLogEx(NORMAL, " c : (dec) Country code"); @@ -90,8 +90,8 @@ static int usage_lf_fdx_sim(void) { PrintAndLogEx(NORMAL, " : Specify writing to Q5/T5555 tag"); PrintAndLogEx(NORMAL, ""); PrintAndLogEx(NORMAL, "Examples:"); - PrintAndLogEx(NORMAL, _YELLOW_(" lf fdx sim c 999 n 112233 s")); - PrintAndLogEx(NORMAL, _YELLOW_(" lf fdx sim c 999 n 112233 e 16a")); + PrintAndLogEx(NORMAL, _YELLOW_(" lf fdxb sim c 999 n 112233 s")); + PrintAndLogEx(NORMAL, _YELLOW_(" lf fdxb sim c 999 n 112233 e 16a")); return PM3_SUCCESS; } @@ -217,7 +217,7 @@ static int CmdFDXBdemodBI(const char *Cmd) { //see ASKDemod for what args are accepted //almost the same demod as cmddata.c/CmdFDXBdemodBI -int demodFDX(bool verbose) { +int demodFDXB(bool verbose) { //Differential Biphase / di-phase (inverted biphase) //get binary from ask wave if (ASKbiphaseDemod(0, 32, 1, 100, false) != PM3_SUCCESS) { @@ -321,12 +321,12 @@ int demodFDX(bool verbose) { return PM3_SUCCESS; } -static int CmdFdxDemod(const char *Cmd) { +static int CmdFdxBDemod(const char *Cmd) { (void)Cmd; // Cmd is not used so far - return demodFDX(true); + return demodFDXB(true); } -static int CmdFdxRead(const char *Cmd) { +static int CmdFdxBRead(const char *Cmd) { sample_config config; memset(&config, 0, sizeof(sample_config)); int retval = lf_getconfig(&config); @@ -341,7 +341,7 @@ static int CmdFdxRead(const char *Cmd) { while (param_getchar(Cmd, cmdp) != 0x00 && !errors) { switch (tolower(param_getchar(Cmd, cmdp))) { case 'h': - return usage_lf_fdx_read(); + return usage_lf_fdxb_read(); case '@': continuous = true; cmdp++; @@ -354,7 +354,7 @@ static int CmdFdxRead(const char *Cmd) { } //Validations - if (errors) return usage_lf_fdx_read(); + if (errors) return usage_lf_fdxb_read(); int16_t tmp_div = config.divisor; if (tmp_div != LF_DIVISOR_134) { config.divisor = LF_DIVISOR_134; @@ -375,7 +375,7 @@ static int CmdFdxRead(const char *Cmd) { PrintAndLogEx(ERR, "failed to get LF read from device"); return retval; } - ret = demodFDX(!continuous); // be verbose only if not in continuous mode + ret = demodFDXB(!continuous); // be verbose only if not in continuous mode if (kbd_enter_pressed()) { break; } @@ -392,7 +392,7 @@ static int CmdFdxRead(const char *Cmd) { return ret; } -static int CmdFdxClone(const char *Cmd) { +static int CmdFdxBClone(const char *Cmd) { uint32_t country_code = 0, extended = 0; uint64_t national_code = 0; @@ -402,7 +402,7 @@ static int CmdFdxClone(const char *Cmd) { while (param_getchar(Cmd, cmdp) != 0x00 && !errors) { switch (tolower(param_getchar(Cmd, cmdp))) { case 'h': - return usage_lf_fdx_clone(); + return usage_lf_fdxb_clone(); case 'c': { country_code = param_get32ex(Cmd, cmdp + 1, 0, 10); cmdp += 2; @@ -436,7 +436,7 @@ static int CmdFdxClone(const char *Cmd) { } } } - if (errors || strlen(Cmd) == 0) return usage_lf_fdx_clone(); + if (errors || strlen(Cmd) == 0) return usage_lf_fdxb_clone(); verify_values(&national_code, &country_code, &extended, &is_animal); @@ -448,7 +448,7 @@ static int CmdFdxClone(const char *Cmd) { PrintAndLogEx(INFO, " RFU 0"); uint8_t *bits = calloc(128, sizeof(uint8_t)); - if (getFDXBits(national_code, country_code, is_animal, has_extended, extended, bits) != PM3_SUCCESS) { + if (getFDXBBits(national_code, country_code, is_animal, has_extended, extended, bits) != PM3_SUCCESS) { PrintAndLogEx(ERR, "Error with tag bitstream generation."); free(bits); return PM3_ESOFT; @@ -473,11 +473,11 @@ static int CmdFdxClone(const char *Cmd) { int res = clone_t55xx_tag(blocks, ARRAYLEN(blocks)); PrintAndLogEx(SUCCESS, "Done"); - PrintAndLogEx(HINT, "Hint: try " _YELLOW_("`lf fdx read`") " to verify"); + PrintAndLogEx(HINT, "Hint: try " _YELLOW_("`lf fdxb read`") " to verify"); return res; } -static int CmdFdxSim(const char *Cmd) { +static int CmdFdxBSim(const char *Cmd) { uint32_t country_code = 0, extended = 0; uint64_t national_code = 0; @@ -487,7 +487,7 @@ static int CmdFdxSim(const char *Cmd) { while (param_getchar(Cmd, cmdp) != 0x00 && !errors) { switch (tolower(param_getchar(Cmd, cmdp))) { case 'h': - return usage_lf_fdx_sim(); + return usage_lf_fdxb_sim(); case 'c': { country_code = param_get32ex(Cmd, cmdp + 1, 0, 10); cmdp += 2; @@ -516,7 +516,7 @@ static int CmdFdxSim(const char *Cmd) { } } } - if (errors) return usage_lf_fdx_sim(); + if (errors) return usage_lf_fdxb_sim(); verify_values(&national_code, &country_code, &extended, &is_animal); @@ -530,7 +530,7 @@ static int CmdFdxSim(const char *Cmd) { PrintAndLogEx(SUCCESS, "Simulating FDX-B animal ID: " _GREEN_("%04u-%"PRIu64), country_code, national_code); uint8_t *bits = calloc(128, sizeof(uint8_t)); - if (getFDXBits(national_code, country_code, is_animal, (extended > 0), extended, bits) != PM3_SUCCESS) { + if (getFDXBBits(national_code, country_code, is_animal, (extended > 0), extended, bits) != PM3_SUCCESS) { PrintAndLogEx(ERR, "Error with tag bitstream generation."); free(bits); return PM3_ESOFT; @@ -562,10 +562,10 @@ static int CmdFdxSim(const char *Cmd) { static command_t CommandTable[] = { {"help", CmdHelp, AlwaysAvailable, "this help"}, - {"demod", CmdFdxDemod, AlwaysAvailable, "demodulate a FDX-B ISO11784/85 tag from the GraphBuffer"}, - {"read", CmdFdxRead, IfPm3Lf, "attempt to read at 134kHz and extract tag data"}, - {"clone", CmdFdxClone, IfPm3Lf, "clone animal ID tag to T55x7 or Q5/T5555"}, - {"sim", CmdFdxSim, IfPm3Lf, "simulate Animal ID tag"}, + {"demod", CmdFdxBDemod, AlwaysAvailable, "demodulate a FDX-B ISO11784/85 tag from the GraphBuffer"}, + {"read", CmdFdxBRead, IfPm3Lf, "attempt to read at 134kHz and extract tag data"}, + {"clone", CmdFdxBClone, IfPm3Lf, "clone animal ID tag to T55x7 or Q5/T5555"}, + {"sim", CmdFdxBSim, IfPm3Lf, "simulate Animal ID tag"}, {NULL, NULL, NULL, NULL} }; @@ -575,7 +575,7 @@ static int CmdHelp(const char *Cmd) { return PM3_SUCCESS; } -int CmdLFFdx(const char *Cmd) { +int CmdLFFdxB(const char *Cmd) { clearCommandBuffer(); return CmdsParse(CommandTable, Cmd); } @@ -594,7 +594,7 @@ int detectFDXB(uint8_t *dest, size_t *size) { return (int)startIdx; } -int getFDXBits(uint64_t national_code, uint16_t country_code, uint8_t is_animal, uint8_t is_extended, uint32_t extended, uint8_t *bits) { +int getFDXBBits(uint64_t national_code, uint16_t country_code, uint8_t is_animal, uint8_t is_extended, uint32_t extended, uint8_t *bits) { // add preamble ten 0x00 and one 0x01 memset(bits, 0x00, 10); @@ -634,7 +634,7 @@ int getFDXBits(uint64_t national_code, uint16_t country_code, uint8_t is_animal, raw[i] = bytebits_to_byte(bits + 11 + i * 9, 8); init_table(CRC_11784); - uint16_t crc = crc16_fdx(raw, 8); + uint16_t crc = crc16_fdxb(raw, 8); num_to_bytebitsLSBF(crc >> 0, 8, bits + 83); num_to_bytebitsLSBF(crc >> 8, 8, bits + 92); diff --git a/client/src/cmdlffdx.h b/client/src/cmdlffdxb.h similarity index 68% rename from client/src/cmdlffdx.h rename to client/src/cmdlffdxb.h index 637a2d5c7..3667c5b67 100644 --- a/client/src/cmdlffdx.h +++ b/client/src/cmdlffdxb.h @@ -6,15 +6,15 @@ //----------------------------------------------------------------------------- // Low frequency fdx-b tag commands //----------------------------------------------------------------------------- -#ifndef CMDLFFDX_H__ -#define CMDLFFDX_H__ +#ifndef CMDLFFDXB_H__ +#define CMDLFFDXB_H__ #include "common.h" -int CmdLFFdx(const char *Cmd); +int CmdLFFdxB(const char *Cmd); int detectFDXB(uint8_t *dest, size_t *size); -int demodFDX(bool verbose); -int getFDXBits(uint64_t national_code, uint16_t country_code, uint8_t is_animal, uint8_t is_extended, uint32_t extended, uint8_t *bits); +int demodFDXB(bool verbose); +int getFDXBBits(uint64_t national_code, uint16_t country_code, uint8_t is_animal, uint8_t is_extended, uint32_t extended, uint8_t *bits); #endif diff --git a/client/src/cmdlft55xx.c b/client/src/cmdlft55xx.c index b64d020a1..919debf4c 100644 --- a/client/src/cmdlft55xx.c +++ b/client/src/cmdlft55xx.c @@ -383,7 +383,7 @@ static int usage_t55xx_clonehelp(void) { // todo: implement restore // PrintAndLogEx(NORMAL, _GREEN_("lf em 4x05_write")); // PrintAndLogEx(NORMAL, _GREEN_("lf em 4x50_write")); - PrintAndLogEx(NORMAL, _GREEN_("lf fdx clone")); + PrintAndLogEx(NORMAL, _GREEN_("lf fdxb clone")); PrintAndLogEx(NORMAL, _GREEN_("lf gallagher clone")); PrintAndLogEx(NORMAL, _GREEN_("lf gproxii clone")); PrintAndLogEx(NORMAL, _GREEN_("lf hid clone")); diff --git a/common/crc16.c b/common/crc16.c index 9fea3d54a..d1573b7d0 100644 --- a/common/crc16.c +++ b/common/crc16.c @@ -191,7 +191,7 @@ void compute_crc(CrcType_t ct, const uint8_t *d, size_t n, uint8_t *first, uint8 crc = crc16_kermit(d, n); break; case CRC_11784: - crc = crc16_fdx(d, n); + crc = crc16_fdxb(d, n); break; case CRC_LEGIC: // TODO @@ -225,7 +225,7 @@ uint16_t Crc16ex(CrcType_t ct, const uint8_t *d, size_t n) { case CRC_KERMIT: return crc16_kermit(d, n); case CRC_11784: - return crc16_fdx(d, n); + return crc16_fdxb(d, n); case CRC_LEGIC: // TODO return 0; @@ -270,7 +270,7 @@ bool check_crc(CrcType_t ct, const uint8_t *d, size_t n) { case CRC_KERMIT: return (crc16_kermit(d, n) == 0); case CRC_11784: - return (crc16_fdx(d, n) == 0); + return (crc16_fdxb(d, n) == 0); case CRC_LEGIC: // TODO return false; @@ -288,7 +288,7 @@ uint16_t crc16_ccitt(uint8_t const *d, size_t n) { // FDX-B ISO11784/85) uses KERMIT/CCITT // poly 0x xx init=0x000 refin=false refout=true xorout=0x0000 ... -uint16_t crc16_fdx(uint8_t const *d, size_t n) { +uint16_t crc16_fdxb(uint8_t const *d, size_t n) { return crc16_fast(d, n, 0x0000, false, true); } diff --git a/common/crc16.h b/common/crc16.h index 8a726fcaf..fba4ea72f 100644 --- a/common/crc16.h +++ b/common/crc16.h @@ -44,7 +44,7 @@ bool check_crc(CrcType_t ct, const uint8_t *d, size_t n); uint16_t crc16_ccitt(uint8_t const *d, size_t n); // Calculate CRC-16/KERMIT (FDX-B ISO11784/85) LF -uint16_t crc16_fdx(uint8_t const *d, size_t n); +uint16_t crc16_fdxb(uint8_t const *d, size_t n); // Calculate CRC-16/KERMIT uint16_t crc16_kermit(uint8_t const *d, size_t n); diff --git a/tools/pm3_tests.sh b/tools/pm3_tests.sh index 426d26465..d4a644dbb 100755 --- a/tools/pm3_tests.sh +++ b/tools/pm3_tests.sh @@ -342,7 +342,7 @@ while true; do if ! CheckExecute "lf EM410x test" "$CLIENTBIN -c 'data load -f traces/lf_EM4102-1.pm3;lf search 1'" "EM410x ID found"; then break; fi if ! CheckExecute "lf EM4x05 test" "$CLIENTBIN -c 'data load -f traces/lf_EM4x05.pm3;lf search 1'" "FDX-B ID found"; then break; fi if ! CheckExecute "lf FDX-B test" "$CLIENTBIN -c 'data load -f traces/lf_HomeAgain1600.pm3;lf search 1'" "FDX-B ID found"; then break; fi - if ! CheckExecute "lf FDX/BioThermo test" "$CLIENTBIN -c 'data load -f traces/lf_FDX_Bio-Thermo.pm3; lf fdx demod'" "95.2 F / 35.1 C"; then break; fi + if ! CheckExecute "lf FDX/BioThermo test" "$CLIENTBIN -c 'data load -f traces/lf_FDX_Bio-Thermo.pm3; lf fdxb demod'" "95.2 F / 35.1 C"; then break; fi if ! CheckExecute "lf GPROXII test" "$CLIENTBIN -c 'data load -f traces/lf_GProx_36_30_14489.pm3; lf search 1'" "Guardall G-Prox II ID found"; then break; fi if ! CheckExecute "lf HID Prox test" "$CLIENTBIN -c 'data load -f traces/lf_HID-proxCardII-05512-11432784-1.pm3;lf search 1'" "HID Prox ID found"; then break; fi if ! CheckExecute "lf IDTECK test" "$CLIENTBIN -c 'data load -f traces/lf_IDTECK_4944544BAC40E069.pm3; lf search 1'" "Idteck ID found"; then break; fi @@ -364,11 +364,11 @@ while true; do if ! CheckExecute slow "lf T55 em410x test" "$CLIENTBIN -c 'data load -f traces/lf_ATA5577_em410x.pm3; lf search 1'" "EM410x ID found"; then break; fi if ! CheckExecute slow "lf T55 em410x test2" "$CLIENTBIN -c 'data load -f traces/lf_ATA5577_em410x.pm3; lf em 410x_demod demod'" \ "EM TAG ID : 0F0368568B"; then break; fi - if ! CheckExecute slow "lf T55 fdx_animal test" "$CLIENTBIN -c 'data load -f traces/lf_ATA5577_fdx_animal.pm3; lf search 1'" "FDX-B ID found"; then break; fi - if ! CheckExecute slow "lf T55 fdx_animal test2" "$CLIENTBIN -c 'data load -f traces/lf_ATA5577_fdx_animal.pm3; lf fdx demod'" \ + if ! CheckExecute slow "lf T55 fdxb_animal test" "$CLIENTBIN -c 'data load -f traces/lf_ATA5577_fdxb_animal.pm3; lf search 1'" "FDX-B ID found"; then break; fi + if ! CheckExecute slow "lf T55 fdxb_animal test2" "$CLIENTBIN -c 'data load -f traces/lf_ATA5577_fdxb_animal.pm3; lf fdxb demod'" \ "Animal ID 0999-000000112233"; then break; fi - if ! CheckExecute slow "lf T55 fdx_extended test" "$CLIENTBIN -c 'data load -f traces/lf_ATA5577_fdx_extended.pm3; lf search 1'" "FDX-B ID found"; then break; fi - if ! CheckExecute slow "lf T55 fdx_extended test2" "$CLIENTBIN -c 'data load -f traces/lf_ATA5577_fdx_extended.pm3; lf fdx demod'" \ + if ! CheckExecute slow "lf T55 fdxb_extended test" "$CLIENTBIN -c 'data load -f traces/lf_ATA5577_fdxb_extended.pm3; lf search 1'" "FDX-B ID found"; then break; fi + if ! CheckExecute slow "lf T55 fdxb_extended test2" "$CLIENTBIN -c 'data load -f traces/lf_ATA5577_fdxb_extended.pm3; lf fdxb demod'" \ "temperature 95.2 F / 35.1 C"; then break; fi if ! CheckExecute slow "lf T55 gallagher test" "$CLIENTBIN -c 'data load -f traces/lf_ATA5577_gallagher.pm3; lf search 1'" "GALLAGHER ID found"; then break; fi if ! CheckExecute slow "lf T55 gallagher test2" "$CLIENTBIN -c 'data load -f traces/lf_ATA5577_gallagher.pm3; lf gallagher demod'" \ diff --git a/traces/lf_ATA5577_fdx_animal.pm3 b/traces/lf_ATA5577_fdxb_animal.pm3 similarity index 100% rename from traces/lf_ATA5577_fdx_animal.pm3 rename to traces/lf_ATA5577_fdxb_animal.pm3 diff --git a/traces/lf_ATA5577_fdx_extended.pm3 b/traces/lf_ATA5577_fdxb_extended.pm3 similarity index 100% rename from traces/lf_ATA5577_fdx_extended.pm3 rename to traces/lf_ATA5577_fdxb_extended.pm3 diff --git a/traces/lf_FDX_Bio-Thermo.pm3 b/traces/lf_FDXB_Bio-Thermo.pm3 similarity index 100% rename from traces/lf_FDX_Bio-Thermo.pm3 rename to traces/lf_FDXB_Bio-Thermo.pm3