54 #include <adi_processor.h> 55 #include <adi_callback.h> 56 #include <rtos_map/adi_rtos_map.h> 58 #include <adi_crypto_config.h> 87 #if (defined (__ADUCM4x50__) && (1 == ADI_CRYPTO_ENABLE_PKSTOR_SUPPORT)) 88 ADI_CRYPTO_PK_ALREADY_ENABLED,
89 ADI_CRYPTO_PK_ALREADY_DISABLED,
90 ADI_CRYPTO_PK_NOT_ENABLED,
91 ADI_CRYPTO_PK_INVALID_KUWLEN,
92 ADI_CRYPTO_PK_INVALID_KEY_INDEX,
93 ADI_CRYPTO_PK_CMD_BUSY,
94 ADI_CRYPTO_PK_CMD_FAULT,
95 ADI_CRYPTO_PK_CMD_ECC_FAULT,
111 #if defined (__ADUCM4x50__) 112 ADI_CRYPTO_EVENT_STATUS_HMAC_DONE,
127 #if defined (__ADUCM4x50__) 128 #if (1 == ADI_CRYPTO_ENABLE_PKSTOR_SUPPORT) 129 #define ADI_CRYPTO_MEMORY_SIZE (100u + ADI_SEM_SIZE) 131 #define ADI_CRYPTO_MEMORY_SIZE (92u + ADI_SEM_SIZE) 133 #elif defined (__ADUCM302x__) 134 #define ADI_CRYPTO_MEMORY_SIZE (88u + ADI_SEM_SIZE) 136 #error Crypto driver is not ported to this proccesor 144 #define ADI_CRYPTO_SHA_HASH_BYTES (256u/8u) 146 #if defined (__ADUCM4x50__) 148 #define ADI_CRYPTO_HMAC_HASH_BYTES (256u/8u) 165 #if defined (__ADUCM4x50__) 169 ADI_CRYPTO_KEY_LITTLE_ENDIAN = (0u << BITP_CRYPT_CFG_KEY_BYTESWAP),
170 ADI_CRYPTO_KEY_BIG_ENDIAN = (1u << BITP_CRYPT_CFG_KEY_BYTESWAP),
171 } ADI_CRYPTO_KEY_BYTE_SWAP;
174 #if defined (__ADUCM4x50__) 178 ADI_CRYPTO_SHA_LITTLE_ENDIAN = (0u << BITP_CRYPT_CFG_SHA_BYTESWAP),
179 ADI_CRYPTO_SHA_BIG_ENDIAN = (1u << BITP_CRYPT_CFG_SHA_BYTESWAP),
180 } ADI_CRYPTO_SHA_BYTE_SWAP;
200 #if defined (__ADUCM4x50__) 201 ADI_CRYPTO_MODE_HMAC = BITM_CRYPT_CFG_HMACEN,
207 #if defined (__ADUCM4x50__) 208 #if ((1 == ADI_CRYPTO_ENABLE_PKSTOR_SUPPORT) || (1 == ADI_CRYPTO_ENABLE_HMAC_SUPPORT)) 212 ADI_PK_KUW_LEN_128 = (1u << BITP_CRYPT_CFG_KUWKEYLEN),
213 ADI_PK_KUW_LEN_256 = (2u << BITP_CRYPT_CFG_KUWKEYLEN),
214 ADI_PK_KUW_LEN_512 = (3u << BITP_CRYPT_CFG_KUWKEYLEN),
215 } ADI_CRYPTO_PK_KUW_LEN;
220 #if (defined (__ADUCM4x50__) && (1 == ADI_CRYPTO_ENABLE_PKSTOR_SUPPORT)) 224 ADI_PK_CMD_WRAP_KUW = (0x1 << BITP_CRYPT_PRKSTORCFG_CMD),
225 ADI_PK_CMD_UNWRAP_KUW = (0x2 << BITP_CRYPT_PRKSTORCFG_CMD),
226 ADI_PK_CMD_RESET_KUW = (0x3 << BITP_CRYPT_PRKSTORCFG_CMD),
227 ADI_PK_CMD_USE_KEY = (0x4 << BITP_CRYPT_PRKSTORCFG_CMD),
228 ADI_PK_CMD_USE_DEV_KEY = (0x5 << BITP_CRYPT_PRKSTORCFG_CMD),
230 ADI_PK_CMD_RETRIEVE_KEY = (0x8 << BITP_CRYPT_PRKSTORCFG_CMD),
231 ADI_PK_CMD_STORE_KEY = (0x9 << BITP_CRYPT_PRKSTORCFG_CMD),
232 ADI_PK_CMD_ERASE_KEY = (0xA << BITP_CRYPT_PRKSTORCFG_CMD),
233 ADI_PK_CMD_ERASE_PAGE = (0xB << BITP_CRYPT_PRKSTORCFG_CMD),
243 #if defined (__ADUCM4x50__) 244 ADI_CRYPTO_KEY_BYTE_SWAP eKeyByteSwap;
245 ADI_CRYPTO_SHA_BYTE_SWAP eShaByteSwap;
278 #if (defined (__ADUCM4x50__) && (1 == ADI_CRYPTO_ENABLE_PKSTOR_SUPPORT)) 285 ADI_CRYPTO_PK_KUW_LEN pkKuwLen;
294 ADI_CRYPTO_RESULT
adi_crypto_Open (uint32_t
const nDeviceNum,
void *
const pMemory, uint32_t
const nMemorySize, ADI_CRYPTO_HANDLE *
const phDevice);
296 ADI_CRYPTO_RESULT
adi_crypto_RegisterCallback (ADI_CRYPTO_HANDLE
const hDevice, ADI_CALLBACK
const pfCallback,
void *
const pCBParam);
297 ADI_CRYPTO_RESULT
adi_crypto_Enable (ADI_CRYPTO_HANDLE
const hDevice,
bool const bEnable);
303 #if (ADI_CRYPTO_ENABLE_DMA_SUPPORT == 1) 304 ADI_CRYPTO_RESULT adi_crypto_EnableDmaMode (ADI_CRYPTO_HANDLE
const hDevice,
bool const bEnable);
307 #if (defined (__ADUCM4x50__) && (1 == ADI_CRYPTO_ENABLE_PKSTOR_SUPPORT)) 308 ADI_CRYPTO_RESULT adi_crypto_pk_EnablePKSTOR (ADI_CRYPTO_HANDLE
const hDevice,
bool const bEnable);
310 ADI_CRYPTO_RESULT adi_crypto_pk_SetValString (ADI_CRYPTO_HANDLE
const hDevice, uint8_t *
const pValStr);
311 ADI_CRYPTO_RESULT adi_crypto_pk_GetValString (ADI_CRYPTO_HANDLE
const hDevice, uint8_t *
const pValStr);
313 ADI_CRYPTO_RESULT adi_crypto_pk_SetKuwLen (ADI_CRYPTO_HANDLE
const hDevice, ADI_CRYPTO_PK_KUW_LEN
const kuwDataLen);
314 ADI_CRYPTO_RESULT adi_crypto_pk_SetKuwReg (ADI_CRYPTO_HANDLE
const hDevice, uint8_t *
const pKuwData);
315 ADI_CRYPTO_RESULT adi_crypto_pk_WrapKuwReg (ADI_CRYPTO_HANDLE
const hDevice);
316 ADI_CRYPTO_RESULT adi_crypto_pk_UnwrapKuwReg (ADI_CRYPTO_HANDLE
const hDevice);
317 ADI_CRYPTO_RESULT adi_crypto_pk_ResetKuwReg (ADI_CRYPTO_HANDLE
const hDevice);
319 ADI_CRYPTO_RESULT adi_crypto_pk_UseDecryptedKey (ADI_CRYPTO_HANDLE
const hDevice);
320 ADI_CRYPTO_RESULT adi_crypto_pk_LoadDeviceKey (ADI_CRYPTO_HANDLE
const hDevice);
322 ADI_CRYPTO_RESULT adi_crypto_pk_RetrieveKey (ADI_CRYPTO_HANDLE
const hDevice, uint8_t
const index);
323 ADI_CRYPTO_RESULT adi_crypto_pk_StoreKey (ADI_CRYPTO_HANDLE
const hDevice, uint8_t
const index);
324 ADI_CRYPTO_RESULT adi_crypto_pk_DestroyKey (ADI_CRYPTO_HANDLE
const hDevice, uint8_t
const index);
325 ADI_CRYPTO_RESULT adi_crypto_pk_ErasePage (ADI_CRYPTO_HANDLE
const hDevice, uint8_t
const index);
ADI_CRYPTO_AES_BYTE_SWAP eAesByteSwap
ADI_CRYPTO_CODING_MODE eCodingMode
ADI_CRYPTO_RESULT adi_crypto_GetBuffer(ADI_CRYPTO_HANDLE const hDevice, ADI_CRYPTO_TRANSACTION **const ppBuffer)
Get the submitted transaction buffer back from the driver.
ADI_CRYPTO_AES_KEY_LEN eAesKeyLen
ADI_CRYPTO_RESULT adi_crypto_RegisterCallback(ADI_CRYPTO_HANDLE const hDevice, ADI_CALLBACK const pfCallback, void *const pCBParam)
Register a user callback function.
ADI_CRYPTO_RESULT adi_crypto_Enable(ADI_CRYPTO_HANDLE const hDevice, bool const bEnable)
Enable/Disable the device. Enabling the device causes the submitted buffer to be processed.
ADI_CRYPTO_RESULT adi_crypto_Open(uint32_t const nDeviceNum, void *const pMemory, uint32_t const nMemorySize, ADI_CRYPTO_HANDLE *const phDevice)
Opens a Crypto device instance.
ADI_CRYPTO_RESULT adi_crypto_SubmitBuffer(ADI_CRYPTO_HANDLE const hDevice, ADI_CRYPTO_TRANSACTION *const pBuffer)
Submit a Crypto transaction buffer for processing.
struct __ADI_CRYPTO_DEV_DATA_TYPE * ADI_CRYPTO_HANDLE
ADI_CRYPTO_RESULT adi_crypto_IsBufferAvailable(ADI_CRYPTO_HANDLE const hDevice, bool *const pbAvailable)
Peek function to know whether a submitted transaction is complete.
ADI_CRYPTO_RESULT adi_crypto_Close(ADI_CRYPTO_HANDLE const hDevice)
Close the given device instance.
ADI_CRYPTO_CIPHER_MODE eCipherMode