| | |
| | | /* |
| | | * Copyright (c) 2019-2023 Beijing Hanwei Innovation Technology Ltd. Co. and |
| | | * Copyright (c) 2019-2025 Beijing Hanwei Innovation Technology Ltd. Co. and |
| | | * its subsidiaries and affiliates (collectly called MKSEMI). |
| | | * |
| | | * All rights reserved. |
| | |
| | | /** |
| | | * @brief AES CCM authentication checking result enumeration |
| | | */ |
| | | enum AES_MIN_CHE_T |
| | | enum AES_MIC_STATUS_T |
| | | { |
| | | AES_MIN_VALID = 1, /*!< MACTag verification is valid */ |
| | | AES_MIN_INVALID = 0, /*!< MACTag verification is invalid */ |
| | | AES_MIC_VALID = 1, /*!< MACTag verification is valid */ |
| | | AES_MIC_INVALID = 0, /*!< MACTag verification is invalid */ |
| | | }; |
| | | |
| | | /** |
| | |
| | | */ |
| | | struct AES_HANDLE_T |
| | | { |
| | | AES_TypeDef *const base; /*!< AES registers base address */ |
| | | const IRQn_Type irq; /*!< AES interrupt number */ |
| | | enum DMA_CH_T dma_in_ch; /*!< AES data input DMA channel */ |
| | | enum DMA_CH_T dma_out_ch; /*!< AES data output DMA channel */ |
| | | enum AES_STATE_T state; /*!< AES state */ |
| | | __IOM enum AES_MIN_CHE_T is_valid; /*!< AES CCM authentication checking result */ |
| | | struct AES_CFG_T config; /*!< AES configure Structure */ |
| | | uint8_t *input; /*!< Pointer to AES encryption or decryption input buffer */ |
| | | uint8_t *output; /*!< Pointer to AES encryption or decryption output buffer */ |
| | | uint16_t input_len; /*!< Length of input data */ |
| | | uint16_t output_len; /*!< Length of output data */ |
| | | __IOM uint16_t input_count; /*!< Counter of input data */ |
| | | __IOM uint16_t output_count; /*!< Counter of output data */ |
| | | drv_callback_t callback; /*!< Callback function provided by the user */ |
| | | AES_TypeDef *const base; /*!< AES registers base address */ |
| | | const IRQn_Type irq; /*!< AES interrupt number */ |
| | | enum DMA_CH_T dma_in_ch; /*!< AES data input DMA channel */ |
| | | enum DMA_CH_T dma_out_ch; /*!< AES data output DMA channel */ |
| | | enum AES_STATE_T state; /*!< AES state */ |
| | | __IOM enum AES_MIC_STATUS_T is_valid; /*!< AES CCM authentication checking result */ |
| | | struct AES_CFG_T config; /*!< AES configure Structure */ |
| | | uint8_t *input; /*!< Pointer to AES encryption or decryption input buffer */ |
| | | uint8_t *output; /*!< Pointer to AES encryption or decryption output buffer */ |
| | | uint16_t input_len; /*!< Length of input data */ |
| | | uint16_t output_len; /*!< Length of output data */ |
| | | __IOM uint16_t input_count; /*!< Counter of input data */ |
| | | __IOM uint16_t output_count; /*!< Counter of output data */ |
| | | drv_callback_t callback; /*!< Callback function provided by the user */ |
| | | }; |
| | | |
| | | #ifdef __cplusplus |
| | |
| | | * |
| | | * @param[in] id AES device instance ID. |
| | | * @return |
| | | * @ref AES_MIN_CHE_T |
| | | * @arg AES_MIN_VALID is valid |
| | | * @arg AES_MIN_INVALID is invalid |
| | | * @ref AES_MIC_STATUS_T |
| | | * @arg AES_MIC_VALID is valid |
| | | * @arg AES_MIC_INVALID is invalid |
| | | */ |
| | | enum AES_MIN_CHE_T aes_ccm_dec_mic_isvalid(enum AES_DEV_T id); |
| | | enum AES_MIC_STATUS_T aes_ccm_dec_mic_isvalid(enum AES_DEV_T id); |
| | | |
| | | /** |
| | | * @brief Function for Interrupt handler for AES. |