From 0fa708acb2eb5222855e77cf401e282b2b9b6af3 Mon Sep 17 00:00:00 2001 From: merlokk <807634+merlokk@users.noreply.github.com> Date: Fri, 9 Jul 2021 01:26:47 +0300 Subject: [PATCH] add crc32 check --- client/src/mifare/desfire_crypto.c | 6 ++++++ client/src/mifare/desfire_crypto.h | 1 + 2 files changed, 7 insertions(+) diff --git a/client/src/mifare/desfire_crypto.c b/client/src/mifare/desfire_crypto.c index 935083ab4..137eb8089 100644 --- a/client/src/mifare/desfire_crypto.c +++ b/client/src/mifare/desfire_crypto.c @@ -976,6 +976,12 @@ void desfire_crc32_append(uint8_t *data, const size_t len) { crc32_ex(data, len, data + len); } +bool desfire_crc32_check(uint8_t *data, const size_t len, uint8_t *crc) { + uint8_t ccrc[4] = {0}; + crc32_ex(data, len, ccrc); + return (memcmp(ccrc, crc, 4) == 0); +} + void iso14443a_crc_append(uint8_t *data, size_t len) { return compute_crc(CRC_14443_A, data, len, data + len, data + len + 1); } diff --git a/client/src/mifare/desfire_crypto.h b/client/src/mifare/desfire_crypto.h index 346a7e50c..8cdf76ab6 100644 --- a/client/src/mifare/desfire_crypto.h +++ b/client/src/mifare/desfire_crypto.h @@ -149,6 +149,7 @@ void mifare_kdf_an10922(const desfirekey_t key, const uint8_t *data, size_t len) void desfire_crc32(const uint8_t *data, const size_t len, uint8_t *crc); void desfire_crc32_append(uint8_t *data, const size_t len); +bool desfire_crc32_check(uint8_t *data, const size_t len, uint8_t *crc); void iso14443a_crc_append(uint8_t *data, size_t len); void iso14443a_crc(uint8_t *data, size_t len, uint8_t *pbtCrc); #endif