For consistency and safety, change the CMC and HSH functions to accept signed lengths and handle negative values as errors. Also, change the input data type to void * to not require casting in the caller.
Identify the CMAC ciphers with an enum instead of string.
Add cmac.h and stubs for cipher-based message authentication code (CMAC).