From 5d66bcfd7533eec94d75be40974a8e6ed224edd6 Mon Sep 17 00:00:00 2001 From: douniwan5788 Date: Mon, 26 Aug 2024 01:54:32 +0800 Subject: [PATCH] fix: WITH_EM4x70. Get rid of the dependency on WITH_ICLASS. --- armsrc/em4x70.c | 2 +- armsrc/optimized_cipherutils.c | 21 --------------------- armsrc/optimized_cipherutils.h | 3 --- client/src/loclass/cipher.c | 1 + client/src/loclass/cipherutils.c | 12 ------------ client/src/loclass/cipherutils.h | 3 --- common/commonutil.c | 14 ++++++++++++++ common/commonutil.h | 3 +++ common_arm/Makefile.hal | 1 + 9 files changed, 20 insertions(+), 40 deletions(-) diff --git a/armsrc/em4x70.c b/armsrc/em4x70.c index 2f92dfbf1..547ce5ce2 100644 --- a/armsrc/em4x70.c +++ b/armsrc/em4x70.c @@ -377,7 +377,7 @@ static int bruteforce(const uint8_t address, const uint8_t *rnd, const uint8_t * uint8_t rev_rnd[7]; uint8_t temp_rnd[7]; - reverse_arraycopy((uint8_t *)rnd, rev_rnd, sizeof(rev_rnd)); + reverse_arraybytes_copy((uint8_t *)rnd, rev_rnd, sizeof(rev_rnd)); memcpy(temp_rnd, rnd, sizeof(temp_rnd)); for (int k = start_key; k <= 0xFFFF; ++k) { diff --git a/armsrc/optimized_cipherutils.c b/armsrc/optimized_cipherutils.c index 66a618291..4260ea12d 100644 --- a/armsrc/optimized_cipherutils.c +++ b/armsrc/optimized_cipherutils.c @@ -114,24 +114,3 @@ uint64_t x_bytes_to_num(uint8_t *src, size_t len) { return num; } -uint8_t reversebyte(uint8_t b) { - b = (b & 0xF0) >> 4 | (b & 0x0F) << 4; - b = (b & 0xCC) >> 2 | (b & 0x33) << 2; - b = (b & 0xAA) >> 1 | (b & 0x55) << 1; - return b; -} - -void reverse_arraybytes(uint8_t *arr, size_t len) { - size_t i; - for (i = 0; i < len ; i++) { - arr[i] = reversebyte(arr[i]); - } -} - -void reverse_arraycopy(uint8_t *arr, uint8_t *dest, size_t len) { - size_t i; - for (i = 0; i < len ; i++) { - dest[i] = reversebyte(arr[i]); - } -} - diff --git a/armsrc/optimized_cipherutils.h b/armsrc/optimized_cipherutils.h index 8d8a75f8c..d6a046bf9 100644 --- a/armsrc/optimized_cipherutils.h +++ b/armsrc/optimized_cipherutils.h @@ -57,7 +57,4 @@ int bitsLeft(BitstreamIn_t *stream); void push6bits(BitstreamOut_t *stream, uint8_t bits); void x_num_to_bytes(uint64_t n, size_t len, uint8_t *dest); uint64_t x_bytes_to_num(uint8_t *src, size_t len); -uint8_t reversebyte(uint8_t b); -void reverse_arraybytes(uint8_t *arr, size_t len); -void reverse_arraycopy(uint8_t *arr, uint8_t *dest, size_t len); #endif // CIPHERUTILS_H diff --git a/client/src/loclass/cipher.c b/client/src/loclass/cipher.c index 974eb5060..733f6479a 100644 --- a/client/src/loclass/cipher.c +++ b/client/src/loclass/cipher.c @@ -34,6 +34,7 @@ #include "cipher.h" #include "cipherutils.h" +#include "commonutil.h" #include #include #include diff --git a/client/src/loclass/cipherutils.c b/client/src/loclass/cipherutils.c index f3572b823..9a55979ff 100644 --- a/client/src/loclass/cipherutils.c +++ b/client/src/loclass/cipherutils.c @@ -125,18 +125,6 @@ uint64_t x_bytes_to_num(uint8_t *src, size_t len) { return num; } -void reverse_arraybytes(uint8_t *arr, size_t len) { - for (size_t i = 0; i < len ; i++) { - arr[i] = reflect8(arr[i]); - } -} - -void reverse_arraycopy(uint8_t *arr, uint8_t *dest, size_t len) { - for (size_t i = 0; i < len ; i++) { - dest[i] = reflect8(arr[i]); - } -} - void printarr(const char *name, uint8_t *arr, int len) { if (name == NULL || arr == NULL) return; diff --git a/client/src/loclass/cipherutils.h b/client/src/loclass/cipherutils.h index c2538901e..490c16d3e 100644 --- a/client/src/loclass/cipherutils.h +++ b/client/src/loclass/cipherutils.h @@ -62,9 +62,6 @@ int testCipherUtils(void); void push6bits(BitstreamOut_t *stream, uint8_t bits); void x_num_to_bytes(uint64_t n, size_t len, uint8_t *dest); uint64_t x_bytes_to_num(uint8_t *src, size_t len); -uint8_t reversebyte(uint8_t b); -void reverse_arraybytes(uint8_t *arr, size_t len); -void reverse_arraycopy(uint8_t *arr, uint8_t *dest, size_t len); void printarr(const char *name, uint8_t *arr, int len); void printarr_human_readable(const char *title, uint8_t *arr, int len); #endif // CIPHERUTILS_H diff --git a/common/commonutil.c b/common/commonutil.c index 157998949..87bc051c2 100644 --- a/common/commonutil.c +++ b/common/commonutil.c @@ -549,3 +549,17 @@ bool hexstr_to_byte_array(const char *hexstr, uint8_t *d, size_t *n) { } return true; } + +void reverse_arraybytes(uint8_t *arr, size_t len) { + size_t i; + for (i = 0; i < len ; i++) { + arr[i] = reflect8(arr[i]); + } +} + +void reverse_arraybytes_copy(uint8_t *arr, uint8_t *dest, size_t len) { + size_t i; + for (i = 0; i < len ; i++) { + dest[i] = reflect8(arr[i]); + } +} \ No newline at end of file diff --git a/common/commonutil.h b/common/commonutil.h index a7ba4bf98..c5c7279d9 100644 --- a/common/commonutil.h +++ b/common/commonutil.h @@ -130,4 +130,7 @@ void reverse_array(uint8_t *d, size_t n); void reverse_array_copy(const uint8_t *src, int src_len, uint8_t *dest); bool hexstr_to_byte_array(const char *hexstr, uint8_t *d, size_t *n); + +void reverse_arraybytes(uint8_t *arr, size_t len); +void reverse_arraybytes_copy(uint8_t *arr, uint8_t *dest, size_t len); #endif diff --git a/common_arm/Makefile.hal b/common_arm/Makefile.hal index d86d1a76d..179dd4b15 100644 --- a/common_arm/Makefile.hal +++ b/common_arm/Makefile.hal @@ -73,6 +73,7 @@ and you can specify which parts to skip in order to reduce the size: SKIP_LF=1 SKIP_HITAG=1 SKIP_EM4x50=1 +SKIP_EM4x70=1 SKIP_ISO15693=1 SKIP_LEGICRF=1 SKIP_ISO14443b=1