171 lines
5.9 KiB
C
171 lines
5.9 KiB
C
/*
|
|
******************************************************************************
|
|
* INTERPEAK SOURCE FILE
|
|
*
|
|
* Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: sec_dcl_ipfreescale.h,v $ $Revision: 1.4 $
|
|
* $Source: /home/interpeak/CVSRoot/ipfreescale/sec4/sec_dcl_ipfreescale.h,v $
|
|
* $Author: dhessing $
|
|
* $State: Exp $ $Locker: $
|
|
*
|
|
* INTERPEAK_COPYRIGHT_STRING
|
|
******************************************************************************
|
|
*/
|
|
|
|
/*
|
|
* Ipfreescale extensions to the Freescale Netcomm SEC/DCL library.
|
|
*/
|
|
|
|
#ifndef __SEC_DCL_IPFREESCALE_H
|
|
#define __SEC_DCL_IPFREESCALE_H
|
|
|
|
#include <sec_dcl.h>
|
|
|
|
|
|
|
|
typedef enum e_JobType
|
|
{
|
|
e_DCL_JOB_RANDNUM,
|
|
e_DCL_JOB_MD5_DIGEST,
|
|
e_DCL_JOB_SHA1_DIGEST,
|
|
e_DCL_JOB_MD5_HMAC,
|
|
e_DCL_JOB_SHA1_HMAC,
|
|
e_DCL_JOB_DES_CBC_ENCRYPT,
|
|
e_DCL_JOB_DES_CBC_DECRYPT,
|
|
e_DCL_JOB_DES_ECB_ENCRYPT,
|
|
e_DCL_JOB_DES_ECB_DECRYPT,
|
|
e_DCL_JOB_TDES_CBC_ENCRYPT,
|
|
e_DCL_JOB_TDES_CBC_DECRYPT,
|
|
e_DCL_JOB_TDES_ECB_ENCRYPT,
|
|
e_DCL_JOB_TDES_ECB_DECRYPT,
|
|
e_DCL_JOB_AES_CBC_ENCRYPT,
|
|
e_DCL_JOB_AES_CBC_DECRYPT,
|
|
e_DCL_JOB_AES_ECB_ENCRYPT,
|
|
e_DCL_JOB_AES_ECB_DECRYPT,
|
|
e_DCL_JOB_RC4_ENCRYPT,
|
|
e_DCL_JOB_MODEXP,
|
|
e_DCL_JOB_CCMP_ENCRYPT,
|
|
e_DCL_JOB_IPSEC,
|
|
e_DCL_JOB_CHKSUM_CRC,
|
|
e_DCL_JOB_MOVE_DATA,
|
|
e_DCL_JOB_AESCCM_ENCRYPT,
|
|
e_DCL_JOB_AESCCM_DECRYPT
|
|
}
|
|
e_JobType;
|
|
|
|
typedef enum e_JobDirection
|
|
{
|
|
e_DCL_JOB_ENC,
|
|
e_DCL_JOB_DEC
|
|
} e_JobDirection;
|
|
|
|
/**************************************************************************//**
|
|
@Description SEC4 Scatter Gather Table Entry
|
|
*//***************************************************************************/
|
|
typedef _Packed struct {
|
|
uint32_t reserved:28; /* Always 0 */
|
|
uint64_t address:36; /* Address to buffer */
|
|
uint8_t ext:1; /* Data is another SGT */
|
|
uint8_t final:1; /* This entry is last in this SGT */
|
|
uint32_t length:30; /* Length of valid data */
|
|
uint8_t reserved2; /* Always 0 */
|
|
uint8_t bpid; /* Buffer Pool ID */
|
|
uint8_t reserved3:3; /* Always 0 */
|
|
uint16_t offset:13; /* Offset to valid data */
|
|
} _PackedType t_SGTEntry;
|
|
|
|
/**************************************************************************//**
|
|
@Description Job-Descriptor Parameters
|
|
*//***************************************************************************/
|
|
typedef struct t_JobDescParam
|
|
{
|
|
t_Handle h_Desc;
|
|
uint32_t jobTypeId; /* Job type */
|
|
uint8_t *inData; /* Input data */
|
|
uint8_t *outData; /* Output data */
|
|
uint8_t *keyData; /* Encrypt,Decrypt or Auth key*/
|
|
uint8_t *inCtxData; /* Input context data, e.g. IV data */
|
|
uint8_t *outCtxData; /* Output context data, e.g. IV data */
|
|
uint8_t *modData;
|
|
uint8_t *inMICData;
|
|
uint8_t *outMICData;
|
|
uint8_t *AADData;
|
|
uint32_t inDataBytes; /* Number of bytes in inData */
|
|
uint32_t outDataBytes; /* Number of bytes in outData */
|
|
uint32_t keyDataBytes; /* Number of bytes in keyData */
|
|
uint32_t inCtxDataBytes; /* Number of bytes in inCtxData */
|
|
uint32_t outCtxDataBytes; /* Number of bytes in outCtxData */
|
|
uint32_t modDataBytes; /* Number of bytes in modData */
|
|
uint32_t MICDataBytes; /* Number of bytes in MICData */
|
|
uint32_t AADDataBytes; /* Number of bytes in AADData */
|
|
uint32_t options; /* Operation specific options bitmask */
|
|
}
|
|
t_JobDescParam;
|
|
|
|
/**************************************************************************//**
|
|
@Description Job-Descriptor Parameters
|
|
*//***************************************************************************/
|
|
typedef struct t_IpsecJobDescParam
|
|
{
|
|
t_Handle h_Desc;
|
|
e_JobType jobTypeId; /* Job type */
|
|
e_JobDirection jobDirection; /* Encrypt/Decrypt */
|
|
e_IpsecCryptoAlg cryptoAlg; /* Crypto algorithm */
|
|
e_IpsecAuthenAlg authAlg; /* Authentication algorithm */
|
|
uint8_t *inData; /* Input data (start of ESP pkt) */
|
|
uint8_t *outData; /* Output data (start of ESP pkt) */
|
|
uint8_t *cryptoKeyData; /* Crypto key data */
|
|
uint8_t *hashKeyData; /* Hash(authentication) key data */
|
|
uint8_t *hashInData; /* Input data where hash should be performed */
|
|
uint8_t *hashOutData; /* Output data where hash output is stored */
|
|
uint8_t *inCtxData; /* Input context data e.g. IV data */
|
|
uint8_t *outCtxData; /* Output context data */
|
|
uint32_t inDataBytes;
|
|
uint32_t outDataBytes;
|
|
uint32_t cryptoKeyDataBytes;
|
|
uint32_t hashKeyDataBytes;
|
|
uint32_t hashInDataBytes;
|
|
uint32_t hashOutDataBytes;
|
|
uint32_t inCtxDataBytes;
|
|
uint32_t outCtxDataBytes;
|
|
}
|
|
t_IpsecJobDescParam;
|
|
|
|
|
|
/**************************************************************************//**
|
|
@Function SEC_DCL_InitIpsecEncapDesc
|
|
|
|
@Description Creates an IPSEC-Encapsulation Descriptor.
|
|
|
|
@Param[in] h_SecDcl - SEC DCL object.
|
|
@Param[in] p_ShrDescParam - Shared-Descriptor parameters.
|
|
@Param[in] p_EncapParam - Encapsulation parameters.
|
|
|
|
@Return Shared-Descriptor object.
|
|
*//***************************************************************************/
|
|
t_Handle SEC_DCL_InitIpsecJobDesc(t_Handle h_SecDcl,
|
|
t_IpsecJobDescParam *param);
|
|
|
|
|
|
/****************************************************************************//**
|
|
@Function InitJobDesc
|
|
|
|
@Description Creates a Job-Descriptor for random number generation.
|
|
|
|
@Param[in] h_SecDcl - SEC DCL object.
|
|
@Param[in] p_JobDescParam - Job-Descriptor parameters.
|
|
|
|
@Return Job-Descriptor object.
|
|
*//***************************************************************************/
|
|
t_Handle SEC_DCL_InitJobDesc(t_Handle h_SecDcl,
|
|
t_JobDescParam *param);
|
|
|
|
|
|
|
|
|
|
|
|
void SEC_DCL_DebugPrintDescriptor(t_Desc* jobDescHandle);
|
|
|
|
|
|
|
|
#endif /* __SEC_DCL_IPFREESCALE_H */
|