app_aes_dma.h
Go to the documentation of this file.
1 /**
2  ****************************************************************************************
3  *
4  * @file app_aes_dma.h
5  * @author BLE Driver Team
6  * @brief Header file containing functions prototypes of AES app library.
7  *
8  ****************************************************************************************
9  * @attention
10  #####Copyright (c) 2019 GOODIX
11  All rights reserved.
12 
13  Redistribution and use in source and binary forms, with or without
14  modification, are permitted provided that the following conditions are met:
15  * Redistributions of source code must retain the above copyright
16  notice, this list of conditions and the following disclaimer.
17  * Redistributions in binary form must reproduce the above copyright
18  notice, this list of conditions and the following disclaimer in the
19  documentation and/or other materials provided with the distribution.
20  * Neither the name of GOODIX nor the names of its contributors may be used
21  to endorse or promote products derived from this software without
22  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
27  ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
28  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34  POSSIBILITY OF SUCH DAMAGE.
35  ****************************************************************************************
36  */
37 
38 /** @addtogroup PERIPHERAL Peripheral Driver
39  * @{
40  */
41 
42 /** @addtogroup APP_DRIVER APP DRIVER
43  * @{
44  */
45 
46 /** @addtogroup APP_AES AES
47  * @brief AES APP module driver.
48  * @{
49  */
50 
51 
52 #ifndef _APP_AES_DMA_H_
53 #define _APP_AES_DMA_H_
54 
55 #include "grx_hal.h"
56 #include "app_drv_error.h"
57 #include "app_drv_config.h"
58 #include "app_aes.h"
59 #ifdef __cplusplus
60 extern "C" {
61 #endif
62 
63 #ifdef HAL_AES_MODULE_ENABLED
64 
65 /* Exported functions --------------------------------------------------------*/
66 /** @addtogroup APP_AES_DRIVER_FUNCTIONS Functions
67  * @{
68  */
69 
70 /**
71  ****************************************************************************************
72  * @brief Initialize the APP AES DRIVER according to the specified parameters
73  * in the app_aes_params_t and app_aes_evt_handler_t.
74  * @note If interrupt mode is set, you can use blocking mode. Conversely, if blocking mode
75  * is set, you can't use interrupt mode.
76  *
77  * @param[in] p_params: Pointer to app_aes_params_t parameter which contains the
78  * configuration information for the specified AES module.
79  *
80  * @return Result of initialization.
81  ****************************************************************************************
82  */
83 uint16_t app_aes_dma_init(app_aes_params_t *p_params);
84 
85 /**
86  ****************************************************************************************
87  * @brief De-initialize the APP AES DRIVER peripheral.
88  *
89  * @return Result of De-initialization.
90  ****************************************************************************************
91  */
92 uint16_t app_aes_dma_deinit(void);
93 
94 /**
95  ****************************************************************************************
96  * @brief Encrypted an amount of data in non-blocking mode.
97  *
98  * @param[in] p_cypher_data: Pointer to cypher data buffer.
99  * @param[in] number: Amount of data to be decrypted in bytes
100  * @param[out] p_plain_data: Pointer to plain data buffer
101  *
102  * @return Result of operation.
103  ****************************************************************************************
104  */
105 uint16_t app_aes_dma_encrypt_async(uint32_t *p_plain_data, uint32_t number, uint32_t *p_cypher_data);
106 
107 /**
108  ****************************************************************************************
109  * @brief Decrypted an amount of data in non-blocking mode.
110  *
111  * @param[in] p_cypher_data: Pointer to cypher data buffer.
112  * @param[in] number: Amount of data to be decrypted in bytes
113  * @param[out] p_plain_data: Pointer to plain data buffer
114  *
115  * @return Result of operation.
116  ****************************************************************************************
117  */
118 uint16_t app_aes_dma_decrypt_async(uint32_t *p_cypher_data, uint32_t number, uint32_t *p_plain_data);
119 
120 /** @} */
121 
122 #endif
123 
124 #ifdef __cplusplus
125 }
126 #endif
127 #endif
128 
129 /** @} */
130 /** @} */
131 /** @} */
132 
app_aes_params_t
AES parameters structure definition.
Definition: app_aes.h:144
app_aes_dma_deinit
uint16_t app_aes_dma_deinit(void)
De-initialize the APP AES DRIVER peripheral.
app_aes_dma_init
uint16_t app_aes_dma_init(app_aes_params_t *p_params)
Initialize the APP AES DRIVER according to the specified parameters in the app_aes_params_t and app_a...
app_aes_dma_decrypt_async
uint16_t app_aes_dma_decrypt_async(uint32_t *p_cypher_data, uint32_t number, uint32_t *p_plain_data)
Decrypted an amount of data in non-blocking mode.
grx_hal.h
This file contains all the functions prototypes for the HAL module driver.
app_aes_dma_encrypt_async
uint16_t app_aes_dma_encrypt_async(uint32_t *p_plain_data, uint32_t number, uint32_t *p_cypher_data)
Encrypted an amount of data in non-blocking mode.
app_drv_error.h
Header file of app driver error code.
app_drv_config.h
Header file of app driver config code.
app_aes.h
Header file containing functions prototypes of AES app library.