diff --git a/client/src/mifare/desfire_crypto.c b/client/src/mifare/desfire_crypto.c index 137eb8089..23c8b1fd9 100644 --- a/client/src/mifare/desfire_crypto.c +++ b/client/src/mifare/desfire_crypto.c @@ -978,7 +978,7 @@ 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) { uint8_t ccrc[4] = {0}; - crc32_ex(data, len, ccrc); + desfire_crc32(data, len, ccrc); return (memcmp(ccrc, crc, 4) == 0); } @@ -989,3 +989,9 @@ void iso14443a_crc_append(uint8_t *data, size_t len) { void iso14443a_crc(uint8_t *data, size_t len, uint8_t *pbtCrc) { return compute_crc(CRC_14443_A, data, len, pbtCrc, pbtCrc + 1); } + +bool iso14443a_crc_check(uint8_t *data, const size_t len, uint8_t *crc) { + uint8_t ccrc[2] = {0}; + iso14443a_crc(data, len, ccrc); + return (memcmp(ccrc, crc, 2) == 0); +} diff --git a/client/src/mifare/desfire_crypto.h b/client/src/mifare/desfire_crypto.h index 8cdf76ab6..689c0d56c 100644 --- a/client/src/mifare/desfire_crypto.h +++ b/client/src/mifare/desfire_crypto.h @@ -152,4 +152,5 @@ 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); +bool iso14443a_crc_check(uint8_t *data, const size_t len, uint8_t *crc); #endif