This module contains APIs to program and use the SA2UL.
|
file | sa2ul.h |
| This file contains the prototype of SA2UL driver APIs.
|
|
◆ SA2UL_MAX_HASH_SIZE_BYTES
#define SA2UL_MAX_HASH_SIZE_BYTES (64U) |
◆ SA2UL_MAX_KEY_SIZE_BYTES
#define SA2UL_MAX_KEY_SIZE_BYTES (32U) |
◆ SA2UL_MAX_IV_SIZE_BYTES
#define SA2UL_MAX_IV_SIZE_BYTES (16U) |
Max Initialization vector (IV) size in bytes.
◆ SA2UL_NUMBER_OF_RINGS
#define SA2UL_NUMBER_OF_RINGS (3U) |
◆ SA2UL_CACHELINE_ALIGNMENT
#define SA2UL_CACHELINE_ALIGNMENT (16U) |
Cache line size for alignment of descriptor and buffers.
◆ SA2UL_SECCTX_SIZE
#define SA2UL_SECCTX_SIZE (256U) |
◆ SA2UL_INSTANCES_MAX
#define SA2UL_INSTANCES_MAX (4U) |
◆ SA2UL_RING_N_ELEMS
#define SA2UL_RING_N_ELEMS (8U) |
Max SA2UL ring n elements.
◆ SA2UL_SW_RING_NUM
#define SA2UL_SW_RING_NUM (304U) |
Max SA2UL sw ring number.
◆ SA2UL_MAX_INPUT_LENGTH_ENC
#define SA2UL_MAX_INPUT_LENGTH_ENC (0xFFFFU) |
Max Aes input length for encryption and decryption (64KB-1)
◆ SA2UL_MAX_INPUT_LENGTH_AUTH
#define SA2UL_MAX_INPUT_LENGTH_AUTH (0x3FFFFFU) |
Max input length for authentication (4MB-1)
◆ SA2UL_HASH_ALG_NULL
#define SA2UL_HASH_ALG_NULL (0x10U) |
◆ SA2UL_HASH_ALG_SHA1
#define SA2UL_HASH_ALG_SHA1 (0x12U) |
◆ SA2UL_HASH_ALG_SHA2_256
#define SA2UL_HASH_ALG_SHA2_256 (0x14U) |
◆ SA2UL_HASH_ALG_SHA2_512
#define SA2UL_HASH_ALG_SHA2_512 (0x16U) |
◆ SA2UL_OP_ENC
#define SA2UL_OP_ENC (0x01U) |
SA2UL operations encryption.
◆ SA2UL_OP_AUTH
#define SA2UL_OP_AUTH (0x02U) |
SA2UL operations authentication.
◆ SA2UL_OP_ENC_THEN_AUTH
#define SA2UL_OP_ENC_THEN_AUTH (0x03U) |
SA2UL operation encryption then authentication.
◆ SA2UL_OP_AUTH_THEN_ENC
#define SA2UL_OP_AUTH_THEN_ENC (0x04U) |
SA2UL operations authentication then encryption.
◆ SA2UL_ENGINE_CODE_DEFAULT_ENGINE_ID
#define SA2UL_ENGINE_CODE_DEFAULT_ENGINE_ID (0U) |
◆ SA2UL_ENGINE_CODE_ENCRYPTION_MODULE_P1
#define SA2UL_ENGINE_CODE_ENCRYPTION_MODULE_P1 (2U) |
SA2UL Encryption engine module p1.
◆ SA2UL_ENGINE_CODE_ENCRYPTION_MODULE_P2
#define SA2UL_ENGINE_CODE_ENCRYPTION_MODULE_P2 (3U) |
SA2UL Encryption engine module p2.
◆ SA2UL_ENGINE_CODE_AUTHENTICATION_MODULE_P1
#define SA2UL_ENGINE_CODE_AUTHENTICATION_MODULE_P1 (4U) |
SA2UL Authentication engine module p1.
◆ SA2UL_ENGINE_CODE_AUTHENTICATION_MODULE_P2
#define SA2UL_ENGINE_CODE_AUTHENTICATION_MODULE_P2 (5U) |
SA2UL Authentication engine module p2.
◆ SA2UL_ENGINE_CODE_DEFAULT_EGRESS_PORT
#define SA2UL_ENGINE_CODE_DEFAULT_EGRESS_PORT (20U) |
SA2UL Default Engress Port.
◆ SA2UL_ENC_ALG_AES
#define SA2UL_ENC_ALG_AES (0x0U) |
SA2UL AES Encryption Algorithm.
◆ SA2UL_ENC_ALG_TDES
#define SA2UL_ENC_ALG_TDES (0x1U) |
SA2UL TDES Encryption Algorithm.
◆ SA2UL_ENC_ALG_MAX
#define SA2UL_ENC_ALG_MAX (0x2U) |
SA2UL Encryption Maximun number of Algorithms.
◆ SA2UL_ENC_DIR_ENCRYPT
#define SA2UL_ENC_DIR_ENCRYPT (0x0U) |
◆ SA2UL_ENC_DIR_DECRYPT
#define SA2UL_ENC_DIR_DECRYPT (0x1U) |
◆ SA2UL_ENC_MODE_ECB
#define SA2UL_ENC_MODE_ECB (0x0U) |
◆ SA2UL_ENC_MODE_CBC
#define SA2UL_ENC_MODE_CBC (0x1U) |
◆ SA2UL_ENC_MODE_MAX
#define SA2UL_ENC_MODE_MAX (0x2U) |
Maximun Encryption modes.
◆ SA2UL_ENC_KEYSIZE_128
#define SA2UL_ENC_KEYSIZE_128 (0x0U) |
Encryption 128 bit key size.
◆ SA2UL_ENC_KEYSIZE_192
#define SA2UL_ENC_KEYSIZE_192 (0x1U) |
Encryption 192 bit key size.
◆ SA2UL_ENC_KEYSIZE_256
#define SA2UL_ENC_KEYSIZE_256 (0x2U) |
Encryption 256 bit key size.
◆ SA2UL_ENC_KEYSIZE_MAX
#define SA2UL_ENC_KEYSIZE_MAX (0x3U) |
◆ SA2UL_ENC_KEYSIZE_BITS
#define SA2UL_ENC_KEYSIZE_BITS |
( |
|
k | ) |
(128u + (64u * (k))) |
◆ SA2UL_Handle
◆ SA2UL_init()
This function initializes the SA2UL module.
◆ SA2UL_deinit()
void SA2UL_deinit |
( |
void |
| ) |
|
This function de-initializes the SA2UL module.
◆ SA2UL_engineEnable()
int32_t SA2UL_engineEnable |
( |
int32_t |
hwEnableMask | ) |
|
This function enable particular SA2UL engine based on user input mask.
- Parameters
-
hwEnableMask | Mask to enable user specific engine. |
◆ SA2UL_engineDisable()
int32_t SA2UL_engineDisable |
( |
int32_t |
hwDisableMask | ) |
|
This function disable particular SA2UL engine based on user input mask.
- Parameters
-
hwDisableMask | Mask to disable user specific engine. |
◆ SA2UL_open()
This function opens a given SA2UL module.
- Parameters
-
index | Index of config to use in the SA2UL_Config array |
params | Pointer to open parameters. If NULL is passed, then default values will be used |
- Returns
- A SA2UL_Handle on success or a NULL on an error or if it has been opened already
◆ SA2UL_close()
Function to close a SA2UL module specified by the SA2UL handle.
- Parameters
-
◆ SA2UL_contextAlloc()
Function to configure secure context.
- Parameters
-
- Returns
- A SystemP_SUCCESS on success or a NULL on an error or if the instance index has NOT been opened yet
◆ SA2UL_contextFree()
Function to free secure context configuration.
- Parameters
-
- Returns
- A SystemP_SUCCESS on success or a NULL on an error or if the instance index has NOT been opened yet
◆ SA2UL_contextProcess()
int32_t SA2UL_contextProcess |
( |
SA2UL_ContextObject * |
ctxObj, |
|
|
const uint8_t * |
input, |
|
|
uint32_t |
ilen, |
|
|
uint8_t * |
output |
|
) |
| |
Function to transfer and recieve data buffer.
- Parameters
-
ctxObj | Pointer to SA2UL_ContextObject structure |
input | Pointer to input buffer to be processed |
ilen | Length of the input buffer |
output | Pointer to output buffer after the process is complete |
- Returns
- A SystemP_SUCCESS on success or a NULL on an error or if the instance index has NOT been opened yet
◆ SA2UL_Params_init()
Function to initialize default SA2UL parameters.
- Parameters
-
prms | Pointer to open parameters. |
◆ SA2UL_ContextParams_init()
◆ gSa2ulConfig
Externally defined driver configuration array.
◆ gSa2ulConfigNum
Externally defined driver configuration Num.
◆ gSa2ulEngineEnableMask
uint32_t gSa2ulEngineEnableMask |
|
extern |
Externally defined driver engine configuration mask.