|
Data Structures |
| struct | IxCryptoAccAuthCtx |
| | Structure storing authentication configuration parameters required to perform security functionality. More...
|
| struct | IxCryptoAccCipherCtx |
| | Structure storing cipher configuration parameters required to perform security functionality. More...
|
| struct | IxCryptoAccCtx |
| | Structure storing configuration parameters required to perform security functionality. More...
|
Defines |
| #define | IX_CRYPTO_ACC_MAX_CIPHER_KEY_LENGTH |
| | Max length (byte) of cipher key for DES (64 bit), 3DES (192 bit), AES (128, 192 & 256 bit).
|
| #define | IX_CRYPTO_ACC_MAX_CIPHER_IV_LENGTH |
| | Max IV length in bytes.
|
| #define | IX_CRYPTO_ACC_MAX_AUTH_KEY_LENGTH |
| | Max length (byte) of authentication key for SHA1 and MD5.
|
| #define | IX_CRYPTO_ACC_MAX_AUTH_IV_LENGTH |
| | Max length (byte) of initial chaining variable for SHA1 (160 bit) and MD5 (128 bit).
|
| #define | IX_CRYPTO_ACC_MAX_QUEUE_DEPTH |
| | Max queue depth supported by the Queue Manager.
|
| #define | IX_CRYPTO_ACC_MAX_ACTIVE_SA_TUNNELS |
| | Maximum active tunnels supported could be changed by the client based on the application's requirements.
|
| #define | IX_CRYPTO_ACC_DES_KEY_64 |
| | DES key length in bytes.
|
| #define | IX_CRYPTO_ACC_DES_BLOCK_64 |
| | DES cipher block length in bytes.
|
| #define | IX_CRYPTO_ACC_DES_IV_64 |
| | DES initialization vector length in bytes.
|
| #define | IX_CRYPTO_ACC_3DES_KEY_192 |
| | 3DES key length in bytes
|
| #define | IX_CRYPTO_ACC_AES_KEY_128 |
| | AES-128 key length in bytes.
|
| #define | IX_CRYPTO_ACC_AES_KEY_192 |
| | AES-192 key length in bytes.
|
| #define | IX_CRYPTO_ACC_AES_KEY_256 |
| | AES-256 key length in bytes.
|
| #define | IX_CRYPTO_ACC_AES_BLOCK_128 |
| | AES cipher block length in bytes.
|
| #define | IX_CRYPTO_ACC_AES_CBC_IV_128 |
| | AES initialization vector length in bytes for CBC mode.
|
| #define | IX_CRYPTO_ACC_AES_CTR_IV_128 |
| | AES initialization vector length in bytes for CTR mode.
|
| #define | IX_CRYPTO_ACC_CCM_AAD_LEN_384 |
| | 48 Bytes of additional authenticated data for CBC-MAC computation
|
| #define | IX_CRYPTO_ACC_AES_CCM_IV_512 |
| | CCM Initialization vector has 2 components to it.
|
| #define | IX_CRYPTO_ACC_ARC4_KEY_128 |
| | Key length for ARC4 algorithms.
|
| #define | IX_CRYPTO_ACC_ARC4_BLOCK_8 |
| | ARC4 algorithm block size.
|
| #define | IX_CRYPTO_ACC_SHA1_KEY_160 |
| | SHA1 key length in bytes.
|
| #define | IX_CRYPTO_ACC_SHA1_DIGEST_160 |
| | SHA1 message digest length in bytes.
|
| #define | IX_CRYPTO_ACC_MD5_KEY_128 |
| | MD5 key length in bytes.
|
| #define | IX_CRYPTO_ACC_MD5_DIGEST_128 |
| | MD5 message digest length in bytes.
|
| #define | IX_CRYPTO_ACC_CCM_DIGEST_64 |
| | CCM digest length in bytes.
|
| #define | IX_CRYPTO_ACC_WEP_CRC_DIGEST_32 |
| | Digest length of WEP ICV in bytes.
|
Typedefs |
| typedef void(* | IxCryptoAccRegisterCompleteCallback )(UINT32 cryptoCtxId, IX_MBUF *pMbuf, IxCryptoAccStatus status) |
| | Cryptographic Context registration complete callback notification.
|
| typedef void(* | IxCryptoAccHashKeyGenCompleteCallback )(UINT32 hashKeyId, IX_MBUF *pMbufHashKey, IxCryptoAccStatus status) |
| | Hash key generation complete callback notification.
|
| typedef void(* | IxCryptoAccPerformCompleteCallback )(UINT32 cryptoCtxId, IX_MBUF *pSrcMbuf, IX_MBUF *pDestMbuf, IxCryptoAccStatus status) |
| | Harware accelerator service request complete callback notification.
|
Enumerations |
| enum | IxCryptoAccCfg {
IX_CRYPTO_ACC_CFG_WEP_XSCALE_ACC_EN,
IX_CRYPTO_ACC_CFG_CRYPTO_NPE_ACC_EN,
IX_CRYPTO_ACC_CFG_WEP_NPE_ACC_EN,
IX_CRYPTO_ACC_CFG_CRYPTO_WEP_NPE_ACC_EN,
IX_CRYPTO_ACC_CFG_TYPE
} |
| | Possible configuration definitions. More...
|
| enum | IxCryptoAccOperation {
IX_CRYPTO_ACC_OP_ENCRYPT,
IX_CRYPTO_ACC_OP_DECRYPT,
IX_CRYPTO_ACC_OP_AUTH_CALC,
IX_CRYPTO_ACC_OP_AUTH_CHECK,
IX_CRYPTO_ACC_OP_ENCRYPT_AUTH,
IX_CRYPTO_ACC_OP_AUTH_DECRYPT,
IX_CRYPTO_ACC_OP_TYPE_OF_OPERATION
} |
| | Cryptographic Operation Definitions. More...
|
| enum | IxCryptoAccCipherAlgo {
IX_CRYPTO_ACC_CIPHER_NULL,
IX_CRYPTO_ACC_CIPHER_DES,
IX_CRYPTO_ACC_CIPHER_3DES,
IX_CRYPTO_ACC_CIPHER_AES,
IX_CRYPTO_ACC_CIPHER_ARC4,
IX_CRYPTO_ACC_CIPHER_ALGO_TYPE
} |
| | Cipher Algorithm Definitions. More...
|
| enum | IxCryptoAccCipherMode {
IX_CRYPTO_ACC_MODE_NULL,
IX_CRYPTO_ACC_MODE_ECB,
IX_CRYPTO_ACC_MODE_CBC,
IX_CRYPTO_ACC_MODE_CTR,
IX_CRYPTO_ACC_MODE_CCM,
IX_CRYPTO_ACC_MODE_TYPE
} |
| | Cipher Mode Definitions. More...
|
| enum | IxCryptoAccAuthAlgo {
IX_CRYPTO_ACC_AUTH_NULL,
IX_CRYPTO_ACC_AUTH_SHA1,
IX_CRYPTO_ACC_AUTH_MD5,
IX_CRYPTO_ACC_AUTH_CBC_MAC,
IX_CRYPTO_ACC_AUTH_WEP_CRC,
IX_CRYPTO_ACC_AUTH_TYPE
} |
| | Authentication Algorithm Definitions. More...
|
| enum | IxCryptoAccStatus {
IX_CRYPTO_ACC_STATUS_SUCCESS,
IX_CRYPTO_ACC_STATUS_FAIL,
IX_CRYPTO_ACC_STATUS_WAIT,
IX_CRYPTO_ACC_STATUS_RETRY,
IX_CRYPTO_ACC_STATUS_QUEUE_FULL,
IX_CRYPTO_ACC_STATUS_OPERATION_NOT_SUPPORTED,
IX_CRYPTO_ACC_STATUS_CIPHER_ALGO_NOT_SUPPORTED,
IX_CRYPTO_ACC_STATUS_CIPHER_MODE_NOT_SUPPORTED,
IX_CRYPTO_ACC_STATUS_CIPHER_INVALID_KEY_LEN,
IX_CRYPTO_ACC_STATUS_CIPHER_INVALID_IV_LEN,
IX_CRYPTO_ACC_STATUS_CIPHER_INVALID_BLOCK_LEN,
IX_CRYPTO_ACC_STATUS_AUTH_ALGO_NOT_SUPPORTED,
IX_CRYPTO_ACC_STATUS_AUTH_INVALID_DIGEST_LEN,
IX_CRYPTO_ACC_STATUS_AUTH_INVALID_KEY_LEN,
IX_CRYPTO_ACC_STATUS_AUTH_FAIL,
IX_CRYPTO_ACC_STATUS_CRYPTO_CTX_NOT_VALID,
IX_CRYPTO_ACC_STATUS_EXCEED_MAX_TUNNELS,
IX_CRYPTO_ACC_STATUS_AUTH_INVALID_AAD_LEN
} |
| | Status Definitions. More...
|
Functions |
| PUBLIC IxCryptoAccStatus | ixCryptoAccConfig (IxCryptoAccCfg cryptoCfg) |
| | Selects which interfaces need to be initialized when crypto-access init is called.
|
| PUBLIC IxCryptoAccStatus | ixCryptoAccInit (void) |
| | Initialise the Security Access component.
|
| PUBLIC IxCryptoAccStatus | ixCryptoAccCtxRegister (IxCryptoAccCtx *pAccCtx, IX_MBUF *pMbufPrimaryChainVar, IX_MBUF *pMbufSecondaryChainVar, IxCryptoAccRegisterCompleteCallback registerCallbackFn, IxCryptoAccPerformCompleteCallback performCallbackFn, UINT32 *pCryptoCtxId) |
| | Crypto context registration. Cryptographic Context ID (cryptoCtxId) for the registered crypto context obtained from this registration request will be used in perform service requests.
|
| PUBLIC IxCryptoAccStatus | ixCryptoAccCtxUnregister (UINT32 cryptoCtxId) |
| | Unregister the crypto context from Cryptographic Context Database.
|
| PUBLIC IxCryptoAccStatus | ixCryptoAccAuthCryptPerform (UINT32 cryptoCtxId, IX_MBUF *pSrcMbuf, IX_MBUF *pDestMbuf, UINT16 authStartOffset, UINT16 authDataLen, UINT16 cryptStartOffset, UINT16 cryptDataLen, UINT16 icvOffset, UINT8 *pIV) |
| | Perform Authentication and Decryption/Encryption functionalities.
|
| PUBLIC IxCryptoAccStatus | ixCryptoAccNpeWepPerform (UINT32 cryptoCtxId, IX_MBUF *pSrcMbuf, IX_MBUF *pDestMbuf, UINT16 startOffset, UINT16 dataLen, UINT16 icvOffset, UINT8 *pKey) |
| | Function to invoke ARC4 and WEP ICV computations on NPE.
|
| PUBLIC IxCryptoAccStatus | ixCryptoAccXScaleWepPerform (UINT32 cryptoCtxId, IX_MBUF *pSrcMbuf, IX_MBUF *pDestMbuf, UINT16 startOffset, UINT16 dataLen, UINT16 icvOffset, UINT8 *pKey) |
| | Function to support ARC4 and WEP ICV computations on XScale.
|
| PUBLIC IxCryptoAccStatus | ixCryptoAccCtxCipherKeyUpdate (UINT32 cryptoCtxId, UINT8 *pCipherKey) |
| | Change keys for the specified registered context.
|
| PUBLIC void | ixCryptoAccShow (void) |
| | API for printing statistics and status.
|
| PUBLIC void | ixCryptoAccShowWithId (UINT32 cryptoCtxId) |
| | API for printing statistic and status.
|
| PUBLIC IxCryptoAccStatus | ixCryptoAccCryptoServiceStop (void) |
| | Function to stop the crypto services.
|
| PUBLIC IxCryptoAccStatus | ixCryptoAccHashKeyGenerate (IxCryptoAccAuthAlgo hashAlgo, IX_MBUF *pMbufHashKey, IxCryptoAccHashKeyGenCompleteCallback hashKeyCallbackFn, UINT16 hashKeyStartOffset, UINT16 hashKeyLen, UINT16 hashKeyDestOffset, UINT32 *pHashKeyId) |
| | This function is used to generate authentication key needed in HMAC authentication if the authentication key is greater than 64 bytes. New authentication key of L bytes size will be generated in this function (L = 20 for SHA1, L = 16 for MD5). Please refer to RFC2104 for more details on the key size. The authentication key is padded (extended) so that its length (in bits) is congruent to 448, modulo 512 (please refer to RFC1321). This function has been extended to become a generic hashing function other than above mentioned functionality. It could be used to hash any key size or data that are greater than 0 and less than 65399 bytes.
|