MCF548x Reference Manual, Rev. 3
22-100 Freescale Semiconductor
Table 22-103 shows the representative descriptor format for the final descriptor in a statically assigned
multi-function operation descriptor chain. The final descriptor header encodes to select the DEU or AESU
as the primary EU, and the MDEU for the secondary EU. Because the final data necessary to calculate the
HMAC is now present, the HMAC and autopad bits are set, while continue and initialize are cleared in the
SMODE field.
The descriptor header also encodes the descriptor type 0010, which defines the input and output ordering
for “hmac_snoop_no_afeu.” The HMAC key, DEU/AESU key, and context are already loaded, and do not
need to be reloaded. The length and pointer to the data over which the initial hash will be calculated must
be provided for this descriptor.
Input data is brought into the DEU/AESU input FIFO, with the MDEU snooping the portion of the data it
has been told to process. As the decryption/encryption continues, the output data fills the DEU/AEU
output FIFO, and this data is written back to system memory as needed. Because it has been told it has the
final data for HMAC calculation (HMAC on, continue off), the descriptor provides the length and pointer
for the HMAC output. Depending on whether the packet is inbound or outbound, the host will either insert
the most significant bytesof the HMAC generated by the SEC into the packet header (outbound) or
compare the HMAC generated by the SEC with the HMAC which was received with the packet (inbound).
If the HMACs match, the packet integrity check passes.
0x60A38222 CBC Decrypt MD5 No No
0x60B38220 CBC Encrypt MD5 No No
0x60A38022 CBC Decrypt SHA No No
0x60B38020 CBC Encrypt SHA No No
0x60E38122 CTR Decrypt SHA256 No No
0x60E38120 CTR Encrypt SHA256 No No
0x60E38222 CTR Decrypt MD5 No No
0x60E38220 CTR Encrypt MD5 No No
0x60E38022 CTR Decrypt SHA No No
0x60E38020 CTR Encrypt SHA No No
Table 22-103. Final Descriptor for Multi-Function Encrytion/Decryption
Field Name Value/Type Description
Header Table 22-104 Header common to several descriptors (TYPE 0010)
LEN_1 HMAC Key Length NULL
PTR_1 HMAC Key Pointer NULL
LEN_2 HMAC Data Length Number of bytes to be HMAC’d
PTR_2 HMAC Data Pointer Address of data to be HMAC’d
LEN_3 Key Length NULL
PTR_3 Key Pointer NULL
Table 22-102. Typical Header Values for Middle Static Multi-Function AESU Descriptors (Continued)
Header Value Mode E/D Algorithm HMAC Pad