ica_aes_ecb
Purpose
Encrypt or decrypt data with an AES key using Electronic Code Book (ECB) mode, as described in NIST Special Publication 800-38A Chapter 6.1.
Format
unsigned int ica_aes_ecb(const unsigned char *in_data,
unsigned char *output,
unsigned int data_length,
const unsigned char *key,
unsigned int key_length,
unsigned int direction);
Required hardware support
KM-AES-128, KM-AES-192, or KM-AES-256
Parameters
- const unsigned char *in_data
- Pointer to a readable buffer that contains the message to be encrypted or decrypted. The size of the message in bytes is data_length. The size of this buffer must be at least as large as data_length.
- unsigned char *out_data
- Pointer to a writable buffer to contain the resulting encrypted or decrypted message. The size of this buffer in bytes must be at least as large as data_length.
- unsigned long data_length
- Length in bytes of the message to be encrypted or decrypted, which resides at the beginning of in_data. data_length must be a multiple of the cipher block size (a multiple of 16 for AES).
- const unsigned char *key
- Pointer to a valid AES key.
- unsigned int key_length
- Length in bytes of the AES key. Supported sizes are 16, 24, and 32 for AES-128, AES-192, and AES-256 respectively. Therefore, you can use the definitions: AES_KEY_LEN128, AES_KEY_LEN192, and AES_KEY_LEN256.
- unsigned int direction
-
- 0
- Use the decrypt function.
- 1
- Use the encrypt function.
Return codes
- 0
- Success
For return codes indicating exceptions, see Return codes.