RTEMS 6.3
Loading...
Searching...
No Matches
stm32h7xx_hal_cryp.h
Go to the documentation of this file.
1
18
19/* Define to prevent recursive inclusion -------------------------------------*/
20#ifndef STM32H7xx_HAL_CRYP_H
21#define STM32H7xx_HAL_CRYP_H
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27
28/* Includes ------------------------------------------------------------------*/
29#include "stm32h7xx_hal_def.h"
30
34#if defined (CRYP)
38
39/* Exported types ------------------------------------------------------------*/
44
48
49typedef struct
50{
51 uint32_t DataType;
53 uint32_t KeySize;
55 uint32_t *pKey;
56 uint32_t *pInitVect;
58 uint32_t Algorithm;
61 uint32_t *Header;
64 uint32_t HeaderSize;
65 uint32_t *B0;
66 uint32_t DataWidthUnit;
67 uint32_t HeaderWidthUnit;
68 uint32_t KeyIVConfigSkip;
71
72} CRYP_ConfigTypeDef;
73
74
78
79typedef enum
80{
81 HAL_CRYP_STATE_RESET = 0x00U,
82 HAL_CRYP_STATE_READY = 0x01U,
83 HAL_CRYP_STATE_BUSY = 0x02U
84} HAL_CRYP_STATETypeDef;
85
86
90
91#if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1)
92typedef struct __CRYP_HandleTypeDef
93#else
94typedef struct
95#endif /* (USE_HAL_CRYP_REGISTER_CALLBACKS) */
96{
97
98 CRYP_TypeDef *Instance;
99
100 CRYP_ConfigTypeDef Init;
101
102 uint32_t *pCrypInBuffPtr;
103
104 uint32_t *pCrypOutBuffPtr;
105
106 __IO uint16_t CrypHeaderCount;
107
108 __IO uint16_t CrypInCount;
109
110 __IO uint16_t CrypOutCount;
111
112 uint16_t Size;
113
114 uint32_t Phase;
115
116 DMA_HandleTypeDef *hdmain;
117
118 DMA_HandleTypeDef *hdmaout;
119
120 HAL_LockTypeDef Lock;
121
122 __IO HAL_CRYP_STATETypeDef State;
123
124 __IO uint32_t ErrorCode;
125
126 uint32_t Version;
127
128 uint32_t KeyIVConfig;
130
131 uint32_t SizesSum;
134
135#if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1)
136 void (*InCpltCallback)(struct __CRYP_HandleTypeDef *hcryp);
137 void (*OutCpltCallback)(struct __CRYP_HandleTypeDef *hcryp);
138 void (*ErrorCallback)(struct __CRYP_HandleTypeDef *hcryp);
139
140 void (* MspInitCallback)(struct __CRYP_HandleTypeDef *hcryp);
141 void (* MspDeInitCallback)(struct __CRYP_HandleTypeDef *hcryp);
142
143#endif /* (USE_HAL_CRYP_REGISTER_CALLBACKS) */
144
145} CRYP_HandleTypeDef;
146
147
151
152#if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1)
158typedef enum
159{
160 HAL_CRYP_INPUT_COMPLETE_CB_ID = 0x01U,
161 HAL_CRYP_OUTPUT_COMPLETE_CB_ID = 0x02U,
162 HAL_CRYP_ERROR_CB_ID = 0x03U,
163
164 HAL_CRYP_MSPINIT_CB_ID = 0x04U,
165 HAL_CRYP_MSPDEINIT_CB_ID = 0x05U
166
167} HAL_CRYP_CallbackIDTypeDef;
171
177
178typedef void (*pCRYP_CallbackTypeDef)(CRYP_HandleTypeDef *hcryp);
179
183
184#endif /* USE_HAL_CRYP_REGISTER_CALLBACKS */
185
186/* Exported constants --------------------------------------------------------*/
191
196#define HAL_CRYP_ERROR_NONE 0x00000000U
197#define HAL_CRYP_ERROR_WRITE 0x00000001U
198#define HAL_CRYP_ERROR_READ 0x00000002U
199#define HAL_CRYP_ERROR_DMA 0x00000004U
200#define HAL_CRYP_ERROR_BUSY 0x00000008U
201#define HAL_CRYP_ERROR_TIMEOUT 0x00000010U
202#define HAL_CRYP_ERROR_NOT_SUPPORTED 0x00000020U
203#define HAL_CRYP_ERROR_AUTH_TAG_SEQUENCE 0x00000040U
204#if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1)
205#define HAL_CRYP_ERROR_INVALID_CALLBACK ((uint32_t)0x00000080U)
206#endif /* USE_HAL_CRYP_REGISTER_CALLBACKS */
207
211
212
217
218#define CRYP_DATAWIDTHUNIT_WORD 0x00000000U
219#define CRYP_DATAWIDTHUNIT_BYTE 0x00000001U
220
224
229
230#define CRYP_HEADERWIDTHUNIT_WORD 0x00000000U
231#define CRYP_HEADERWIDTHUNIT_BYTE 0x00000001U
232
236
241
242#define CRYP_DES_ECB CRYP_CR_ALGOMODE_DES_ECB
243#define CRYP_DES_CBC CRYP_CR_ALGOMODE_DES_CBC
244#define CRYP_TDES_ECB CRYP_CR_ALGOMODE_TDES_ECB
245#define CRYP_TDES_CBC CRYP_CR_ALGOMODE_TDES_CBC
246#define CRYP_AES_ECB CRYP_CR_ALGOMODE_AES_ECB
247#define CRYP_AES_CBC CRYP_CR_ALGOMODE_AES_CBC
248#define CRYP_AES_CTR CRYP_CR_ALGOMODE_AES_CTR
249#define CRYP_AES_GCM CRYP_CR_ALGOMODE_AES_GCM
250#define CRYP_AES_CCM CRYP_CR_ALGOMODE_AES_CCM
251
255
260
261#define CRYP_KEYSIZE_128B 0x00000000U
262#define CRYP_KEYSIZE_192B CRYP_CR_KEYSIZE_0
263#define CRYP_KEYSIZE_256B CRYP_CR_KEYSIZE_1
264
268
273
274#define CRYP_NO_SWAP 0x00000000U
275#define CRYP_HALFWORD_SWAP CRYP_CR_DATATYPE_0
276#define CRYP_BYTE_SWAP CRYP_CR_DATATYPE_1
277#define CRYP_BIT_SWAP CRYP_CR_DATATYPE
278
282
287
288#define CRYP_IT_INI CRYP_IMSCR_INIM
289#define CRYP_IT_OUTI CRYP_IMSCR_OUTIM
290
294
299
300/* Flags in the SR register */
301#define CRYP_FLAG_IFEM CRYP_SR_IFEM
302#define CRYP_FLAG_IFNF CRYP_SR_IFNF
303#define CRYP_FLAG_OFNE CRYP_SR_OFNE
304#define CRYP_FLAG_OFFU CRYP_SR_OFFU
305#define CRYP_FLAG_BUSY CRYP_SR_BUSY
307/* Flags in the RISR register */
308#define CRYP_FLAG_OUTRIS 0x01000002U
309#define CRYP_FLAG_INRIS 0x01000001U
310
314
319
320#define CRYP_KEYIVCONFIG_ALWAYS 0x00000000U
321#define CRYP_KEYIVCONFIG_ONCE 0x00000001U
322
326
330
331/* Exported macros -----------------------------------------------------------*/
336
341#if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1)
342#define __HAL_CRYP_RESET_HANDLE_STATE(__HANDLE__) do{\
343 (__HANDLE__)->State = HAL_CRYP_STATE_RESET;\
344 (__HANDLE__)->MspInitCallback = NULL;\
345 (__HANDLE__)->MspDeInitCallback = NULL;\
346 }while(0)
347#else
348#define __HAL_CRYP_RESET_HANDLE_STATE(__HANDLE__) ( (__HANDLE__)->State = HAL_CRYP_STATE_RESET)
349#endif /* USE_HAL_CRYP_REGISTER_CALLBACKS */
350
356
357#define __HAL_CRYP_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= CRYP_CR_CRYPEN)
358#define __HAL_CRYP_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~CRYP_CR_CRYPEN)
359
373#define CRYP_FLAG_MASK 0x0000001FU
374
375#define __HAL_CRYP_GET_FLAG(__HANDLE__, __FLAG__)\
376 ((((uint8_t)((__FLAG__) >> 24)) == 0x01U)?((((__HANDLE__)->Instance->RISR) &\
377 ((__FLAG__) & CRYP_FLAG_MASK)) == ((__FLAG__) & CRYP_FLAG_MASK)): \
378 ((((__HANDLE__)->Instance->RISR) &\
379 ((__FLAG__) & CRYP_FLAG_MASK)) == ((__FLAG__) & CRYP_FLAG_MASK)))
380
389
390#define __HAL_CRYP_GET_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->MISR &\
391 (__INTERRUPT__)) == (__INTERRUPT__))
392
402
403#define __HAL_CRYP_ENABLE_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->IMSCR) |= (__INTERRUPT__))
404
414
415#define __HAL_CRYP_DISABLE_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->IMSCR) &= ~(__INTERRUPT__))
416
420
421/* Include CRYP HAL Extended module */
423
424/* Exported functions --------------------------------------------------------*/
429
433HAL_StatusTypeDef HAL_CRYP_Init(CRYP_HandleTypeDef *hcryp);
434HAL_StatusTypeDef HAL_CRYP_DeInit(CRYP_HandleTypeDef *hcryp);
435void HAL_CRYP_MspInit(CRYP_HandleTypeDef *hcryp);
436void HAL_CRYP_MspDeInit(CRYP_HandleTypeDef *hcryp);
437HAL_StatusTypeDef HAL_CRYP_SetConfig(CRYP_HandleTypeDef *hcryp, CRYP_ConfigTypeDef *pConf);
438HAL_StatusTypeDef HAL_CRYP_GetConfig(CRYP_HandleTypeDef *hcryp, CRYP_ConfigTypeDef *pConf);
439#if (USE_HAL_CRYP_REGISTER_CALLBACKS == 1)
440HAL_StatusTypeDef HAL_CRYP_RegisterCallback(CRYP_HandleTypeDef *hcryp, HAL_CRYP_CallbackIDTypeDef CallbackID,
441 pCRYP_CallbackTypeDef pCallback);
442HAL_StatusTypeDef HAL_CRYP_UnRegisterCallback(CRYP_HandleTypeDef *hcryp, HAL_CRYP_CallbackIDTypeDef CallbackID);
443#endif /* USE_HAL_CRYP_REGISTER_CALLBACKS */
447
451
452/* encryption/decryption ***********************************/
453HAL_StatusTypeDef HAL_CRYP_Encrypt(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, uint32_t *Output,
454 uint32_t Timeout);
455HAL_StatusTypeDef HAL_CRYP_Decrypt(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, uint32_t *Output,
456 uint32_t Timeout);
457HAL_StatusTypeDef HAL_CRYP_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, uint32_t *Output);
458HAL_StatusTypeDef HAL_CRYP_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, uint32_t *Output);
459HAL_StatusTypeDef HAL_CRYP_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, uint32_t *Output);
460HAL_StatusTypeDef HAL_CRYP_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint32_t *Input, uint16_t Size, uint32_t *Output);
461
465
466
470/* Interrupt Handler functions **********************************************/
471void HAL_CRYP_IRQHandler(CRYP_HandleTypeDef *hcryp);
472HAL_CRYP_STATETypeDef HAL_CRYP_GetState(CRYP_HandleTypeDef *hcryp);
473void HAL_CRYP_InCpltCallback(CRYP_HandleTypeDef *hcryp);
474void HAL_CRYP_OutCpltCallback(CRYP_HandleTypeDef *hcryp);
475void HAL_CRYP_ErrorCallback(CRYP_HandleTypeDef *hcryp);
476uint32_t HAL_CRYP_GetError(CRYP_HandleTypeDef *hcryp);
477
481
485
486/* Private macros --------------------------------------------------------*/
491
496
497#define IS_CRYP_ALGORITHM(ALGORITHM) (((ALGORITHM) == CRYP_DES_ECB) || \
498 ((ALGORITHM) == CRYP_DES_CBC) || \
499 ((ALGORITHM) == CRYP_TDES_ECB) || \
500 ((ALGORITHM) == CRYP_TDES_CBC) || \
501 ((ALGORITHM) == CRYP_AES_ECB) || \
502 ((ALGORITHM) == CRYP_AES_CBC) || \
503 ((ALGORITHM) == CRYP_AES_CTR) || \
504 ((ALGORITHM) == CRYP_AES_GCM) || \
505 ((ALGORITHM) == CRYP_AES_CCM))
506
507#define IS_CRYP_KEYSIZE(KEYSIZE)(((KEYSIZE) == CRYP_KEYSIZE_128B) || \
508 ((KEYSIZE) == CRYP_KEYSIZE_192B) || \
509 ((KEYSIZE) == CRYP_KEYSIZE_256B))
510
511#define IS_CRYP_DATATYPE(DATATYPE)(((DATATYPE) == CRYP_NO_SWAP) || \
512 ((DATATYPE) == CRYP_HALFWORD_SWAP) || \
513 ((DATATYPE) == CRYP_BYTE_SWAP) || \
514 ((DATATYPE) == CRYP_BIT_SWAP))
515
516#define IS_CRYP_INIT(CONFIG)(((CONFIG) == CRYP_KEYIVCONFIG_ALWAYS) || \
517 ((CONFIG) == CRYP_KEYIVCONFIG_ONCE))
518
522
526
527
528/* Private constants ---------------------------------------------------------*/
533
537/* Private defines -----------------------------------------------------------*/
542
546
547/* Private variables ---------------------------------------------------------*/
552
556/* Private functions prototypes ----------------------------------------------*/
561
565
566/* Private functions ---------------------------------------------------------*/
571
575
576
580
581
582#endif /* CRYP */
586
587#ifdef __cplusplus
588}
589#endif
590
591#endif /* STM32H7xx_HAL_CRYP_H */
592
#define __IO
Definition core_cm4.h:239
struct __DMA_HandleTypeDef DMA_HandleTypeDef
DMA handle Structure definition.
Header file of CRYP HAL Extension module.
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef
HAL Status structures definition.
Definition stm32h7xx_hal_def.h:47
HAL_LockTypeDef
HAL Lock structures definition.
Definition stm32h7xx_hal_def.h:58