From 50d1dfea775c9220513070b567d9d1054ed93186 Mon Sep 17 00:00:00 2001 From: iceman1001 Date: Mon, 16 Dec 2019 13:26:13 +0100 Subject: [PATCH] add cardx crc skeleton, will need to adapt --- common/crc.c | 8 ++++++++ common/crc.h | 2 ++ 2 files changed, 10 insertions(+) diff --git a/common/crc.c b/common/crc.c index 0237fb36a..22bfad035 100644 --- a/common/crc.c +++ b/common/crc.c @@ -126,3 +126,11 @@ uint32_t CRC8Legic(uint8_t *buff, size_t size) { crc_update2(&crc, buff[i], 8); return reflect8(crc_finish(&crc)); } +// width=8 poly=0x107, init=0x2C refin=true refout=true xorout=0x0000 check=0 name="CRC-8/CARDX" +uint32_t CRC8Cardx(uint8_t *buff, size_t size) { + crc_t crc; + crc_init_ref(&crc, 8, 0x107, 0x2C, 0, true, true); + for (size_t i = 0; i < size; ++i) + crc_update2(&crc, buff[i], 8); + return crc_finish(&crc); +} diff --git a/common/crc.h b/common/crc.h index 6dcfe918f..772c278b8 100644 --- a/common/crc.h +++ b/common/crc.h @@ -73,4 +73,6 @@ uint32_t CRC4Legic(uint8_t *buff, size_t size); // Calculate CRC-8/Legic checksum uint32_t CRC8Legic(uint8_t *buff, size_t size); +// Calculate CRC-8/Cardx checksum +uint32_t CRC8Cardx(uint8_t *buff, size_t size); #endif /* __CRC_H */