[−][src]Module cc3220sf::aes
AES
Modules
auth_length | AAD data length. The authentication length register store the authentication data length in bytes for combined modes only (GCM or CCM) Supported AAD-lengths for CCM are from 0 to (2^16 - 2^8) bytes. For GCM any value up to (2^32 - 1) bytes can be used. Once processing with this context is started@@ this length decrements to zero. A write to this register triggers the engine to start using this context for GCM and CCM. For XTS this register is optionally used to load j. Loading of j is only required if j != 0. j is a 28-bit value and must be written to bits [31-4] of this register. j represents the sequential number of the 128-bit block inside the data unit. For the first block in a unit@@ this value is zero. It is not required to provide a j for each new data block within a unit. Note that it is possible to start with a j unequal to zero; refer to Table 4 for more details. For a Host read operation@@ these registers return all-zeroes. |
c_length_0 | Crypto data length registers (LSW and MSW) store the cryptographic data length in bytes for all modes. Once processing with this context is started@@ this length decrements to zero. Data lengths up to (2^61 1) bytes are allowed. For GCM@@ any value up to 2^36 - 32 bytes can be used. This is because a 32-bit counter mode is used; the maximum number of 128-bit blocks is 2^32 2@@ resulting in a maximum number of bytes of 2^36 - 32. A write to this register triggers the engine to start using this context. This is valid for all modes except GCM and CCM. Note that for the combined modes@@ this length does not include the authentication only data; the authentication length is specified in the AES_AUTH_LENGTH register below. All modes must have a length > 0. For the combined modes@@ it is allowed to have one of the lengths equal to zero. For the basic encryption modes (ECB/CBC/CTR/ICM/CFB128) it is allowed to program zero to the length field; in that case the length is assumed infinite. All data must be byte (8-bit) aligned; bit aligned data streams are not supported by the AES Engine. For a Host read operation@@ these registers return all-zeroes. |
c_length_1 | Crypto data length registers (LSW and MSW) store the cryptographic data length in bytes for all modes. Once processing with this context is started@@ this length decrements to zero. Data lengths up to (2^61 1) bytes are allowed. For GCM@@ any value up to 2^36 - 32 bytes can be used. This is because a 32-bit counter mode is used; the maximum number of 128-bit blocks is 2^32 2@@ resulting in a maximum number of bytes of 2^36 - 32. A write to this register triggers the engine to start using this context. This is valid for all modes except GCM and CCM. Note that for the combined modes@@ this length does not include the authentication only data; the authentication length is specified in the AES_AUTH_LENGTH register below. All modes must have a length > 0. For the combined modes@@ it is allowed to have one of the lengths equal to zero. For the basic encryption modes (ECB/CBC/CTR/ICM/CFB128) it is allowed to program zero to the length field; in that case the length is assumed infinite. All data must be byte (8-bit) aligned; bit aligned data streams are not supported by the AES Engine. For a Host read operation@@ these registers return all-zeroes. |
ctrl | register determines the mode of operation of the AES Engine |
data_in_0 | Data register to read and write plaintext/ciphertext (MSW) |
data_in_1 | Data register to read and write plaintext/ciphertext |
data_in_2 | Data register to read and write plaintext/ciphertext |
data_in_3 | Data register to read and write plaintext/ciphertext (LSW) |
irqenable | This register contains an enable bit for each unique interrupt generated by the module. It matches the layout of AES_IRQSTATUS register. An interrupt is enabled when the bit in this register is set to 1. An interrupt that is enabled is propagated to the SINTREQUEST_x output. All interrupts need to be enabled explicitly by writing this register. **************************************************************************** |
irqstatus | This register indicates the interrupt status. If one of the interrupt bits is set the interrupt output will be asserted |
iv_in_0 | Initialization Vector input (LSW) |
iv_in_1 | Initialization vector input |
iv_in_2 | Initialization vector input |
iv_in_3 | Initialization Vector input (MSW) |
key1_0 | Key (LSW for 128-bit key) |
key1_1 | Key |
key1_2 | Key |
key1_3 | Key (MSW for 128-bit key) |
key1_4 | Key (LSW for 192-bit key) |
key1_5 | Key (MSW for 192-bit key) |
key1_6 | Key (LSW for 256-bit key) |
key1_7 | Key (MSW for 256-bit key) |
key2_0 | XTS / CCM / CBC-MAC second key (LSW) / Hash Key input (LSW) |
key2_1 | XTS / CCM / CBC-MAC second key / Hash Key input |
key2_2 | XTS / CCM / CBC-MAC second key / Hash Key input |
key2_3 | XTS second key (MSW for 128-bit key) + CCM/CBC-MAC second key (MSW) / Hash Key input (MSW) |
key2_4 | XTS / CCM second key / CBC-MAC third key (LSW) |
key2_5 | XTS second key (MSW for 192-bit key) / CBC-MAC third key |
key2_6 | XTS second key / CBC-MAC third key |
key2_7 | XTS second key (MSW for 256-bit key) / CBC-MAC third key (MSW) |
revision | Register AES_REVISION |
sysconfig | Register AES_SYSCONFIG.This register configures the DMA signals and controls the IDLE and reset logic |
sysstatus | SYSSTATUS |
tag_out_0 | TAG_OUT_0 |
tag_out_1 | TAG_OUT_1 |
tag_out_2 | TAG_OUT_2 |
tag_out_3 | TAG_OUT_3 |
Structs
RegisterBlock | Register block |
Type Definitions
AUTH_LENGTH | AAD data length. The authentication length register store the authentication data length in bytes for combined modes only (GCM or CCM) Supported AAD-lengths for CCM are from 0 to (2^16 - 2^8) bytes. For GCM any value up to (2^32 - 1) bytes can be used. Once processing with this context is started@@ this length decrements to zero. A write to this register triggers the engine to start using this context for GCM and CCM. For XTS this register is optionally used to load j. Loading of j is only required if j != 0. j is a 28-bit value and must be written to bits [31-4] of this register. j represents the sequential number of the 128-bit block inside the data unit. For the first block in a unit@@ this value is zero. It is not required to provide a j for each new data block within a unit. Note that it is possible to start with a j unequal to zero; refer to Table 4 for more details. For a Host read operation@@ these registers return all-zeroes. |
CTRL | register determines the mode of operation of the AES Engine |
C_LENGTH_0 | Crypto data length registers (LSW and MSW) store the cryptographic data length in bytes for all modes. Once processing with this context is started@@ this length decrements to zero. Data lengths up to (2^61 1) bytes are allowed. For GCM@@ any value up to 2^36 - 32 bytes can be used. This is because a 32-bit counter mode is used; the maximum number of 128-bit blocks is 2^32 2@@ resulting in a maximum number of bytes of 2^36 - 32. A write to this register triggers the engine to start using this context. This is valid for all modes except GCM and CCM. Note that for the combined modes@@ this length does not include the authentication only data; the authentication length is specified in the AES_AUTH_LENGTH register below. All modes must have a length > 0. For the combined modes@@ it is allowed to have one of the lengths equal to zero. For the basic encryption modes (ECB/CBC/CTR/ICM/CFB128) it is allowed to program zero to the length field; in that case the length is assumed infinite. All data must be byte (8-bit) aligned; bit aligned data streams are not supported by the AES Engine. For a Host read operation@@ these registers return all-zeroes. |
C_LENGTH_1 | Crypto data length registers (LSW and MSW) store the cryptographic data length in bytes for all modes. Once processing with this context is started@@ this length decrements to zero. Data lengths up to (2^61 1) bytes are allowed. For GCM@@ any value up to 2^36 - 32 bytes can be used. This is because a 32-bit counter mode is used; the maximum number of 128-bit blocks is 2^32 2@@ resulting in a maximum number of bytes of 2^36 - 32. A write to this register triggers the engine to start using this context. This is valid for all modes except GCM and CCM. Note that for the combined modes@@ this length does not include the authentication only data; the authentication length is specified in the AES_AUTH_LENGTH register below. All modes must have a length > 0. For the combined modes@@ it is allowed to have one of the lengths equal to zero. For the basic encryption modes (ECB/CBC/CTR/ICM/CFB128) it is allowed to program zero to the length field; in that case the length is assumed infinite. All data must be byte (8-bit) aligned; bit aligned data streams are not supported by the AES Engine. For a Host read operation@@ these registers return all-zeroes. |
DATA_IN_0 | Data register to read and write plaintext/ciphertext (MSW) |
DATA_IN_1 | Data register to read and write plaintext/ciphertext |
DATA_IN_2 | Data register to read and write plaintext/ciphertext |
DATA_IN_3 | Data register to read and write plaintext/ciphertext (LSW) |
IRQENABLE | This register contains an enable bit for each unique interrupt generated by the module. It matches the layout of AES_IRQSTATUS register. An interrupt is enabled when the bit in this register is set to 1. An interrupt that is enabled is propagated to the SINTREQUEST_x output. All interrupts need to be enabled explicitly by writing this register. **************************************************************************** |
IRQSTATUS | This register indicates the interrupt status. If one of the interrupt bits is set the interrupt output will be asserted |
IV_IN_0 | Initialization Vector input (LSW) |
IV_IN_1 | Initialization vector input |
IV_IN_2 | Initialization vector input |
IV_IN_3 | Initialization Vector input (MSW) |
KEY1_0 | Key (LSW for 128-bit key) |
KEY1_1 | Key |
KEY1_2 | Key |
KEY1_3 | Key (MSW for 128-bit key) |
KEY1_4 | Key (LSW for 192-bit key) |
KEY1_5 | Key (MSW for 192-bit key) |
KEY1_6 | Key (LSW for 256-bit key) |
KEY1_7 | Key (MSW for 256-bit key) |
KEY2_0 | XTS / CCM / CBC-MAC second key (LSW) / Hash Key input (LSW) |
KEY2_1 | XTS / CCM / CBC-MAC second key / Hash Key input |
KEY2_2 | XTS / CCM / CBC-MAC second key / Hash Key input |
KEY2_3 | XTS second key (MSW for 128-bit key) + CCM/CBC-MAC second key (MSW) / Hash Key input (MSW) |
KEY2_4 | XTS / CCM second key / CBC-MAC third key (LSW) |
KEY2_5 | XTS second key (MSW for 192-bit key) / CBC-MAC third key |
KEY2_6 | XTS second key / CBC-MAC third key |
KEY2_7 | XTS second key (MSW for 256-bit key) / CBC-MAC third key (MSW) |
REVISION | Register AES_REVISION |
SYSCONFIG | Register AES_SYSCONFIG.This register configures the DMA signals and controls the IDLE and reset logic |
SYSSTATUS | SYSSTATUS |
TAG_OUT_0 | TAG_OUT_0 |
TAG_OUT_1 | TAG_OUT_1 |
TAG_OUT_2 | TAG_OUT_2 |
TAG_OUT_3 | TAG_OUT_3 |