#include #include uint8_t rt_authenticate(int32_t token) { uint8_t sum; if (token == 0) { rt_ram.accesscode.code = 0; } else { sum = 0xE2; sum ^= rol8( (token >> 0) & 0xff, 3 ); sum ^= rol8( (token >> 8) & 0xff, 5 ); sum ^= rol8( (token >> 16) & 0xff, 2 ); sum ^= rol8( (token >> 24) & 0xff, 1 ); if (sum) { sum ^= rol8( (rt_ram.eeprom.serial.family),6 ); }; if (!sum) { rt_ram.accesscode.code = token; rt_ram.eeprom.last_auth = rt_ram.accesscode.servicepartner; runtime_signal(); return -1; } else { rt_ram.accesscode.code = 0; }; }; runtime_signal(); return 0; };