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.