This file contains the prototype of SA3UL driver APIs.
Go to the source code of this file.
Data Structures | |
| struct | SA3UL_ContextParams |
| Parameters passed to SA3UL_contextAlloc() More... | |
| struct | SA3UL_Params |
| Parameters passed to SA3UL_open() More... | |
| struct | SA3UL_Object |
| Object for a SA3UL crypto operation. More... | |
| struct | SA3UL_Attrs |
| SA3UL instance attributes - used during init time. More... | |
| struct | SA3UL_Config |
| SA3UL driver context. More... | |
| struct | SA3UL_MCEData |
| MEDdata for Encryption engine. More... | |
| struct | SA3UL_SecCtxAuth |
| SA3UL context RAM structure for authentication engine. More... | |
| struct | SA3UL_Scctl |
| SA3UL SC control structure. More... | |
| struct | SA3UL_SecCtxEnc |
| SA3UL context RAM structure for Encryption engine. More... | |
| struct | SA3UL_SecCtx |
| SA3UL context RAM structure. More... | |
| struct | SA3UL_ContextObject |
| SA3UL context object structure. More... | |
Macros | |
| #define | SA3UL_ENC_KEYSIZE_BITS(k) (128u + (64u * (k))) |
SA3UL macros | |
| #define | SA3UL_MAX_HASH_SIZE_BYTES (64U) |
| Max hash size in bytes. More... | |
| #define | SA3UL_MAX_KEY_SIZE_BYTES (32U) |
| Max key size in bytes. More... | |
| #define | SA3UL_MAX_IV_SIZE_BYTES (16U) |
| Max Initialization vector (IV) size in bytes. More... | |
| #define | SA3UL_NUMBER_OF_RINGS (3U) |
| Max number of rings. More... | |
| #define | SA3UL_CACHELINE_ALIGNMENT (128U) |
| Cache line size for alignment of descriptor and buffers. More... | |
| #define | SA3UL_SECCTX_SIZE (256U) |
| Secure context memsize. More... | |
| #define | SA3UL_INSTANCES_MAX (4U) |
| Max SA3UL instances. More... | |
| #define | SA3UL_RING_N_ELEMS (8U) |
| Max SA3UL ring n elements. More... | |
| #define | SA3UL_SW_RING_NUM (304U) |
| Max SA3UL sw ring number. More... | |
| #define | SA3UL_MAX_INPUT_LENGTH_ENC (0xFFFFU) |
| Max Aes input length for encryption and decryption (64KB-1) More... | |
| #define | SA3UL_MAX_INPUT_LENGTH_AUTH (0x3FFFFFU) |
| Max input length for authentication (4MB-1) More... | |
SA3UL Algo Types | |
| #define | SA3UL_HASH_ALG_NULL (0x10U) |
| Hash Algo NULL. More... | |
| #define | SA3UL_HASH_ALG_SHA1 (0x12U) |
| Hash Algo SHA-1. More... | |
| #define | SA3UL_HASH_ALG_SHA2_256 (0x14U) |
| Hash Algo SHA-256. More... | |
| #define | SA3UL_HASH_ALG_SHA2_512 (0x16U) |
| Hash Algo SHA-512. More... | |
SA3UL Operations Sequence | |
| #define | SA3UL_OP_ENC (0x01U) |
| SA3UL operations encryption. More... | |
| #define | SA3UL_OP_AUTH (0x02U) |
| SA3UL operations authentication. More... | |
| #define | SA3UL_OP_ENC_THEN_AUTH (0x03U) |
| SA3UL operation encryption then authentication. More... | |
| #define | SA3UL_OP_AUTH_THEN_ENC (0x04U) |
| SA3UL operations authentication then encryption. More... | |
SA3UL engine operation type | |
| #define | SA3UL_ENGINE_CODE_DEFAULT_ENGINE_ID (0U) |
| SA3UL default engine Id. More... | |
| #define | SA3UL_ENGINE_CODE_ENCRYPTION_MODULE_P1 (2U) |
| SA3UL Encryption engine module p1. More... | |
| #define | SA3UL_ENGINE_CODE_ENCRYPTION_MODULE_P2 (3U) |
| SA3UL Encryption engine module p2. More... | |
| #define | SA3UL_ENGINE_CODE_AUTHENTICATION_MODULE_P1 (4U) |
| SA3UL Authentication engine module p1. More... | |
| #define | SA3UL_ENGINE_CODE_AUTHENTICATION_MODULE_P2 (5U) |
| SA3UL Authentication engine module p2. More... | |
| #define | SA3UL_ENGINE_CODE_DEFAULT_EGRESS_PORT (20U) |
| SA3UL Default Engress Port. More... | |
SA3UL Encryption Algos | |
| #define | SA3UL_ENC_ALG_AES (0x0U) |
| SA3UL AES Encryption Algorithm. More... | |
| #define | SA3UL_ENC_ALG_TDES (0x1U) |
| SA3UL TDES Encryption Algorithm. More... | |
| #define | SA3UL_ENC_ALG_MAX (0x2U) |
| SA3UL Encryption Maximun number of Algorithms. More... | |
SA3UL Encryption direction | |
| #define | SA3UL_ENC_DIR_ENCRYPT (0x0U) |
| Encryption direction. More... | |
| #define | SA3UL_ENC_DIR_DECRYPT (0x1U) |
| Decryption direction. More... | |
SA3UL Encryption modes | |
| #define | SA3UL_ENC_MODE_ECB (0x0U) |
| ECB mode. More... | |
| #define | SA3UL_ENC_MODE_CBC (0x1U) |
| CBC mode. More... | |
| #define | SA3UL_ENC_MODE_MAX (0x2U) |
| Maximun Encryption modes. More... | |
SA3UL Encryption key sizes | |
| #define | SA3UL_ENC_KEYSIZE_128 (0x0U) |
| Encryption 128 bit key size. More... | |
| #define | SA3UL_ENC_KEYSIZE_192 (0x1U) |
| Encryption 192 bit key size. More... | |
| #define | SA3UL_ENC_KEYSIZE_256 (0x2U) |
| Encryption 256 bit key size. More... | |
| #define | SA3UL_ENC_KEYSIZE_MAX (0x3U) |
| Max key size. More... | |
Typedefs | |
| typedef void * | SA3UL_Handle |
| Handle to the SA3UL driver returned by SA3UL_open() More... | |
Functions | |
| void | SA3UL_init (void) |
| This function initializes the SA3UL module. More... | |
| void | SA3UL_deinit (void) |
| This function de-initializes the SA3UL module. More... | |
| SA3UL_Handle | SA3UL_open (uint32_t index, const SA3UL_Params *params) |
| This function opens a given SA3UL module. More... | |
| void | SA3UL_close (SA3UL_Handle handle) |
| Function to close a SA3UL module specified by the SA3UL handle. More... | |
| int32_t | SA3UL_contextAlloc (SA3UL_Handle handle, SA3UL_ContextObject *ctxObj, const SA3UL_ContextParams *ctxPrms) |
| Function to configure secure context. More... | |
| int32_t | SA3UL_contextFree (SA3UL_ContextObject *pCtxObj) |
| Function to free secure context configuration. More... | |
| int32_t | SA3UL_contextProcess (SA3UL_ContextObject *ctxObj, const uint8_t *input, uint32_t ilen, uint8_t *output) |
| Function to transfer and recieve data buffer. More... | |
| static void | SA3UL_Params_init (SA3UL_Params *prms) |
| Function to initialize default SA3UL parameters. More... | |
| int32_t | SA3UL_rngSetup (SA3UL_Handle handle) |
| setup the SA3UL RNG module. More... | |
| int32_t | SA3UL_rngRead (SA3UL_Handle handle, uint32_t *out) |
| Read random numbers into the output buffer. More... | |
| static void | SA3UL_ContextParams_init (SA3UL_ContextParams *ctxPrms) |
Variables | |
| SA3UL_Config | gSa3ulConfig [] |
| Externally defined driver configuration array. More... | |
| uint32_t | gSa3ulConfigNum |
| Externally defined driver configuration Num. More... | |