AES Cipher Object
Operation Supported : Encrypt, Decrypt, Multi-part MAC, Multi-part MAC Verify
Key Encoding
Supports 16, 24 and 32 byte key value.
Encrypt/Decrypt Modes
The least significant nibble (4 bits) determines the operational mode.
Possible values:
>SYM_MODE_ECB (0)
Electronic Code Book (ECB) mode. It may be combined with a padding mode (see below).
>SYM_MODE_CBC (1)
Cipher Block Chaining (CBC) mode. It may be combined with a padding mode (see below).
Padding Mode
The most significant nibble defines the padding mode used.
Possible mode: SYM_MODE_PAD (0x90)
PKCS#1 padding is applied. This causes 1 to 8 bytes of padding to be added to the data. Note that the padding is applicable to SYM_MODE_CBC only.
MAC modes
For MAC generation and verification, available modes include:
>SYM_MODE_MAC_3 (0)
Standard CBC
>SYM_MODE_MAC_GEN (1)
Standard CBC with configurable MAC length
Encrypt/Decrypt Parameters
In SYM_MODE_CBC, the parameter buffer must contain the IV (16 bytes). In SYM_MODE_ECB, there are no parameters.
MAC Parameters
When mode is SYM_MODE_MAC_GEN, parameter buffer contains at least 4 bytes, which is the little-endian encoding of an integer. The integer value must contain a value from 1 to 8, indicating the number of bytes of the final IV that will be used as the MAC. This is optionally followed by 8 bytes containing the IV.