153 uint8_t len = 16 - posn;
156 for (uint8_t index = 0; index < len; ++index)
157 omac[posn++] ^= data[index];
181 for (uint8_t index = 0; index < 16; ++index)
182 omac[index] ^= ((
const uint8_t *)p)[index];
186 for (uint8_t index = 0; index < 16; ++index)
187 omac[index] ^= ((
const uint8_t *)b)[index];
virtual void encryptBlock(uint8_t *output, const uint8_t *input)=0
Encrypts a single block using this cipher.
static void dblEAX(uint32_t V[4])
Doubles a value in the GF(2^128) field using EAX conventions.
void initFirst(uint8_t omac[16])
Initialises the first OMAC hashing context and creates the B value.
void clear()
Clears all security-sensitive state from this object.
void update(uint8_t omac[16], const uint8_t *data, size_t size)
Updates an OMAC hashing context with more data.
~OMAC()
Destroys this OMAC object.
void initNext(uint8_t omac[16], uint8_t tag)
Initialises or restarts an OMAC hashing context.
void finalize(uint8_t omac[16])
Finalises an OMAC hashing context.
OMAC()
Constructs a new OMAC object.