#pragma once #include #include #include #include "mbedtls/md.h" #include "config.h" // Returns a 4-byte truncated HMAC-SHA256 over `data` of `len` bytes. inline uint32_t hmac_sig(const uint8_t *data, size_t len) { static const char *key = HMAC_KEY; uint8_t out[32]; mbedtls_md_hmac( mbedtls_md_info_from_type(MBEDTLS_MD_SHA256), reinterpret_cast(key), strlen(key), data, len, out); uint32_t sig; memcpy(&sig, out, 4); return sig; }