13 #ifndef ADI_CRYPTO_DEF_H 14 #define ADI_CRYPTO_DEF_H 18 #include <drivers/dma/adi_dma.h> 19 #include <adi_crypto_config.h> 22 #include <drivers/general/adi_drivers_general.h> 23 #define ALIGN4 ALIGNED_PRAGMA(4) 26 #define CRYPTO_SUPPORT_KEY_REQUIRED ( \ 27 (ADI_CRYPTO_ENABLE_ECB_SUPPORT == 1) \ 28 || (ADI_CRYPTO_ENABLE_CTR_SUPPORT == 1) \ 29 || (ADI_CRYPTO_ENABLE_CBC_SUPPORT == 1) \ 30 || (ADI_CRYPTO_ENABLE_CCM_SUPPORT == 1) \ 31 || (ADI_CRYPTO_ENABLE_CMAC_SUPPORT == 1) \ 34 #define CRYPTO_SUPPORT_MODE_CCM_ONLY ( \ 35 (ADI_CRYPTO_ENABLE_ECB_SUPPORT != 1) \ 36 && (ADI_CRYPTO_ENABLE_CTR_SUPPORT != 1) \ 37 && (ADI_CRYPTO_ENABLE_CBC_SUPPORT != 1) \ 38 && (ADI_CRYPTO_ENABLE_CCM_SUPPORT == 1) \ 39 && (ADI_CRYPTO_ENABLE_CMAC_SUPPORT != 1) \ 40 && (ADI_CRYPTO_ENABLE_SHA_SUPPORT != 1) \ 43 #define CRYPTO_SUPPORT_MODE_ANY_NON_CCM ( \ 44 (ADI_CRYPTO_ENABLE_ECB_SUPPORT == 1) \ 45 || (ADI_CRYPTO_ENABLE_CTR_SUPPORT == 1) \ 46 || (ADI_CRYPTO_ENABLE_CBC_SUPPORT == 1) \ 47 || (ADI_CRYPTO_ENABLE_CMAC_SUPPORT == 1) \ 48 || (ADI_CRYPTO_ENABLE_SHA_SUPPORT == 1) \ 51 #define CRYPTO_SUPPORT_MODE_ANY_NON_SHA ( \ 52 (ADI_CRYPTO_ENABLE_ECB_SUPPORT == 1) \ 53 || (ADI_CRYPTO_ENABLE_CTR_SUPPORT == 1) \ 54 || (ADI_CRYPTO_ENABLE_CBC_SUPPORT == 1) \ 55 || (ADI_CRYPTO_ENABLE_CMAC_SUPPORT == 1) \ 56 || (ADI_CRYPTO_ENABLE_CCM_SUPPORT == 1) \ 61 #if (defined (__ADUCM4x50__) && (1 == ADI_CRYPTO_ENABLE_PKSTOR_SUPPORT)) 62 #define PK_CONFIG_BITS (BITM_CRYPT_CFG_PRKSTOREN | BITM_CRYPT_CFG_BLKEN ) 63 #define NUM_PKSTOR_VAL_STRING_WORDS (2) 69 #define MIN(a,b) (((a)<(b))?(a):(b)) 72 #define MAX(a,b) (((a)>(b))?(a):(b)) 76 #define MAX_CRYPTO_DMA_BYTES (DMA_TRANSFER_LIMIT * sizeof(uint32_t)) 79 #define SHA_CHUNK_MAX_BYTES (64u) 80 #define SHA_CHUNK_MAX_BITS (SHA_CHUNK_MAX_BYTES * 8U) 81 #define SHA_CHUNK_MAX_WORDS (16u) 84 #define HMAC_CHUNK_MAX_BYTES (64u) 85 #define HMAC_CHUNK_MAX_BITS (HMAC_CHUNK_MAX_BYTES * 8U) 86 #define HMAC_CHUNK_MAX_WORDS (16u) 88 #define FIFO_WIDTH_IN_BITS (32u) 89 #define FIFO_WIDTH_IN_BYTES (FIFO_WIDTH_IN_BITS/8u) 90 #define FIFO_DEPTH (4u) 92 #define CRYPTO_INPUT_SIZE_IN_BITS (128u) 93 #define CRYPTO_INPUT_SIZE_IN_BYTES (CRYPTO_INPUT_SIZE_IN_BITS/8u) 95 #define SHA_OUTPUT_SIZE_IN_BITS (256u) 96 #define SHA_OUTPUT_SIZE_IN_BYTES (SHA_OUTPUT_SIZE_IN_BITS/8u) 106 typedef struct _CRYPTO_COMPUTE {
109 #if defined (__ADUCM4x50__) 120 uint32_t *pNextAuthInput;
121 uint32_t numAuthBytesRemaining;
123 uint32_t *pNextInput;
124 uint32_t numInputBytesRemaining;
126 uint32_t *pNextOutput;
127 uint32_t numOutputBytesRemaining;
139 uint32_t CounterInit;
140 uint32_t numValidBytes;
141 uint32_t numShaBitsRemaining;
143 #if (defined (__ADUCM4x50__) && (1 == ADI_CRYPTO_ENABLE_PKSTOR_SUPPORT)) 147 ADI_CRYPTO_PK_KUW_LEN pkKuwLen;
154 typedef struct _CRYPTO_INFO {
155 ADI_CRYPT_TypeDef *pDev;
157 #if (ADI_CRYPTO_ENABLE_DMA_SUPPORT == 1) 158 IRQn_Type dmaInputIrqNum;
159 IRQn_Type dmaOutputIrqNum;
160 DMA_CHANn_TypeDef dmaInputChanNum;
161 DMA_CHANn_TypeDef dmaOutputChanNum;
172 #pragma diag_suppress=Pm123 176 struct __ADI_CRYPTO_DEV_DATA_TYPE {
181 ADI_CRYPT_TypeDef *pDev;
183 CRYPTO_INFO *pDevInfo;
185 CRYPTO_COMPUTE Computation;
188 ADI_CALLBACK pfCallback;
194 } ADI_CRYPTO_DEV_DATA_TYPE;
197 #pragma diag_default=Pm123
struct __ADI_CRYPTO_DEV_DATA_TYPE * ADI_CRYPTO_HANDLE