34 void clean(
void *dest,
size_t size)
39 volatile uint8_t *d = (
volatile uint8_t *)dest;
69 bool secure_compare(
const void *data1,
const void *data2,
size_t len)
72 const uint8_t *d1 = (
const uint8_t *)data1;
73 const uint8_t *d2 = (
const uint8_t *)data2;
75 result |= (*d1++ ^ *d2++);
78 return (
bool)((((uint16_t)0x0100) - result) >> 8);
96 uint8_t crypto_crc8(uint8_t tag,
const void *data,
unsigned size)
98 const uint8_t *d = (
const uint8_t *)data;
99 uint8_t crc = 0xFF ^ tag;
103 for (bit = 0; bit < 8; ++bit) {
108 uint8_t generator = (uint8_t)((((int8_t)crc) >> 7) & 0x1D);
109 crc = (crc << 1) ^ generator;