ica_des_cmac
Purpose
Authenticate data or verify the authenticity of data with a DES key using the Block Cipher Based Message Authentication Code (CMAC) mode, as described in NIST Special Publication 800-38B. ica_des_cmac can be used to authenticate or verify the authenticity of a complete message.
Format
unsigned int ica_des_cmac(const unsigned char *message,
unsigned long message_length,
unsigned char *mac,
unsigned int mac_length,
const unsigned char *key,
unsigned int direction);
Required hardware support
- KMAC-DEA
- PCC-Compute-Last_block-CMAC-Using-DEA
Parameters
- const unsigned char *message
- Pointer to a readable buffer of size greater than or equal to message_length bytes. This buffer contains a message to be authenticated or of which the authenticity is to be verified.
- unsigned long message_length
- Length in bytes of the message to be authenticated or verified.
- unsigned char *mac
- Pointer to a buffer of size greater than or equal to mac_length bytes. If direction is equal to 1, the buffer must be writable and a message authentication code for the message in message of size mac_length bytes is written to the buffer. If direction is equal to 0, the buffer must be readable and contain a message authentication code to be verified against the message in message.
- unsigned int mac_length
- Length in bytes of the message authentication code mac, which is less than or equal to the cipher block size (8 bytes for DES). It is recommended to use a mac_length of 8.
- const unsigned char *key
- Pointer to a valid DES key of 8 bytes in length.
- unsigned int direction
-
- 0
- Verify message authentication code.
- 1
- Compute message authentication code for the message.
Return codes
- 0
- Success
- EFAULT
- If direction is equal to 0 and the verification of the message authentication code fails.
For return codes indicating exceptions, see Return codes.