You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

538 lines
16 KiB

  1. /**
  2. ******************************************************************************
  3. * @file stm32wbxx_ll_pka.h
  4. * @author MCD Application Team
  5. * @brief Header file of PKA LL module.
  6. ******************************************************************************
  7. * @attention
  8. *
  9. * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
  10. * All rights reserved.</center></h2>
  11. *
  12. * This software component is licensed by ST under BSD 3-Clause license,
  13. * the "License"; You may not use this file except in compliance with the
  14. * License. You may obtain a copy of the License at:
  15. * opensource.org/licenses/BSD-3-Clause
  16. *
  17. ******************************************************************************
  18. */
  19. /* Define to prevent recursive inclusion -------------------------------------*/
  20. #ifndef STM32WBxx_LL_PKA_H
  21. #define STM32WBxx_LL_PKA_H
  22. #ifdef __cplusplus
  23. extern "C" {
  24. #endif
  25. /* Includes ------------------------------------------------------------------*/
  26. #include "stm32wbxx.h"
  27. /** @addtogroup STM32WBxx_LL_Driver
  28. * @{
  29. */
  30. #if defined(PKA)
  31. /** @defgroup PKA_LL PKA
  32. * @{
  33. */
  34. /* Private variables ---------------------------------------------------------*/
  35. /* Exported types ------------------------------------------------------------*/
  36. #if defined(USE_FULL_LL_DRIVER)
  37. /** @defgroup PKA_LL_ES_INIT PKA Exported Init structure
  38. * @{
  39. */
  40. /**
  41. * @brief PKA Init structures definition
  42. */
  43. typedef struct
  44. {
  45. uint32_t Mode; /*!< Specifies the PKA operation mode.
  46. This parameter can be a value of @ref PKA_LL_EC_MODE.
  47. This feature can be modified afterwards using unitary function @ref LL_PKA_SetMode(). */
  48. } LL_PKA_InitTypeDef;
  49. /**
  50. * @}
  51. */
  52. #endif /* USE_FULL_LL_DRIVER */
  53. /* Exported constants --------------------------------------------------------*/
  54. /** @defgroup PKA_LL_Exported_Constants PKA Exported Constants
  55. * @{
  56. */
  57. /** @defgroup PKA_LL_EC_GET_FLAG Get Flags Defines
  58. * @brief Flags defines which can be used with LL_PKA_ReadReg function
  59. * @{
  60. */
  61. #define LL_PKA_SR_ADDRERRF PKA_SR_ADDRERRF
  62. #define LL_PKA_SR_RAMERRF PKA_SR_RAMERRF
  63. #define LL_PKA_SR_PROCENDF PKA_SR_PROCENDF
  64. #define LL_PKA_SR_BUSY PKA_SR_BUSY
  65. /**
  66. * @}
  67. */
  68. /** @defgroup PKA_LL_EC_IT IT Defines
  69. * @brief IT defines which can be used with LL_PKA_ReadReg and LL_PKA_WriteReg functions
  70. * @{
  71. */
  72. #define LL_PKA_CR_ADDRERRIE PKA_CR_ADDRERRIE
  73. #define LL_PKA_CR_RAMERRIE PKA_CR_RAMERRIE
  74. #define LL_PKA_CR_PROCENDIE PKA_CR_PROCENDIE
  75. #define LL_PKA_CLRFR_PROCENDFC PKA_CLRFR_PROCENDFC
  76. #define LL_PKA_CLRFR_RAMERRFC PKA_CLRFR_RAMERRFC
  77. #define LL_PKA_CLRFR_ADDRERRFC PKA_CLRFR_ADDRERRFC
  78. /**
  79. * @}
  80. */
  81. /** @defgroup PKA_LL_EC_MODE Operation Mode
  82. * @brief List of opearation mode.
  83. * @{
  84. */
  85. #define LL_PKA_MODE_MONTGOMERY_PARAM_MOD_EXP ((uint32_t)0x00000000U) /*!< Compute Montgomery parameter and modular exponentiation */
  86. #define LL_PKA_MODE_MONTGOMERY_PARAM ((uint32_t)0x00000001U) /*!< Compute Montgomery parameter only */
  87. #define LL_PKA_MODE_MODULAR_EXP ((uint32_t)0x00000002U) /*!< Compute modular exponentiation only (Montgomery parameter should be loaded) */
  88. #define LL_PKA_MODE_MONTGOMERY_PARAM_ECC ((uint32_t)0x00000020U) /*!< Compute Montgomery parameter and compute ECC kP operation */
  89. #define LL_PKA_MODE_ECC_KP_PRIMITIVE ((uint32_t)0x00000022U) /*!< Compute the ECC kP primitive only (Montgomery parameter should be loaded) */
  90. #define LL_PKA_MODE_ECDSA_SIGNATURE ((uint32_t)0x00000024U) /*!< ECDSA signature */
  91. #define LL_PKA_MODE_ECDSA_VERIFICATION ((uint32_t)0x00000026U) /*!< ECDSA verification */
  92. #define LL_PKA_MODE_POINT_CHECK ((uint32_t)0x00000028U) /*!< Point check */
  93. #define LL_PKA_MODE_RSA_CRT_EXP ((uint32_t)0x00000007U) /*!< RSA CRT exponentiation */
  94. #define LL_PKA_MODE_MODULAR_INV ((uint32_t)0x00000008U) /*!< Modular inversion */
  95. #define LL_PKA_MODE_ARITHMETIC_ADD ((uint32_t)0x00000009U) /*!< Arithmetic addition */
  96. #define LL_PKA_MODE_ARITHMETIC_SUB ((uint32_t)0x0000000AU) /*!< Arithmetic subtraction */
  97. #define LL_PKA_MODE_ARITHMETIC_MUL ((uint32_t)0x0000000BU) /*!< Arithmetic multiplication */
  98. #define LL_PKA_MODE_COMPARISON ((uint32_t)0x0000000CU) /*!< Comparison */
  99. #define LL_PKA_MODE_MODULAR_REDUC ((uint32_t)0x0000000DU) /*!< Modular reduction */
  100. #define LL_PKA_MODE_MODULAR_ADD ((uint32_t)0x0000000EU) /*!< Modular addition */
  101. #define LL_PKA_MODE_MODULAR_SUB ((uint32_t)0x0000000FU) /*!< Modular subtraction */
  102. #define LL_PKA_MODE_MONTGOMERY_MUL ((uint32_t)0x00000010U) /*!< Montgomery multiplication */
  103. /**
  104. * @}
  105. */
  106. /**
  107. * @}
  108. */
  109. /* Exported macro ------------------------------------------------------------*/
  110. /** @defgroup PKA_LL_Exported_Macros PKA Exported Macros
  111. * @{
  112. */
  113. /** @defgroup PKA_LL_EM_WRITE_READ Common Write and read registers Macros
  114. * @{
  115. */
  116. /**
  117. * @brief Write a value in PKA register
  118. * @param __INSTANCE__ PKA Instance
  119. * @param __REG__ Register to be written
  120. * @param __VALUE__ Value to be written in the register
  121. * @retval None
  122. */
  123. #define LL_PKA_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
  124. /**
  125. * @brief Read a value in PKA register
  126. * @param __INSTANCE__ PKA Instance
  127. * @param __REG__ Register to be read
  128. * @retval Register value
  129. */
  130. #define LL_PKA_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
  131. /**
  132. * @}
  133. */
  134. /**
  135. * @}
  136. */
  137. /* Exported functions --------------------------------------------------------*/
  138. /** @defgroup PKA_LL_Exported_Functions PKA Exported Functions
  139. * @{
  140. */
  141. /** @defgroup PKA_LL_EF_Configuration Configuration
  142. * @{
  143. */
  144. /**
  145. * @brief Configure PKA peripheral.
  146. * @brief Set PKA operating mode.
  147. * @rmtoll CR MODE LL_PKA_Config
  148. * @param PKAx PKA Instance.
  149. * @param Mode This parameter can be one of the following values:
  150. * @arg @ref LL_PKA_MODE_MONTGOMERY_PARAM_MOD_EXP
  151. * @arg @ref LL_PKA_MODE_MONTGOMERY_PARAM
  152. * @arg @ref LL_PKA_MODE_MODULAR_EXP
  153. * @arg @ref LL_PKA_MODE_MONTGOMERY_PARAM_ECC
  154. * @arg @ref LL_PKA_MODE_ECC_KP_PRIMITIVE
  155. * @arg @ref LL_PKA_MODE_ECDSA_SIGNATURE
  156. * @arg @ref LL_PKA_MODE_ECDSA_VERIFICATION
  157. * @arg @ref LL_PKA_MODE_POINT_CHECK
  158. * @arg @ref LL_PKA_MODE_RSA_CRT_EXP
  159. * @arg @ref LL_PKA_MODE_MODULAR_INV
  160. * @arg @ref LL_PKA_MODE_ARITHMETIC_ADD
  161. * @arg @ref LL_PKA_MODE_ARITHMETIC_SUB
  162. * @arg @ref LL_PKA_MODE_ARITHMETIC_MUL
  163. * @arg @ref LL_PKA_MODE_COMPARISON
  164. * @arg @ref LL_PKA_MODE_MODULAR_REDUC
  165. * @arg @ref LL_PKA_MODE_MODULAR_ADD
  166. * @arg @ref LL_PKA_MODE_MODULAR_SUB
  167. * @arg @ref LL_PKA_MODE_MONTGOMERY_MUL
  168. */
  169. __STATIC_INLINE void LL_PKA_Config(PKA_TypeDef *PKAx, uint32_t Mode)
  170. {
  171. MODIFY_REG(PKAx->CR, (PKA_CR_MODE), (Mode << PKA_CR_MODE_Pos));
  172. }
  173. /**
  174. * @brief Enable PKA peripheral.
  175. * @rmtoll CR EN LL_PKA_Enable
  176. * @param PKAx PKA Instance.
  177. * @retval None
  178. */
  179. __STATIC_INLINE void LL_PKA_Enable(PKA_TypeDef *PKAx)
  180. {
  181. SET_BIT(PKAx->CR, PKA_CR_EN);
  182. }
  183. /**
  184. * @brief Disable PKA peripheral.
  185. * @rmtoll CR EN LL_PKA_Disable
  186. * @param PKAx PKA Instance.
  187. * @retval None
  188. */
  189. __STATIC_INLINE void LL_PKA_Disable(PKA_TypeDef *PKAx)
  190. {
  191. CLEAR_BIT(PKAx->CR, PKA_CR_EN);
  192. }
  193. /**
  194. * @brief Check if the PKA peripheral is enabled or disabled.
  195. * @rmtoll CR EN LL_PKA_IsEnabled
  196. * @param PKAx PKA Instance.
  197. * @retval State of bit (1 or 0).
  198. */
  199. __STATIC_INLINE uint32_t LL_PKA_IsEnabled(PKA_TypeDef *PKAx)
  200. {
  201. return ((READ_BIT(PKAx->CR, PKA_CR_EN) == (PKA_CR_EN)) ? 1UL : 0UL);
  202. }
  203. /**
  204. * @brief Set PKA operating mode.
  205. * @rmtoll CR MODE LL_PKA_SetMode
  206. * @param PKAx PKA Instance.
  207. * @param Mode This parameter can be one of the following values:
  208. * @arg @ref LL_PKA_MODE_MONTGOMERY_PARAM_MOD_EXP
  209. * @arg @ref LL_PKA_MODE_MONTGOMERY_PARAM
  210. * @arg @ref LL_PKA_MODE_MODULAR_EXP
  211. * @arg @ref LL_PKA_MODE_MONTGOMERY_PARAM_ECC
  212. * @arg @ref LL_PKA_MODE_ECC_KP_PRIMITIVE
  213. * @arg @ref LL_PKA_MODE_ECDSA_SIGNATURE
  214. * @arg @ref LL_PKA_MODE_ECDSA_VERIFICATION
  215. * @arg @ref LL_PKA_MODE_POINT_CHECK
  216. * @arg @ref LL_PKA_MODE_RSA_CRT_EXP
  217. * @arg @ref LL_PKA_MODE_MODULAR_INV
  218. * @arg @ref LL_PKA_MODE_ARITHMETIC_ADD
  219. * @arg @ref LL_PKA_MODE_ARITHMETIC_SUB
  220. * @arg @ref LL_PKA_MODE_ARITHMETIC_MUL
  221. * @arg @ref LL_PKA_MODE_COMPARISON
  222. * @arg @ref LL_PKA_MODE_MODULAR_REDUC
  223. * @arg @ref LL_PKA_MODE_MODULAR_ADD
  224. * @arg @ref LL_PKA_MODE_MODULAR_SUB
  225. * @arg @ref LL_PKA_MODE_MONTGOMERY_MUL
  226. * @retval None
  227. */
  228. __STATIC_INLINE void LL_PKA_SetMode(PKA_TypeDef *PKAx, uint32_t Mode)
  229. {
  230. MODIFY_REG(PKAx->CR, PKA_CR_MODE, Mode << PKA_CR_MODE_Pos);
  231. }
  232. /**
  233. * @brief Get PKA operating mode.
  234. * @rmtoll CR MODE LL_PKA_GetMode
  235. * @param PKAx PKA Instance.
  236. * @retval Returned value can be one of the following values:
  237. * @arg @ref LL_PKA_MODE_MONTGOMERY_PARAM_MOD_EXP
  238. * @arg @ref LL_PKA_MODE_MONTGOMERY_PARAM
  239. * @arg @ref LL_PKA_MODE_MODULAR_EXP
  240. * @arg @ref LL_PKA_MODE_MONTGOMERY_PARAM_ECC
  241. * @arg @ref LL_PKA_MODE_ECC_KP_PRIMITIVE
  242. * @arg @ref LL_PKA_MODE_ECDSA_SIGNATURE
  243. * @arg @ref LL_PKA_MODE_ECDSA_VERIFICATION
  244. * @arg @ref LL_PKA_MODE_POINT_CHECK
  245. * @arg @ref LL_PKA_MODE_RSA_CRT_EXP
  246. * @arg @ref LL_PKA_MODE_MODULAR_INV
  247. * @arg @ref LL_PKA_MODE_ARITHMETIC_ADD
  248. * @arg @ref LL_PKA_MODE_ARITHMETIC_SUB
  249. * @arg @ref LL_PKA_MODE_ARITHMETIC_MUL
  250. * @arg @ref LL_PKA_MODE_COMPARISON
  251. * @arg @ref LL_PKA_MODE_MODULAR_REDUC
  252. * @arg @ref LL_PKA_MODE_MODULAR_ADD
  253. * @arg @ref LL_PKA_MODE_MODULAR_SUB
  254. * @arg @ref LL_PKA_MODE_MONTGOMERY_MUL
  255. */
  256. __STATIC_INLINE uint32_t LL_PKA_GetMode(PKA_TypeDef *PKAx)
  257. {
  258. return (uint32_t)(READ_BIT(PKAx->CR, PKA_CR_MODE) >> PKA_CR_MODE_Pos);
  259. }
  260. /**
  261. * @brief Start the operation selected using LL_PKA_SetMode.
  262. * @rmtoll CR START LL_PKA_Start
  263. * @param PKAx PKA Instance.
  264. * @retval None
  265. */
  266. __STATIC_INLINE void LL_PKA_Start(PKA_TypeDef *PKAx)
  267. {
  268. SET_BIT(PKAx->CR, PKA_CR_START);
  269. }
  270. /**
  271. * @}
  272. */
  273. /** @defgroup PKA_LL_EF_IT_Management IT_Management
  274. * @{
  275. */
  276. /**
  277. * @brief Enable address error interrupt.
  278. * @rmtoll CR ADDRERRIE LL_PKA_EnableIT_ADDRERR
  279. * @param PKAx PKA Instance.
  280. * @retval None
  281. */
  282. __STATIC_INLINE void LL_PKA_EnableIT_ADDRERR(PKA_TypeDef *PKAx)
  283. {
  284. SET_BIT(PKAx->CR, PKA_CR_ADDRERRIE);
  285. }
  286. /**
  287. * @brief Enable RAM error interrupt.
  288. * @rmtoll CR RAMERRIE LL_PKA_EnableIT_RAMERR
  289. * @param PKAx PKA Instance.
  290. * @retval None
  291. */
  292. __STATIC_INLINE void LL_PKA_EnableIT_RAMERR(PKA_TypeDef *PKAx)
  293. {
  294. SET_BIT(PKAx->CR, PKA_CR_RAMERRIE);
  295. }
  296. /**
  297. * @brief Enable end of operation interrupt.
  298. * @rmtoll CR PROCENDIE LL_PKA_EnableIT_PROCEND
  299. * @param PKAx PKA Instance.
  300. * @retval None
  301. */
  302. __STATIC_INLINE void LL_PKA_EnableIT_PROCEND(PKA_TypeDef *PKAx)
  303. {
  304. SET_BIT(PKAx->CR, PKA_CR_PROCENDIE);
  305. }
  306. /**
  307. * @brief Disable address error interrupt.
  308. * @rmtoll CR ADDRERRIE LL_PKA_DisableIT_ADDERR
  309. * @param PKAx PKA Instance.
  310. * @retval None
  311. */
  312. __STATIC_INLINE void LL_PKA_DisableIT_ADDERR(PKA_TypeDef *PKAx)
  313. {
  314. CLEAR_BIT(PKAx->CR, PKA_CR_ADDRERRIE);
  315. }
  316. /**
  317. * @brief Disable RAM error interrupt.
  318. * @rmtoll CR RAMERRIE LL_PKA_DisableIT_RAMERR
  319. * @param PKAx PKA Instance.
  320. * @retval None
  321. */
  322. __STATIC_INLINE void LL_PKA_DisableIT_RAMERR(PKA_TypeDef *PKAx)
  323. {
  324. CLEAR_BIT(PKAx->CR, PKA_CR_RAMERRIE);
  325. }
  326. /**
  327. * @brief Disable End of operation interrupt.
  328. * @rmtoll CR PROCENDIE LL_PKA_DisableIT_PROCEND
  329. * @param PKAx PKA Instance.
  330. * @retval None
  331. */
  332. __STATIC_INLINE void LL_PKA_DisableIT_PROCEND(PKA_TypeDef *PKAx)
  333. {
  334. CLEAR_BIT(PKAx->CR, PKA_CR_PROCENDIE);
  335. }
  336. /**
  337. * @brief Check if address error interrupt is enabled.
  338. * @rmtoll CR ADDRERRIE LL_PKA_IsEnabledIT_ADDRERR
  339. * @param PKAx PKA Instance.
  340. * @retval State of bit (1 or 0).
  341. */
  342. __STATIC_INLINE uint32_t LL_PKA_IsEnabledIT_ADDRERR(PKA_TypeDef *PKAx)
  343. {
  344. return ((READ_BIT(PKAx->CR, PKA_CR_ADDRERRIE) == (PKA_CR_ADDRERRIE)) ? 1UL : 0UL);
  345. }
  346. /**
  347. * @brief Check if RAM error interrupt is enabled.
  348. * @rmtoll CR RAMERRIE LL_PKA_IsEnabledIT_RAMERR
  349. * @param PKAx PKA Instance.
  350. * @retval State of bit (1 or 0).
  351. */
  352. __STATIC_INLINE uint32_t LL_PKA_IsEnabledIT_RAMERR(PKA_TypeDef *PKAx)
  353. {
  354. return ((READ_BIT(PKAx->CR, PKA_CR_RAMERRIE) == (PKA_CR_RAMERRIE)) ? 1UL : 0UL);
  355. }
  356. /**
  357. * @brief Check if end of operation interrupt is enabled.
  358. * @rmtoll CR PROCENDIE LL_PKA_IsEnabledIT_PROCEND
  359. * @param PKAx PKA Instance.
  360. * @retval State of bit (1 or 0).
  361. */
  362. __STATIC_INLINE uint32_t LL_PKA_IsEnabledIT_PROCEND(PKA_TypeDef *PKAx)
  363. {
  364. return ((READ_BIT(PKAx->CR, PKA_CR_PROCENDIE) == (PKA_CR_PROCENDIE)) ? 1UL : 0UL);
  365. }
  366. /**
  367. * @}
  368. */
  369. /** @defgroup PKA_LL_EF_FLAG_Management PKA flag management
  370. * @{
  371. */
  372. /**
  373. * @brief Get PKA address error flag.
  374. * @rmtoll SR ADDRERRF LL_PKA_IsActiveFlag_ADDRERR
  375. * @param PKAx PKA Instance.
  376. * @retval State of bit (1 or 0).
  377. */
  378. __STATIC_INLINE uint32_t LL_PKA_IsActiveFlag_ADDRERR(PKA_TypeDef *PKAx)
  379. {
  380. return ((READ_BIT(PKAx->SR, PKA_SR_ADDRERRF) == (PKA_SR_ADDRERRF)) ? 1UL : 0UL);
  381. }
  382. /**
  383. * @brief Get PKA RAM error flag.
  384. * @rmtoll SR RAMERRF LL_PKA_IsActiveFlag_RAMERR
  385. * @param PKAx PKA Instance.
  386. * @retval State of bit (1 or 0).
  387. */
  388. __STATIC_INLINE uint32_t LL_PKA_IsActiveFlag_RAMERR(PKA_TypeDef *PKAx)
  389. {
  390. return ((READ_BIT(PKAx->SR, PKA_SR_RAMERRF) == (PKA_SR_RAMERRF)) ? 1UL : 0UL);
  391. }
  392. /**
  393. * @brief Get PKA end of operation flag.
  394. * @rmtoll SR PROCENDF LL_PKA_IsActiveFlag_PROCEND
  395. * @param PKAx PKA Instance.
  396. * @retval State of bit (1 or 0).
  397. */
  398. __STATIC_INLINE uint32_t LL_PKA_IsActiveFlag_PROCEND(PKA_TypeDef *PKAx)
  399. {
  400. return ((READ_BIT(PKAx->SR, PKA_SR_PROCENDF) == (PKA_SR_PROCENDF)) ? 1UL : 0UL);
  401. }
  402. /**
  403. * @brief Get PKA busy flag.
  404. * @rmtoll SR BUSY LL_PKA_IsActiveFlag_BUSY
  405. * @param PKAx PKA Instance.
  406. * @retval State of bit (1 or 0).
  407. */
  408. __STATIC_INLINE uint32_t LL_PKA_IsActiveFlag_BUSY(PKA_TypeDef *PKAx)
  409. {
  410. return ((READ_BIT(PKAx->SR, PKA_SR_BUSY) == (PKA_SR_BUSY)) ? 1UL : 0UL);
  411. }
  412. /**
  413. * @brief Clear PKA address error flag.
  414. * @rmtoll CLRFR ADDRERRFC LL_PKA_ClearFlag_ADDERR
  415. * @param PKAx PKA Instance.
  416. * @retval None
  417. */
  418. __STATIC_INLINE void LL_PKA_ClearFlag_ADDERR(PKA_TypeDef *PKAx)
  419. {
  420. SET_BIT(PKAx->CLRFR, PKA_CLRFR_ADDRERRFC);
  421. }
  422. /**
  423. * @brief Clear PKA RAM error flag.
  424. * @rmtoll CLRFR RAMERRFC LL_PKA_ClearFlag_RAMERR
  425. * @param PKAx PKA Instance.
  426. * @retval None
  427. */
  428. __STATIC_INLINE void LL_PKA_ClearFlag_RAMERR(PKA_TypeDef *PKAx)
  429. {
  430. SET_BIT(PKAx->CLRFR, PKA_CLRFR_RAMERRFC);
  431. }
  432. /**
  433. * @brief Clear PKA end of operation flag.
  434. * @rmtoll CLRFR PROCENDFC LL_PKA_ClearFlag_PROCEND
  435. * @param PKAx PKA Instance.
  436. * @retval None
  437. */
  438. __STATIC_INLINE void LL_PKA_ClearFlag_PROCEND(PKA_TypeDef *PKAx)
  439. {
  440. SET_BIT(PKAx->CLRFR, PKA_CLRFR_PROCENDFC);
  441. }
  442. /**
  443. * @}
  444. */
  445. #if defined(USE_FULL_LL_DRIVER)
  446. /** @defgroup PKA_LL_EF_Init Initialization and de-initialization functions
  447. * @{
  448. */
  449. ErrorStatus LL_PKA_DeInit(PKA_TypeDef *PKAx);
  450. ErrorStatus LL_PKA_Init(PKA_TypeDef *PKAx, LL_PKA_InitTypeDef *PKA_InitStruct);
  451. void LL_PKA_StructInit(LL_PKA_InitTypeDef *PKA_InitStruct);
  452. /**
  453. * @}
  454. */
  455. #endif /* USE_FULL_LL_DRIVER */
  456. /**
  457. * @}
  458. */
  459. /**
  460. * @}
  461. */
  462. #endif /* defined(PKA) */
  463. /**
  464. * @}
  465. */
  466. #ifdef __cplusplus
  467. }
  468. #endif
  469. #endif /* STM32WBxx_LL_PKA_H */
  470. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/