source: asp3_wo_tecs/trunk/arch/arm_m_gcc/stm32f4xx_stm32cube/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cryp.h@ 303

Last change on this file since 303 was 303, checked in by ertl-honda, 7 years ago

nucleo_f401re依存部の追加

File size: 22.3 KB
Line 
1/**
2 ******************************************************************************
3 * @file stm32f4xx_hal_cryp.h
4 * @author MCD Application Team
5 * @version V1.4.1
6 * @date 09-October-2015
7 * @brief Header file of CRYP HAL module.
8 ******************************************************************************
9 * @attention
10 *
11 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
12 *
13 * Redistribution and use in source and binary forms, with or without modification,
14 * are permitted provided that the following conditions are met:
15 * 1. Redistributions of source code must retain the above copyright notice,
16 * this list of conditions and the following disclaimer.
17 * 2. Redistributions in binary form must reproduce the above copyright notice,
18 * this list of conditions and the following disclaimer in the documentation
19 * and/or other materials provided with the distribution.
20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
21 * may be used to endorse or promote products derived from this software
22 * without specific prior written permission.
23 *
24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34 *
35 ******************************************************************************
36 */
37
38/* Define to prevent recursive inclusion -------------------------------------*/
39#ifndef __STM32F4xx_HAL_CRYP_H
40#define __STM32F4xx_HAL_CRYP_H
41
42#ifdef __cplusplus
43 extern "C" {
44#endif
45
46#if defined(STM32F415xx) || defined(STM32F417xx) || defined(STM32F437xx) || defined(STM32F439xx) || defined(STM32F479xx)
47/* Includes ------------------------------------------------------------------*/
48#include "stm32f4xx_hal_def.h"
49
50/** @addtogroup STM32F4xx_HAL_Driver
51 * @{
52 */
53
54/** @addtogroup CRYP
55 * @{
56 */
57
58/* Exported types ------------------------------------------------------------*/
59
60/** @defgroup CRYP_Exported_Types CRYP Exported Types
61 * @{
62 */
63
64/** @defgroup CRYP_Exported_Types_Group1 CRYP Configuration Structure definition
65 * @{
66 */
67
68typedef struct
69{
70 uint32_t DataType; /*!< 32-bit data, 16-bit data, 8-bit data or 1-bit string.
71 This parameter can be a value of @ref CRYP CRYP_Data_Type */
72
73 uint32_t KeySize; /*!< Used only in AES mode only : 128, 192 or 256 bit key length.
74 This parameter can be a value of @ref CRYP CRYP_Key_Size */
75
76 uint8_t* pKey; /*!< The key used for encryption/decryption */
77
78 uint8_t* pInitVect; /*!< The initialization vector used also as initialization
79 counter in CTR mode */
80
81 uint8_t IVSize; /*!< The size of initialization vector.
82 This parameter (called nonce size in CCM) is used only
83 in AES-128/192/256 encryption/decryption CCM mode */
84
85 uint8_t TagSize; /*!< The size of returned authentication TAG.
86 This parameter is used only in AES-128/192/256
87 encryption/decryption CCM mode */
88
89 uint8_t* Header; /*!< The header used in GCM and CCM modes */
90
91 uint32_t HeaderSize; /*!< The size of header buffer in bytes */
92
93 uint8_t* pScratch; /*!< Scratch buffer used to append the header. It's size must be equal to header size + 21 bytes.
94 This parameter is used only in AES-128/192/256 encryption/decryption CCM mode */
95}CRYP_InitTypeDef;
96
97/**
98 * @}
99 */
100
101/** @defgroup CRYP_Exported_Types_Group2 CRYP State structures definition
102 * @{
103 */
104
105
106typedef enum
107{
108 HAL_CRYP_STATE_RESET = 0x00, /*!< CRYP not yet initialized or disabled */
109 HAL_CRYP_STATE_READY = 0x01, /*!< CRYP initialized and ready for use */
110 HAL_CRYP_STATE_BUSY = 0x02, /*!< CRYP internal processing is ongoing */
111 HAL_CRYP_STATE_TIMEOUT = 0x03, /*!< CRYP timeout state */
112 HAL_CRYP_STATE_ERROR = 0x04 /*!< CRYP error state */
113}HAL_CRYP_STATETypeDef;
114
115/**
116 * @}
117 */
118
119/** @defgroup CRYP_Exported_Types_Group3 CRYP phase structures definition
120 * @{
121 */
122
123
124typedef enum
125{
126 HAL_CRYP_PHASE_READY = 0x01, /*!< CRYP peripheral is ready for initialization. */
127 HAL_CRYP_PHASE_PROCESS = 0x02, /*!< CRYP peripheral is in processing phase */
128 HAL_CRYP_PHASE_FINAL = 0x03 /*!< CRYP peripheral is in final phase
129 This is relevant only with CCM and GCM modes */
130}HAL_PhaseTypeDef;
131
132/**
133 * @}
134 */
135
136/** @defgroup CRYP_Exported_Types_Group4 CRYP handle Structure definition
137 * @{
138 */
139
140typedef struct
141{
142 CRYP_TypeDef *Instance; /*!< CRYP registers base address */
143
144 CRYP_InitTypeDef Init; /*!< CRYP required parameters */
145
146 uint8_t *pCrypInBuffPtr; /*!< Pointer to CRYP processing (encryption, decryption,...) buffer */
147
148 uint8_t *pCrypOutBuffPtr; /*!< Pointer to CRYP processing (encryption, decryption,...) buffer */
149
150 __IO uint16_t CrypInCount; /*!< Counter of inputed data */
151
152 __IO uint16_t CrypOutCount; /*!< Counter of outputted data */
153
154 HAL_StatusTypeDef Status; /*!< CRYP peripheral status */
155
156 HAL_PhaseTypeDef Phase; /*!< CRYP peripheral phase */
157
158 DMA_HandleTypeDef *hdmain; /*!< CRYP In DMA handle parameters */
159
160 DMA_HandleTypeDef *hdmaout; /*!< CRYP Out DMA handle parameters */
161
162 HAL_LockTypeDef Lock; /*!< CRYP locking object */
163
164 __IO HAL_CRYP_STATETypeDef State; /*!< CRYP peripheral state */
165}CRYP_HandleTypeDef;
166
167/**
168 * @}
169 */
170
171/**
172 * @}
173 */
174
175/* Exported constants --------------------------------------------------------*/
176/** @defgroup CRYP_Exported_Constants CRYP Exported Constants
177 * @{
178 */
179
180/** @defgroup CRYP_Exported_Constants_Group1 CRYP CRYP_Key_Size
181 * @{
182 */
183#define CRYP_KEYSIZE_128B ((uint32_t)0x00000000)
184#define CRYP_KEYSIZE_192B CRYP_CR_KEYSIZE_0
185#define CRYP_KEYSIZE_256B CRYP_CR_KEYSIZE_1
186/**
187 * @}
188 */
189
190/** @defgroup CRYP_Exported_Constants_Group2 CRYP CRYP_Data_Type
191 * @{
192 */
193#define CRYP_DATATYPE_32B ((uint32_t)0x00000000)
194#define CRYP_DATATYPE_16B CRYP_CR_DATATYPE_0
195#define CRYP_DATATYPE_8B CRYP_CR_DATATYPE_1
196#define CRYP_DATATYPE_1B CRYP_CR_DATATYPE
197/**
198 * @}
199 */
200
201/** @defgroup CRYP_Exported_Constants_Group3 CRYP CRYP_AlgoModeDirection
202 * @{
203 */
204#define CRYP_CR_ALGOMODE_DIRECTION ((uint32_t)0x0008003C)
205#define CRYP_CR_ALGOMODE_TDES_ECB_ENCRYPT ((uint32_t)0x00000000)
206#define CRYP_CR_ALGOMODE_TDES_ECB_DECRYPT ((uint32_t)0x00000004)
207#define CRYP_CR_ALGOMODE_TDES_CBC_ENCRYPT ((uint32_t)0x00000008)
208#define CRYP_CR_ALGOMODE_TDES_CBC_DECRYPT ((uint32_t)0x0000000C)
209#define CRYP_CR_ALGOMODE_DES_ECB_ENCRYPT ((uint32_t)0x00000010)
210#define CRYP_CR_ALGOMODE_DES_ECB_DECRYPT ((uint32_t)0x00000014)
211#define CRYP_CR_ALGOMODE_DES_CBC_ENCRYPT ((uint32_t)0x00000018)
212#define CRYP_CR_ALGOMODE_DES_CBC_DECRYPT ((uint32_t)0x0000001C)
213#define CRYP_CR_ALGOMODE_AES_ECB_ENCRYPT ((uint32_t)0x00000020)
214#define CRYP_CR_ALGOMODE_AES_ECB_DECRYPT ((uint32_t)0x00000024)
215#define CRYP_CR_ALGOMODE_AES_CBC_ENCRYPT ((uint32_t)0x00000028)
216#define CRYP_CR_ALGOMODE_AES_CBC_DECRYPT ((uint32_t)0x0000002C)
217#define CRYP_CR_ALGOMODE_AES_CTR_ENCRYPT ((uint32_t)0x00000030)
218#define CRYP_CR_ALGOMODE_AES_CTR_DECRYPT ((uint32_t)0x00000034)
219/**
220 * @}
221 */
222
223/** @defgroup CRYP_Exported_Constants_Group4 CRYP CRYP_Interrupt
224 * @{
225 */
226#define CRYP_IT_INI ((uint32_t)CRYP_IMSCR_INIM) /*!< Input FIFO Interrupt */
227#define CRYP_IT_OUTI ((uint32_t)CRYP_IMSCR_OUTIM) /*!< Output FIFO Interrupt */
228/**
229 * @}
230 */
231
232/** @defgroup CRYP_Exported_Constants_Group5 CRYP CRYP_Flags
233 * @{
234 */
235#define CRYP_FLAG_BUSY ((uint32_t)0x00000010) /*!< The CRYP core is currently
236 processing a block of data
237 or a key preparation (for
238 AES decryption). */
239#define CRYP_FLAG_IFEM ((uint32_t)0x00000001) /*!< Input FIFO is empty */
240#define CRYP_FLAG_IFNF ((uint32_t)0x00000002) /*!< Input FIFO is not Full */
241#define CRYP_FLAG_OFNE ((uint32_t)0x00000004) /*!< Output FIFO is not empty */
242#define CRYP_FLAG_OFFU ((uint32_t)0x00000008) /*!< Output FIFO is Full */
243#define CRYP_FLAG_OUTRIS ((uint32_t)0x01000002) /*!< Output FIFO service raw
244 interrupt status */
245#define CRYP_FLAG_INRIS ((uint32_t)0x01000001) /*!< Input FIFO service raw
246 interrupt status */
247/**
248 * @}
249 */
250
251/**
252 * @}
253 */
254
255/* Exported macro ------------------------------------------------------------*/
256/** @defgroup CRYP_Exported_Macros CRYP Exported Macros
257 * @{
258 */
259
260/** @brief Reset CRYP handle state
261 * @param __HANDLE__: specifies the CRYP handle.
262 * @retval None
263 */
264#define __HAL_CRYP_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_CRYP_STATE_RESET)
265
266/**
267 * @brief Enable/Disable the CRYP peripheral.
268 * @param __HANDLE__: specifies the CRYP handle.
269 * @retval None
270 */
271#define __HAL_CRYP_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= CRYP_CR_CRYPEN)
272#define __HAL_CRYP_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~CRYP_CR_CRYPEN)
273
274/**
275 * @brief Flush the data FIFO.
276 * @param __HANDLE__: specifies the CRYP handle.
277 * @retval None
278 */
279#define __HAL_CRYP_FIFO_FLUSH(__HANDLE__) ((__HANDLE__)->Instance->CR |= CRYP_CR_FFLUSH)
280
281/**
282 * @brief Set the algorithm mode: AES-ECB, AES-CBC, AES-CTR, DES-ECB, DES-CBC.
283 * @param __HANDLE__: specifies the CRYP handle.
284 * @param MODE: The algorithm mode.
285 * @retval None
286 */
287#define __HAL_CRYP_SET_MODE(__HANDLE__, MODE) ((__HANDLE__)->Instance->CR |= (uint32_t)(MODE))
288
289/** @brief Check whether the specified CRYP flag is set or not.
290 * @param __HANDLE__: specifies the CRYP handle.
291 * @param __FLAG__: specifies the flag to check.
292 * This parameter can be one of the following values:
293 * @arg CRYP_FLAG_BUSY: The CRYP core is currently processing a block of data
294 * or a key preparation (for AES decryption).
295 * @arg CRYP_FLAG_IFEM: Input FIFO is empty
296 * @arg CRYP_FLAG_IFNF: Input FIFO is not full
297 * @arg CRYP_FLAG_INRIS: Input FIFO service raw interrupt is pending
298 * @arg CRYP_FLAG_OFNE: Output FIFO is not empty
299 * @arg CRYP_FLAG_OFFU: Output FIFO is full
300 * @arg CRYP_FLAG_OUTRIS: Input FIFO service raw interrupt is pending
301 * @retval The new state of __FLAG__ (TRUE or FALSE).
302 */
303
304#define __HAL_CRYP_GET_FLAG(__HANDLE__, __FLAG__) ((((uint8_t)((__FLAG__) >> 24)) == 0x01)?((((__HANDLE__)->Instance->RISR) & ((__FLAG__) & CRYP_FLAG_MASK)) == ((__FLAG__) & CRYP_FLAG_MASK)): \
305 ((((__HANDLE__)->Instance->RISR) & ((__FLAG__) & CRYP_FLAG_MASK)) == ((__FLAG__) & CRYP_FLAG_MASK)))
306
307/** @brief Check whether the specified CRYP interrupt is set or not.
308 * @param __HANDLE__: specifies the CRYP handle.
309 * @param __INTERRUPT__: specifies the interrupt to check.
310 * This parameter can be one of the following values:
311 * @arg CRYP_IT_INRIS: Input FIFO service raw interrupt is pending
312 * @arg CRYP_IT_OUTRIS: Output FIFO service raw interrupt is pending
313 * @retval The new state of __INTERRUPT__ (TRUE or FALSE).
314 */
315#define __HAL_CRYP_GET_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->MISR & (__INTERRUPT__)) == (__INTERRUPT__))
316
317/**
318 * @brief Enable the CRYP interrupt.
319 * @param __HANDLE__: specifies the CRYP handle.
320 * @param __INTERRUPT__: CRYP Interrupt.
321 * @retval None
322 */
323#define __HAL_CRYP_ENABLE_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->IMSCR) |= (__INTERRUPT__))
324
325/**
326 * @brief Disable the CRYP interrupt.
327 * @param __HANDLE__: specifies the CRYP handle.
328 * @param __INTERRUPT__: CRYP interrupt.
329 * @retval None
330 */
331#define __HAL_CRYP_DISABLE_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->IMSCR) &= ~(__INTERRUPT__))
332
333/**
334 * @}
335 */
336
337/* Include CRYP HAL Extension module */
338#include "stm32f4xx_hal_cryp_ex.h"
339
340/* Exported functions --------------------------------------------------------*/
341/** @defgroup CRYP_Exported_Functions CRYP Exported Functions
342 * @{
343 */
344
345/** @addtogroup CRYP_Exported_Functions_Group1
346 * @{
347 */
348HAL_StatusTypeDef HAL_CRYP_Init(CRYP_HandleTypeDef *hcryp);
349HAL_StatusTypeDef HAL_CRYP_DeInit(CRYP_HandleTypeDef *hcryp);
350void HAL_CRYP_MspInit(CRYP_HandleTypeDef *hcryp);
351void HAL_CRYP_MspDeInit(CRYP_HandleTypeDef *hcryp);
352/**
353 * @}
354 */
355
356/** @addtogroup CRYP_Exported_Functions_Group2
357 * @{
358 */
359/* AES encryption/decryption using polling ***********************************/
360HAL_StatusTypeDef HAL_CRYP_AESECB_Encrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData, uint32_t Timeout);
361HAL_StatusTypeDef HAL_CRYP_AESECB_Decrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData, uint32_t Timeout);
362HAL_StatusTypeDef HAL_CRYP_AESCBC_Encrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData, uint32_t Timeout);
363HAL_StatusTypeDef HAL_CRYP_AESCBC_Decrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData, uint32_t Timeout);
364HAL_StatusTypeDef HAL_CRYP_AESCTR_Encrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData, uint32_t Timeout);
365HAL_StatusTypeDef HAL_CRYP_AESCTR_Decrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData, uint32_t Timeout);
366
367/* AES encryption/decryption using interrupt *********************************/
368HAL_StatusTypeDef HAL_CRYP_AESECB_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
369HAL_StatusTypeDef HAL_CRYP_AESCBC_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
370HAL_StatusTypeDef HAL_CRYP_AESCTR_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
371HAL_StatusTypeDef HAL_CRYP_AESECB_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
372HAL_StatusTypeDef HAL_CRYP_AESCTR_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
373HAL_StatusTypeDef HAL_CRYP_AESCBC_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
374
375/* AES encryption/decryption using DMA ***************************************/
376HAL_StatusTypeDef HAL_CRYP_AESECB_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
377HAL_StatusTypeDef HAL_CRYP_AESECB_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
378HAL_StatusTypeDef HAL_CRYP_AESCBC_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
379HAL_StatusTypeDef HAL_CRYP_AESCBC_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
380HAL_StatusTypeDef HAL_CRYP_AESCTR_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
381HAL_StatusTypeDef HAL_CRYP_AESCTR_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
382/**
383 * @}
384 */
385
386/** @addtogroup CRYP_Exported_Functions_Group3
387 * @{
388 */
389/* DES encryption/decryption using polling ***********************************/
390HAL_StatusTypeDef HAL_CRYP_DESECB_Encrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData, uint32_t Timeout);
391HAL_StatusTypeDef HAL_CRYP_DESCBC_Encrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData, uint32_t Timeout);
392HAL_StatusTypeDef HAL_CRYP_DESECB_Decrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData, uint32_t Timeout);
393HAL_StatusTypeDef HAL_CRYP_DESCBC_Decrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData, uint32_t Timeout);
394
395/* DES encryption/decryption using interrupt *********************************/
396HAL_StatusTypeDef HAL_CRYP_DESECB_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
397HAL_StatusTypeDef HAL_CRYP_DESECB_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
398HAL_StatusTypeDef HAL_CRYP_DESCBC_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
399HAL_StatusTypeDef HAL_CRYP_DESCBC_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
400
401/* DES encryption/decryption using DMA ***************************************/
402HAL_StatusTypeDef HAL_CRYP_DESECB_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
403HAL_StatusTypeDef HAL_CRYP_DESECB_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
404HAL_StatusTypeDef HAL_CRYP_DESCBC_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
405HAL_StatusTypeDef HAL_CRYP_DESCBC_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
406/**
407 * @}
408 */
409
410/** @addtogroup CRYP_Exported_Functions_Group4
411 * @{
412 */
413/* TDES encryption/decryption using polling **********************************/
414HAL_StatusTypeDef HAL_CRYP_TDESECB_Encrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData, uint32_t Timeout);
415HAL_StatusTypeDef HAL_CRYP_TDESCBC_Encrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData, uint32_t Timeout);
416HAL_StatusTypeDef HAL_CRYP_TDESECB_Decrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData, uint32_t Timeout);
417HAL_StatusTypeDef HAL_CRYP_TDESCBC_Decrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData, uint32_t Timeout);
418
419/* TDES encryption/decryption using interrupt ********************************/
420HAL_StatusTypeDef HAL_CRYP_TDESECB_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
421HAL_StatusTypeDef HAL_CRYP_TDESECB_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
422HAL_StatusTypeDef HAL_CRYP_TDESCBC_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
423HAL_StatusTypeDef HAL_CRYP_TDESCBC_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
424
425/* TDES encryption/decryption using DMA **************************************/
426HAL_StatusTypeDef HAL_CRYP_TDESECB_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
427HAL_StatusTypeDef HAL_CRYP_TDESECB_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
428HAL_StatusTypeDef HAL_CRYP_TDESCBC_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
429HAL_StatusTypeDef HAL_CRYP_TDESCBC_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
430/**
431 * @}
432 */
433
434/** @addtogroup CRYP_Exported_Functions_Group5
435 * @{
436 */
437void HAL_CRYP_InCpltCallback(CRYP_HandleTypeDef *hcryp);
438void HAL_CRYP_OutCpltCallback(CRYP_HandleTypeDef *hcryp);
439void HAL_CRYP_ErrorCallback(CRYP_HandleTypeDef *hcryp);
440/**
441 * @}
442 */
443
444/** @addtogroup CRYP_Exported_Functions_Group6
445 * @{
446 */
447void HAL_CRYP_IRQHandler(CRYP_HandleTypeDef *hcryp);
448/**
449 * @}
450 */
451
452/** @addtogroup CRYP_Exported_Functions_Group7
453 * @{
454 */
455HAL_CRYP_STATETypeDef HAL_CRYP_GetState(CRYP_HandleTypeDef *hcryp);
456/**
457 * @}
458 */
459
460/**
461 * @}
462 */
463
464/* Private types -------------------------------------------------------------*/
465/** @defgroup CRYP_Private_Types CRYP Private Types
466 * @{
467 */
468
469/**
470 * @}
471 */
472
473/* Private variables ---------------------------------------------------------*/
474/** @defgroup CRYP_Private_Variables CRYP Private Variables
475 * @{
476 */
477
478/**
479 * @}
480 */
481
482/* Private constants ---------------------------------------------------------*/
483/** @defgroup CRYP_Private_Constants CRYP Private Constants
484 * @{
485 */
486#define CRYP_FLAG_MASK ((uint32_t)0x0000001F)
487/**
488 * @}
489 */
490
491/* Private macros ------------------------------------------------------------*/
492/** @defgroup CRYP_Private_Macros CRYP Private Macros
493 * @{
494 */
495
496#define IS_CRYP_KEYSIZE(__KEYSIZE__) (((__KEYSIZE__) == CRYP_KEYSIZE_128B) || \
497 ((__KEYSIZE__) == CRYP_KEYSIZE_192B) || \
498 ((__KEYSIZE__) == CRYP_KEYSIZE_256B))
499
500
501#define IS_CRYP_DATATYPE(__DATATYPE__) (((__DATATYPE__) == CRYP_DATATYPE_32B) || \
502 ((__DATATYPE__) == CRYP_DATATYPE_16B) || \
503 ((__DATATYPE__) == CRYP_DATATYPE_8B) || \
504 ((__DATATYPE__) == CRYP_DATATYPE_1B))
505
506
507 /**
508 * @}
509 */
510
511/* Private functions ---------------------------------------------------------*/
512/** @defgroup CRYP_Private_Functions CRYP Private Functions
513 * @{
514 */
515
516/**
517 * @}
518 */
519
520#endif /* STM32F415xx || STM32F417xx || STM32F437xx || STM32F439xx || STM32F479xx */
521
522/**
523 * @}
524 */
525
526/**
527 * @}
528 */
529
530#ifdef __cplusplus
531}
532#endif
533
534#endif /* __STM32F4xx_HAL_CRYP_H */
535
536/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Note: See TracBrowser for help on using the repository browser.