+ //Check the CRC status
+ uint8_t crcStatus = 2;
+
+ if (data_len > 2) {
+ uint8_t b1, b2;
+ if(protocol == ICLASS)
+ {
+ crcStatus = iclass_CRC_check(isResponse, frame, data_len);
+
+ }else if (protocol == ISO_14443B)
+ {
+ crcStatus = iso14443B_CRC_check(isResponse, frame, data_len);
+ }
+ else if (protocol == ISO_14443A){//Iso 14443a
+
+ ComputeCrc14443(CRC_14443_A, frame, data_len-2, &b1, &b2);
+
+ if (b1 != frame[data_len-2] || b2 != frame[data_len-1]) {
+ if(!(isResponse & (data_len < 6)))
+ {
+ crcStatus = 0;
+ }
+ }
+ }
+ }
+ //0 CRC-command, CRC not ok
+ //1 CRC-command, CRC ok
+ //2 Not crc-command