|
STM32L443xx HAL User Manual
|
Initialization and Configuration functions. More...
Functions | |
| HAL_StatusTypeDef | HAL_CRYP_Init (CRYP_HandleTypeDef *hcryp) |
| Initialize the CRYP according to the specified parameters in the CRYP_InitTypeDef and initialize the associated handle. | |
| HAL_StatusTypeDef | HAL_CRYP_DeInit (CRYP_HandleTypeDef *hcryp) |
| DeInitialize the CRYP peripheral. | |
| __weak void | HAL_CRYP_MspInit (CRYP_HandleTypeDef *hcryp) |
| Initialize the CRYP MSP. | |
| __weak void | HAL_CRYP_MspDeInit (CRYP_HandleTypeDef *hcryp) |
| DeInitialize CRYP MSP. | |
Initialization and Configuration functions.
==============================================================================
##### Initialization and deinitialization functions #####
==============================================================================
[..] This section provides functions allowing to:
(+) Initialize the CRYP according to the specified parameters
in the CRYP_InitTypeDef and creates the associated handle
(+) DeInitialize the CRYP peripheral
(+) Initialize the CRYP MSP (MCU Specific Package)
(+) De-Initialize the CRYP MSP
[..]
(@) Specific care must be taken to format the key and the Initialization Vector IV!
[..] If the key is defined as a 128-bit long array key[127..0] = {b127 ... b0} where
b127 is the MSB and b0 the LSB, the key must be stored in MCU memory
(+) as a sequence of words where the MSB word comes first (occupies the
lowest memory address)
(+) where each word is byte-swapped:
(++) address n+0 : 0b b103 .. b96 b111 .. b104 b119 .. b112 b127 .. b120
(++) address n+4 : 0b b71 .. b64 b79 .. b72 b87 .. b80 b95 .. b88
(++) address n+8 : 0b b39 .. b32 b47 .. b40 b55 .. b48 b63 .. b56
(++) address n+C : 0b b7 .. b0 b15 .. b8 b23 .. b16 b31 .. b24
[..] Hereafter, another illustration when considering a 128-bit long key made of 16 bytes {B15..B0}.
The 4 32-bit words that make the key must be stored as follows in MCU memory:
(+) address n+0 : 0x B12 B13 B14 B15
(+) address n+4 : 0x B8 B9 B10 B11
(+) address n+8 : 0x B4 B5 B6 B7
(+) address n+C : 0x B0 B1 B2 B3
[..] which leads to the expected setting
(+) AES_KEYR3 = 0x B15 B14 B13 B12
(+) AES_KEYR2 = 0x B11 B10 B9 B8
(+) AES_KEYR1 = 0x B7 B6 B5 B4
(+) AES_KEYR0 = 0x B3 B2 B1 B0
[..] Same format must be applied for a 256-bit long key made of 32 bytes {B31..B0}.
The 8 32-bit words that make the key must be stored as follows in MCU memory:
(+) address n+00 : 0x B28 B29 B30 B31
(+) address n+04 : 0x B24 B25 B26 B27
(+) address n+08 : 0x B20 B21 B22 B23
(+) address n+0C : 0x B16 B17 B18 B19
(+) address n+10 : 0x B12 B13 B14 B15
(+) address n+14 : 0x B8 B9 B10 B11
(+) address n+18 : 0x B4 B5 B6 B7
(+) address n+1C : 0x B0 B1 B2 B3
[..] which leads to the expected setting
(+) AES_KEYR7 = 0x B31 B30 B29 B28
(+) AES_KEYR6 = 0x B27 B26 B25 B24
(+) AES_KEYR5 = 0x B23 B22 B21 B20
(+) AES_KEYR4 = 0x B19 B18 B17 B16
(+) AES_KEYR3 = 0x B15 B14 B13 B12
(+) AES_KEYR2 = 0x B11 B10 B9 B8
(+) AES_KEYR1 = 0x B7 B6 B5 B4
(+) AES_KEYR0 = 0x B3 B2 B1 B0
[..] Initialization Vector IV (4 32-bit words) format must follow the same as
that of a 128-bit long key.
[..]
| HAL_StatusTypeDef HAL_CRYP_DeInit | ( | CRYP_HandleTypeDef * | hcryp | ) |
DeInitialize the CRYP peripheral.
| hcryp | pointer to a CRYP_HandleTypeDef structure that contains the configuration information for CRYP module |
| HAL | status |
Definition at line 443 of file stm32l4xx_hal_cryp.c.
References __HAL_CRYP_DISABLE, __CRYP_HandleTypeDef::CrypInCount, __CRYP_HandleTypeDef::CrypOutCount, HAL_CRYP_MspDeInit(), HAL_CRYP_PHASE_READY, HAL_CRYP_STATE_BUSY, HAL_CRYP_STATE_RESET, __CRYP_HandleTypeDef::MspDeInitCallback, __CRYP_HandleTypeDef::Phase, and __CRYP_HandleTypeDef::State.
Referenced by HAL_CRYP_AESCBC_Decrypt(), HAL_CRYP_AESCBC_Decrypt_DMA(), HAL_CRYP_AESCBC_Decrypt_IT(), HAL_CRYP_AESCBC_Encrypt(), HAL_CRYP_AESCBC_Encrypt_DMA(), HAL_CRYP_AESCBC_Encrypt_IT(), HAL_CRYP_AESCTR_Decrypt(), HAL_CRYP_AESCTR_Decrypt_DMA(), HAL_CRYP_AESCTR_Decrypt_IT(), HAL_CRYP_AESCTR_Encrypt(), HAL_CRYP_AESCTR_Encrypt_DMA(), HAL_CRYP_AESCTR_Encrypt_IT(), HAL_CRYP_AESECB_Decrypt(), HAL_CRYP_AESECB_Decrypt_DMA(), HAL_CRYP_AESECB_Decrypt_IT(), HAL_CRYP_AESECB_Encrypt(), HAL_CRYP_AESECB_Encrypt_DMA(), and HAL_CRYP_AESECB_Encrypt_IT().
| HAL_StatusTypeDef HAL_CRYP_Init | ( | CRYP_HandleTypeDef * | hcryp | ) |
Initialize the CRYP according to the specified parameters in the CRYP_InitTypeDef and initialize the associated handle.
| hcryp | pointer to a CRYP_HandleTypeDef structure that contains the configuration information for CRYP module |
| HAL | status |
Definition at line 241 of file stm32l4xx_hal_cryp.c.
References __HAL_CRYP_DISABLE, __HAL_CRYP_ENABLE, assert_param, CRYP_InitTypeDef::ChainingMode, __CRYP_HandleTypeDef::CompCpltCallback, CRYP_ALGOMODE_KEYDERIVATION, CRYP_ALGOMODE_KEYDERIVATION_DECRYPT, CRYP_CHAINMODE_AES_CMAC, CRYP_CHAINMODE_AES_CTR, CRYP_CHAINMODE_AES_ECB, CRYP_CHAINMODE_AES_GCM_GMAC, CRYP_KEY_WRITE_ENABLE, CRYP_SetInitVector(), CRYP_SetKey(), __CRYP_HandleTypeDef::CrypInCount, __CRYP_HandleTypeDef::CrypOutCount, CRYP_InitTypeDef::DataType, __CRYP_HandleTypeDef::ErrorCallback, __CRYP_HandleTypeDef::ErrorCode, CRYP_InitTypeDef::GCMCMACPhase, HAL_CRYP_ERROR_NONE, HAL_CRYP_ErrorCallback(), HAL_CRYP_InCpltCallback(), HAL_CRYP_MspInit(), HAL_CRYP_OutCpltCallback(), HAL_CRYP_PHASE_NOT_USED, HAL_CRYP_PHASE_START, HAL_CRYP_STATE_BUSY, HAL_CRYP_STATE_READY, HAL_CRYP_STATE_RESET, HAL_CRYP_SUSPEND_NONE, HAL_CRYPEx_ComputationCpltCallback(), __CRYP_HandleTypeDef::InCpltCallback, __CRYP_HandleTypeDef::Init, __CRYP_HandleTypeDef::Instance, IS_CRYP_ALGOMODE, IS_CRYP_CHAINMODE, IS_CRYP_DATATYPE, IS_CRYP_KEYSIZE, IS_CRYP_WRITE, CRYP_InitTypeDef::KeySize, CRYP_InitTypeDef::KeyWriteFlag, __CRYP_HandleTypeDef::Lock, __CRYP_HandleTypeDef::MspInitCallback, CRYP_InitTypeDef::OperatingMode, __CRYP_HandleTypeDef::OutCpltCallback, __CRYP_HandleTypeDef::Phase, __CRYP_HandleTypeDef::State, and __CRYP_HandleTypeDef::SuspendRequest.
Referenced by HAL_CRYP_AESCBC_Decrypt(), HAL_CRYP_AESCBC_Decrypt_DMA(), HAL_CRYP_AESCBC_Decrypt_IT(), HAL_CRYP_AESCBC_Encrypt(), HAL_CRYP_AESCBC_Encrypt_DMA(), HAL_CRYP_AESCBC_Encrypt_IT(), HAL_CRYP_AESCTR_Decrypt(), HAL_CRYP_AESCTR_Decrypt_DMA(), HAL_CRYP_AESCTR_Decrypt_IT(), HAL_CRYP_AESCTR_Encrypt(), HAL_CRYP_AESCTR_Encrypt_DMA(), HAL_CRYP_AESCTR_Encrypt_IT(), HAL_CRYP_AESECB_Decrypt(), HAL_CRYP_AESECB_Decrypt_DMA(), HAL_CRYP_AESECB_Decrypt_IT(), HAL_CRYP_AESECB_Encrypt(), HAL_CRYP_AESECB_Encrypt_DMA(), and HAL_CRYP_AESECB_Encrypt_IT().
| void HAL_CRYP_MspDeInit | ( | CRYP_HandleTypeDef * | hcryp | ) |
DeInitialize CRYP MSP.
| hcryp | pointer to a CRYP_HandleTypeDef structure that contains the configuration information for CRYP module |
| None |
Definition at line 509 of file stm32l4xx_hal_cryp.c.
Referenced by HAL_CRYP_DeInit(), and HAL_CRYP_UnRegisterCallback().
| void HAL_CRYP_MspInit | ( | CRYP_HandleTypeDef * | hcryp | ) |
Initialize the CRYP MSP.
| hcryp | pointer to a CRYP_HandleTypeDef structure that contains the configuration information for CRYP module |
| None |
Definition at line 493 of file stm32l4xx_hal_cryp.c.
Referenced by HAL_CRYP_Init(), and HAL_CRYP_UnRegisterCallback().
1.7.6.1