AM64x MCU+ SDK  08.06.00
sa2ul.h File Reference

Introduction

This file contains the prototype of SA2UL driver APIs.

Go to the source code of this file.

Data Structures

struct  SA2UL_ContextParams
 Parameters passed to SA2UL_contextAlloc() More...
 
struct  SA2UL_Params
 Parameters passed to SA2UL_open() More...
 
struct  SA2UL_Object
 Object for a SA2UL crypto operation. More...
 
struct  SA2UL_Attrs
 SA2UL instance attributes - used during init time. More...
 
struct  SA2UL_Config
 SA2UL driver context. More...
 
struct  SA2UL_MCEData
 MEDdata for Encryption engine. More...
 
struct  SA2UL_SecCtxAuth
 SA2UL context RAM structure for authentication engine. More...
 
struct  SA2UL_Scctl
 SA2UL SC control structure. More...
 
struct  SA2UL_SecCtxEnc
 SA2UL context RAM structure for Encryption engine. More...
 
struct  SA2UL_SecCtx
 SA2UL context RAM structure. More...
 
struct  SA2UL_ContextObject
 SA2UL context object structure. More...
 

Macros

#define SA2UL_ENC_KEYSIZE_BITS(k)   (128u + (64u * (k)))
 
SA2UL macros

#define SA2UL_MAX_HASH_SIZE_BYTES   (64U)
 Max hash size in bytes. More...
 
#define SA2UL_MAX_KEY_SIZE_BYTES   (32U)
 Max key size in bytes. More...
 
#define SA2UL_MAX_IV_SIZE_BYTES   (16U)
 Max Initialization vector (IV) size in bytes. More...
 
#define SA2UL_NUMBER_OF_RINGS   (3U)
 Max number of rings. More...
 
#define SA2UL_CACHELINE_ALIGNMENT   (16U)
 Cache line size for alignment of descriptor and buffers. More...
 
#define SA2UL_SECCTX_SIZE   (256U)
 Secure context memsize. More...
 
#define SA2UL_INSTANCES_MAX   (4U)
 Max SA2UL instances. More...
 
#define SA2UL_RING_N_ELEMS   (8U)
 Max SA2UL ring n elements. More...
 
#define SA2UL_SW_RING_NUM   (304U)
 Max SA2UL sw ring number. More...
 
#define SA2UL_MAX_INPUT_LENGTH_ENC   (0xFFFFU)
 Max Aes input length for encryption and decryption (64KB-1) More...
 
#define SA2UL_MAX_INPUT_LENGTH_AUTH   (0x3FFFFFU)
 Max input length for authentication (4MB-1) More...
 
SA2UL Algo Types

#define SA2UL_HASH_ALG_NULL   (0x10U)
 Hash Algo NULL. More...
 
#define SA2UL_HASH_ALG_SHA1   (0x12U)
 Hash Algo SHA-1. More...
 
#define SA2UL_HASH_ALG_SHA2_256   (0x14U)
 Hash Algo SHA-256. More...
 
#define SA2UL_HASH_ALG_SHA2_512   (0x16U)
 Hash Algo SHA-512. More...
 
SA2UL Operations Sequence

#define SA2UL_OP_ENC   (0x01U)
 SA2UL operations encryption. More...
 
#define SA2UL_OP_AUTH   (0x02U)
 SA2UL operations authentication. More...
 
#define SA2UL_OP_ENC_THEN_AUTH   (0x03U)
 SA2UL operation encryption then authentication. More...
 
#define SA2UL_OP_AUTH_THEN_ENC   (0x04U)
 SA2UL operations authentication then encryption. More...
 
SA2UL engine operation type

#define SA2UL_ENGINE_CODE_DEFAULT_ENGINE_ID   (0U)
 SA2UL default engine Id. More...
 
#define SA2UL_ENGINE_CODE_ENCRYPTION_MODULE_P1   (2U)
 SA2UL Encryption engine module p1. More...
 
