24 #ifndef __STM32F4xx_CRYP_H
25 #define __STM32F4xx_CRYP_H
119 #define CRYP_AlgoDir_Encrypt ((uint16_t)0x0000)
120 #define CRYP_AlgoDir_Decrypt ((uint16_t)0x0004)
121 #define IS_CRYP_ALGODIR(ALGODIR) (((ALGODIR) == CRYP_AlgoDir_Encrypt) || \
122 ((ALGODIR) == CRYP_AlgoDir_Decrypt))
133 #define CRYP_AlgoMode_TDES_ECB ((uint16_t)0x0000)
134 #define CRYP_AlgoMode_TDES_CBC ((uint16_t)0x0008)
137 #define CRYP_AlgoMode_DES_ECB ((uint16_t)0x0010)
138 #define CRYP_AlgoMode_DES_CBC ((uint16_t)0x0018)
141 #define CRYP_AlgoMode_AES_ECB ((uint16_t)0x0020)
142 #define CRYP_AlgoMode_AES_CBC ((uint16_t)0x0028)
143 #define CRYP_AlgoMode_AES_CTR ((uint16_t)0x0030)
144 #define CRYP_AlgoMode_AES_Key ((uint16_t)0x0038)
146 #define IS_CRYP_ALGOMODE(ALGOMODE) (((ALGOMODE) == CRYP_AlgoMode_TDES_ECB) || \
147 ((ALGOMODE) == CRYP_AlgoMode_TDES_CBC)|| \
148 ((ALGOMODE) == CRYP_AlgoMode_DES_ECB)|| \
149 ((ALGOMODE) == CRYP_AlgoMode_DES_CBC) || \
150 ((ALGOMODE) == CRYP_AlgoMode_AES_ECB) || \
151 ((ALGOMODE) == CRYP_AlgoMode_AES_CBC) || \
152 ((ALGOMODE) == CRYP_AlgoMode_AES_CTR) || \
153 ((ALGOMODE) == CRYP_AlgoMode_AES_Key))
161 #define CRYP_DataType_32b ((uint16_t)0x0000)
162 #define CRYP_DataType_16b ((uint16_t)0x0040)
163 #define CRYP_DataType_8b ((uint16_t)0x0080)
164 #define CRYP_DataType_1b ((uint16_t)0x00C0)
165 #define IS_CRYP_DATATYPE(DATATYPE) (((DATATYPE) == CRYP_DataType_32b) || \
166 ((DATATYPE) == CRYP_DataType_16b)|| \
167 ((DATATYPE) == CRYP_DataType_8b)|| \
168 ((DATATYPE) == CRYP_DataType_1b))
176 #define CRYP_KeySize_128b ((uint16_t)0x0000)
177 #define CRYP_KeySize_192b ((uint16_t)0x0100)
178 #define CRYP_KeySize_256b ((uint16_t)0x0200)
179 #define IS_CRYP_KEYSIZE(KEYSIZE) (((KEYSIZE) == CRYP_KeySize_128b)|| \
180 ((KEYSIZE) == CRYP_KeySize_192b)|| \
181 ((KEYSIZE) == CRYP_KeySize_256b))
189 #define CRYP_FLAG_BUSY ((uint8_t)0x10)
193 #define CRYP_FLAG_IFEM ((uint8_t)0x01)
194 #define CRYP_FLAG_IFNF ((uint8_t)0x02)
195 #define CRYP_FLAG_INRIS ((uint8_t)0x22)
196 #define CRYP_FLAG_OFNE ((uint8_t)0x04)
198 #define CRYP_FLAG_OFFU ((uint8_t)0x08)
199 #define CRYP_FLAG_OUTRIS ((uint8_t)0x21)
202 #define IS_CRYP_GET_FLAG(FLAG) (((FLAG) == CRYP_FLAG_IFEM) || \
203 ((FLAG) == CRYP_FLAG_IFNF) || \
204 ((FLAG) == CRYP_FLAG_OFNE) || \
205 ((FLAG) == CRYP_FLAG_OFFU) || \
206 ((FLAG) == CRYP_FLAG_BUSY) || \
207 ((FLAG) == CRYP_FLAG_OUTRIS)|| \
208 ((FLAG) == CRYP_FLAG_INRIS))
216 #define CRYP_IT_INI ((uint8_t)0x01)
217 #define CRYP_IT_OUTI ((uint8_t)0x02)
218 #define IS_CRYP_CONFIG_IT(IT) ((((IT) & (uint8_t)0xFC) == 0x00) && ((IT) != 0x00))
219 #define IS_CRYP_GET_IT(IT) (((IT) == CRYP_IT_INI) || ((IT) == CRYP_IT_OUTI))
228 #define MODE_ENCRYPT ((uint8_t)0x01)
229 #define MODE_DECRYPT ((uint8_t)0x00)
238 #define CRYP_DMAReq_DataIN ((uint8_t)0x01)
239 #define CRYP_DMAReq_DataOUT ((uint8_t)0x02)
240 #define IS_CRYP_DMAREQ(DMAREQ) ((((DMAREQ) & (uint8_t)0xFC) == 0x00) && ((DMAREQ) != 0x00))
253 void CRYP_DeInit(
void);
262 void CRYP_Cmd(FunctionalState NewState);
265 void CRYP_DataIn(uint32_t Data);
266 uint32_t CRYP_DataOut(
void);
267 void CRYP_FIFOFlush(
void);
270 ErrorStatus CRYP_SaveContext(
CRYP_Context* CRYP_ContextSave,
272 void CRYP_RestoreContext(
CRYP_Context* CRYP_ContextRestore);
275 void CRYP_DMACmd(uint8_t CRYP_DMAReq, FunctionalState NewState);
278 void CRYP_ITConfig(uint8_t CRYP_IT, FunctionalState NewState);
279 ITStatus CRYP_GetITStatus(uint8_t CRYP_IT);
280 FlagStatus CRYP_GetFlagStatus(uint8_t CRYP_FLAG);
283 ErrorStatus CRYP_AES_ECB(uint8_t Mode,
284 uint8_t *Key, uint16_t Keysize,
285 uint8_t *Input, uint32_t Ilength,
288 ErrorStatus CRYP_AES_CBC(uint8_t Mode,
289 uint8_t InitVectors[16],
290 uint8_t *Key, uint16_t Keysize,
291 uint8_t *Input, uint32_t Ilength,
294 ErrorStatus CRYP_AES_CTR(uint8_t Mode,
295 uint8_t InitVectors[16],
296 uint8_t *Key, uint16_t Keysize,
297 uint8_t *Input, uint32_t Ilength,
301 ErrorStatus CRYP_TDES_ECB(uint8_t Mode,
303 uint8_t *Input, uint32_t Ilength,
306 ErrorStatus CRYP_TDES_CBC(uint8_t Mode,
308 uint8_t InitVectors[8],
309 uint8_t *Input, uint32_t Ilength,
313 ErrorStatus CRYP_DES_ECB(uint8_t Mode,
315 uint8_t *Input, uint32_t Ilength,
318 ErrorStatus CRYP_DES_CBC(uint8_t Mode,
320 uint8_t InitVectors[8],
321 uint8_t *Input,uint32_t Ilength,
CMSIS Cortex-M4 Device Peripheral Access Layer Header File. This file contains all the peripheral reg...
CRYP context swapping structure definition.
CRYP Key(s) structure definition.
CRYP Initialization Vectors (IV) structure definition.
CRYP Init structure definition.