#pragma once #include #include "Common.hpp" struct AES128Key { ALIGNED(16) uint8_t key[16*11]; }; void generateSecretKey(std::array& userKey); void expandKey(const std::array& userKey, AES128Key& key); // generates an AES-128 CBC MAC std::array cbcmac(const AES128Key& key, const uint8_t* data, size_t len);