#define SA2UL_ENGINE_CODE_ENCRYPTION_MODULE_P2   (3U)
 SA2UL Encryption engine module p2. More...
 
#define SA2UL_ENGINE_CODE_AUTHENTICATION_MODULE_P1   (4U)
 SA2UL Authentication engine module p1. More...
 
#define SA2UL_ENGINE_CODE_AUTHENTICATION_MODULE_P2   (5U)
 SA2UL Authentication engine module p2. More...
 
#define SA2UL_ENGINE_CODE_DEFAULT_EGRESS_PORT   (20U)
 SA2UL Default Engress Port. More...
 
SA2UL Encryption Algos

#define SA2UL_ENC_ALG_AES   (0x0U)
 SA2UL AES Encryption Algorithm. More...
 
#define SA2UL_ENC_ALG_TDES   (0x1U)
 SA2UL TDES Encryption Algorithm. More...
 
#define SA2UL_ENC_ALG_MAX   (0x2U)
 SA2UL Encryption Maximun number of Algorithms. More...
 
SA2UL Encryption direction

#define SA2UL_ENC_DIR_ENCRYPT   (0x0U)
 Encryption direction. More...
 
#define SA2UL_ENC_DIR_DECRYPT   (0x1U)
 Decryption direction. More...
 
SA2UL Encryption modes

#define SA2UL_ENC_MODE_ECB   (0x0U)
 ECB mode. More...
 
#define SA2UL_ENC_MODE_CBC   (0x1U)
 CBC mode. More...
 
#define SA2UL_ENC_MODE_MAX   (0x2U)
 Maximun Encryption modes. More...
 
SA2UL Encryption key sizes

#define SA2UL_ENC_KEYSIZE_128   (0x0U)
 Encryption 128 bit key size. More...
 
#define SA2UL_ENC_KEYSIZE_192   (0x1U)
 Encryption 192 bit key size. More...
 
#define SA2UL_ENC_KEYSIZE_256   (0x2U)
 Encryption 256 bit key size. More...
 
#define SA2UL_ENC_KEYSIZE_MAX   (0x3U)
 Max key size. More...
 

Typedefs

typedef void * SA2UL_Handle
 Handle to the SA2UL driver returned by SA2UL_open() More...
 

Functions

void SA2UL_init (void)
 This function initializes the SA2UL module. More...
 
void SA2UL_deinit (void)
 This function de-initializes the SA2UL module. More...
 
int32_t SA2UL_engineEnable (int32_t hwEnableMask)
 This function enable particular SA2UL engine based on user input mask. More...
 
int32_t SA2UL_engineDisable (int32_t hwDisableMask)
 This function disable particular SA2UL engine based on user input mask. More...
 
SA2UL_Handle SA2UL_open (uint32_t index, const SA2UL_Params *params)
 This function opens a given SA2UL module. More...
 
void SA2UL_close (SA2UL_Handle handle)
 Function to close a SA2UL module specified by the SA2UL handle. More...
 
int32_t SA2UL_contextAlloc (SA2UL_Handle handle, SA2UL_ContextObject *ctxObj, const SA2UL_ContextParams *ctxPrms)
 Function to configure secure context. More...
 
int32_t SA2UL_contextFree (SA2UL_ContextObject *pCtxObj)
 Function to free secure context configuration. More...
 
int32_t SA2UL_contextProcess (SA2UL_ContextObject *ctxObj, const uint8_t *input, uint32_t ilen, uint8_t *output)
 Function to transfer and recieve data buffer. More...
 
static void SA2UL_Params_init (SA2UL_Params *prms)
 Function to initialize default SA2UL parameters. More...
 
static void SA2UL_ContextParams_init (SA2UL_ContextParams *ctxPrms)
 

Variables

SA2UL_Config gSa2ulConfig []
 Externally defined driver configuration array. More...
 
uint32_t gSa2ulConfigNum
 Externally defined driver configuration Num. More...
 
uint32_t gSa2ulEngineEnableMask
 Externally defined driver engine configuration mask. More...