6 void mic_set_secret(char newsecret[16]) {
7 my_strncpy(mic_secret, newsecret, 16);
10 bool mic_verify(void* msg) {
14 while (*p != '\0' && *p != '|') p++;
15 if (*p == '\0') return 0;
16 u16 crc1 = docrc((char*)¤t_challenge, 2, 0, 0);
17 crc1 = docrc(mic_secret, 16, 0, crc1);
18 crc1 = docrc(message, p-message, 0, crc1);
27 crc2 = hex2u8(*p, *(p+1)) << 8;
28 crc2 |= hex2u8(*(p+2), *(p+3));
30 if (crc1 != crc2) return 0;