From dd32fceb5429a650a30de1a352356f87737be856 Mon Sep 17 00:00:00 2001 From: iceman1001 Date: Sat, 14 Sep 2024 18:38:28 +0200 Subject: [PATCH] support function --- client/src/util.c | 7 +++++++ client/src/util.h | 1 + 2 files changed, 8 insertions(+) diff --git a/client/src/util.c b/client/src/util.c index fa3df7d79..904846e94 100644 --- a/client/src/util.c +++ b/client/src/util.c @@ -1153,6 +1153,13 @@ void hex_xor(uint8_t *d, const uint8_t *x, int n) { } } +void hex_xor_token(uint8_t *d, const uint8_t *x, int dn, int xn) { + while (dn--) { + d[dn] ^= x[dn % xn]; + } +} + + // return parity bit required to match type uint8_t GetParity(const uint8_t *bits, uint8_t type, int length) { int x; diff --git a/client/src/util.h b/client/src/util.h index 1606cb81c..d4c34eb46 100644 --- a/client/src/util.h +++ b/client/src/util.h @@ -142,6 +142,7 @@ void bytes_2_binstr(char *target, const uint8_t *source, size_t sourcelen); void binstr_2_bytes(uint8_t *target, size_t *targetlen, const char *src); void hex_xor(uint8_t *d, const uint8_t *x, int n); +void hex_xor_token(uint8_t *d, const uint8_t *x, int dn, int xn); uint8_t GetParity(const uint8_t *bits, uint8_t type, int length); void wiegand_add_parity(uint8_t *target, const uint8_t *source, uint8_t length);