31static uint32_t g_AES_CTL[4];
32static uint32_t g_TDES_CTL[4];
49void PRNG_Open(uint32_t u32KeySize, uint32_t u32SeedReload, uint32_t u32Seed)
52 CRPT->PRNG_SEED = u32Seed;
78 for (i = 0; i < wcnt; i++)
79 u32RandKey[i] = *(uint32_t *)((uint32_t)&(
CRPT->PRNG_KEY0) + (i * 4));
107void AES_Open(uint32_t u32Channel, uint32_t u32EncDec,
108 uint32_t u32OpMode, uint32_t u32KeySize, uint32_t u32SwapType)
115 g_AES_CTL[u32Channel] =
CRPT->AES_CTL;
129 CRPT->AES_CTL = g_AES_CTL[u32Channel];
143void AES_SetKey(uint32_t u32Channel, uint32_t au32Keys[], uint32_t u32KeySize)
145 uint32_t i, wcnt, key_reg_addr;
147 key_reg_addr = (uint32_t)&
CRPT->AES0_KEY0 + (u32Channel * 0x3CUL);
148 wcnt = 4UL + u32KeySize*2UL;
150 for (i = 0U; i < wcnt; i++)
152 outpw(key_reg_addr, au32Keys[i]);
165 uint32_t i, key_reg_addr;
167 key_reg_addr = (uint32_t)&
CRPT->AES0_IV0 + (u32Channel * 0x3CUL);
169 for (i = 0U; i < 4U; i++)
171 outpw(key_reg_addr, au32IV[i]);
185 uint32_t u32DstAddr, uint32_t u32TransCnt)
189 reg_addr = (uint32_t)&
CRPT->AES0_SADDR + (u32Channel * 0x3CUL);
190 outpw(reg_addr, u32SrcAddr);
192 reg_addr = (uint32_t)&
CRPT->AES0_DADDR + (u32Channel * 0x3CUL);
193 outpw(reg_addr, u32DstAddr);
195 reg_addr = (uint32_t)&
CRPT->AES0_CNT + (u32Channel * 0x3CUL);
196 outpw(reg_addr, u32TransCnt);
222void TDES_Open(uint32_t u32Channel, uint32_t u32EncDec, int32_t Is3DES, int32_t Is3Key,
223 uint32_t u32OpMode, uint32_t u32SwapType)
250 CRPT->TDES_CTL = g_TDES_CTL[u32Channel];
261 uint32_t i, reg_addr;
263 reg_addr = (uint32_t)&
CRPT->TDES0_KEY1H + (0x40UL * u32Channel);
265 for (i = 0U; i < 3U; i++)
267 outpw(reg_addr, au32Keys[i][0]);
269 outpw(reg_addr, au32Keys[i][1]);
285 reg_addr = (uint32_t)&
CRPT->TDES0_IVH + (u32Channel * 0x40UL);
286 outpw(reg_addr, u32IVH);
288 reg_addr = (uint32_t)&
CRPT->TDES0_IVL + (u32Channel * 0x40UL);
289 outpw(reg_addr, u32IVL);
301 uint32_t u32DstAddr, uint32_t u32TransCnt)
305 reg_addr = (uint32_t)&
CRPT->TDES0_SADDR + (u32Channel * 0x40UL);
306 outpw(reg_addr, u32SrcAddr);
308 reg_addr = (uint32_t)&
CRPT->TDES0_DADDR + (u32Channel * 0x40UL);
309 outpw(reg_addr, u32DstAddr);
311 reg_addr = (uint32_t)&
CRPT->TDES0_CNT + (u32Channel * 0x40UL);
312 outpw(reg_addr, u32TransCnt);
328void SHA_Open(uint32_t u32OpMode, uint32_t u32SwapType)
356 CRPT->SHA_SADDR = u32SrcAddr;
357 CRPT->SHA_DMACNT = u32TransCnt;
377 for (i = 0; i < wcnt; i++)
378 u32Digest[i] = *(uint32_t *)((uint32_t)&(
CRPT->SHA_DGST0) + (i * 4));
NUC472/NUC442 peripheral access layer header file. This file contains all the peripheral register's d...
#define CRPT_PRNG_CTL_KEYSZ_Msk
#define CRPT_SHA_CTL_OPMODE_Pos
#define CRPT_AES_CTL_DMALAST_Pos
#define CRPT_TDES_CTL_ENCRPT_Pos
#define CRPT_PRNG_CTL_KEYSZ_Pos
#define CRPT_TDES_CTL_TMODE_Msk
#define CRPT_SHA_CTL_OUTSWAP_Pos
#define CRPT_AES_CTL_ENCRPT_Pos
#define CRPT_AES_CTL_START_Msk
#define CRPT_AES_CTL_OPMODE_Pos
#define CRPT_TDES_CTL_CHANNEL_Pos
#define CRPT_TDES_CTL_DMALAST_Pos
#define CRPT_TDES_CTL_BLKSWAP_Pos
#define CRPT_TDES_CTL_START_Msk
#define CRPT_TDES_CTL_3KEYS_Msk
#define CRPT_AES_CTL_OUTSWAP_Pos
#define CRPT_PRNG_CTL_SEEDRLD_Pos
#define CRPT_AES_CTL_CHANNEL_Pos
#define CRPT_SHA_CTL_START_Msk
#define CRPT_SHA_CTL_DMALAST_Pos
#define CRPT_PRNG_CTL_START_Msk
#define CRPT_SHA_CTL_OPMODE_Msk
#define CRPT_AES_CTL_KEYSZ_Pos
void TDES_Open(uint32_t u32Channel, uint32_t u32EncDec, int32_t Is3DES, int32_t Is3Key, uint32_t u32OpMode, uint32_t u32SwapType)
Open TDES encrypt/decrypt function.
void SHA_Open(uint32_t u32OpMode, uint32_t u32SwapType)
Open SHA encrypt function.
void TDES_SetDMATransfer(uint32_t u32Channel, uint32_t u32SrcAddr, uint32_t u32DstAddr, uint32_t u32TransCnt)
Set TDES DMA transfer configuration.
void AES_Open(uint32_t u32Channel, uint32_t u32EncDec, uint32_t u32OpMode, uint32_t u32KeySize, uint32_t u32SwapType)
Open AES encrypt/decrypt function.
void PRNG_Open(uint32_t u32KeySize, uint32_t u32SeedReload, uint32_t u32Seed)
Open PRNG function.
void SHA_Read(uint32_t u32Digest[])
Read the SHA digest.
void PRNG_Read(uint32_t u32RandKey[])
Read the PRNG key.
void AES_SetInitVect(uint32_t u32Channel, uint32_t au32IV[])
Set AES initial vectors.
void PRNG_Start(void)
Start to generate one PRNG key.
void AES_SetDMATransfer(uint32_t u32Channel, uint32_t u32SrcAddr, uint32_t u32DstAddr, uint32_t u32TransCnt)
Set AES DMA transfer configuration.
void TDES_SetKey(uint32_t u32Channel, uint32_t au32Keys[3][2])
Set TDES keys.
void TDES_Start(int32_t u32Channel, uint32_t u32DMAMode)
Start TDES encrypt/decrypt.
void AES_SetKey(uint32_t u32Channel, uint32_t au32Keys[], uint32_t u32KeySize)
Set AES keys.
void AES_Start(int32_t u32Channel, uint32_t u32DMAMode)
Start AES encrypt/decrypt.
void SHA_Start(uint32_t u32DMAMode)
Start SHA encrypt.
void SHA_SetDMATransfer(uint32_t u32SrcAddr, uint32_t u32TransCnt)
Set SHA DMA transfer.
void TDES_SetInitVect(uint32_t u32Channel, uint32_t u32IVH, uint32_t u32IVL)
Set TDES initial vectors.
#define outpw(port, value)
Set a 32-bit unsigned value to specified I/O port.