From 40331511ed9c117703c3097f23e3a2f17b17e993 Mon Sep 17 00:00:00 2001 From: Martin Kaiser Date: Sat, 6 Feb 2016 13:57:56 +0100 Subject: add functions to calculate the CRC of an ISO14443-A message Change-Id: I1ccd9885746a6044f298d7d531a9bc009a70288e Reviewed-on: https://code.wireshark.org/review/13802 Petri-Dish: Martin Kaiser Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman --- wsutil/crc16.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'wsutil/crc16.c') diff --git a/wsutil/crc16.c b/wsutil/crc16.c index 8febfa1c66..2ff576c200 100644 --- a/wsutil/crc16.c +++ b/wsutil/crc16.c @@ -346,6 +346,14 @@ guint16 crc16_ccitt_seed(const guint8 *buf, guint len, guint16 seed) ^ crc16_ccitt_xorout; } +/* ISO14443-3, section 6.2.4: For ISO14443-A, the polynomial 0x1021 is + used, the initial register value shall be 0x6363, the final register + value is not XORed with anything. */ +guint16 crc16_iso14443a(const guint8 *buf, guint len) +{ + return crc16_reflected(buf,len, 0x6363 ,crc16_ccitt_table_reverse); +} + guint16 crc16_0x5935(const guint8 *buf, guint32 len, guint16 seed) { return crc16_unreflected(buf, len, seed, crc16_precompiled_5935); -- cgit v1.2.1