📄 sblock_test.c
字号:
Disp("DES");
DispOperMode(eDesOperMode);
Disp("_CPU_ENC Failed..\n");
}
}
else
{
if(uRet == false)
{
printf("DES");
DispOperMode(eDesOperMode);
printf("_CPU_ENC Failed..\n");
g_sblock_err =1;
UART_Getc();
}
}
/////////////////////////////////
// Decryption
SBLK_Init(DES, eDesOperMode, DEC);
for (i=0; i<8; i++)
{
SBLK_PutDataToInReg(OUTPUT_BUF+i*4*2, 2, LASTBYTE_1ST);
SBLK_StartByManual();
while(!SBLK_IsOutputReady());
SBLK_GetDataFromOutReg(INPUT_BUF+i*4*2, 2);
}
Copy((u32)uDesPlainText, GOLDEN_BUF, 16);
uRet = Compare(INPUT_BUF, GOLDEN_BUF, 16);
if(eTest == eTest_Manual)
{
if (uRet)
{
Disp("DES_");
DispOperMode(eDesOperMode);
Disp("_CPU_DEC Success..\n");
}
else
{
Disp("DES");
DispOperMode(eDesOperMode);
Disp("_CPU_DEC Failed..\n");
}
}
else
{
if(uRet == false)
{
printf("DES");
DispOperMode(eDesOperMode);
printf("_CPU_DEC Failed..\n");
g_sblock_err =1;
UART_Getc();
}
}
}
void SBLK_PutDataToRxFifo_Temp(u32 uSrcAddr, u32 uSize)
{
u32 i, uRemainedSize, uInputSize;
u32 *pSrcAddr;
pSrcAddr = (u32 *)uSrcAddr;
uRemainedSize = uSize;
SBLK_GetAvailableRxFifoSize(&uInputSize);
// printf("uInputSize = 0x%x\n", uInputSize);
uInputSize = uRemainedSize;
// printf("uInputSize = 0x%x\n", uInputSize);
// Delay(100000);
for(i=0; i<uInputSize; i++)
{
//Outp32(rFIFO_RX_WR_BUF, *pSrcAddr++);
Outp32(0x7D400040, *pSrcAddr++);
}
/*
while(uRemainedSize > 0)
{
SBLK_GetAvailableRxFifoSize(&uInputSize);
printf("uInputSize = 0x%x\n", uInputSize);
if (uInputSize >= uRemainedSize)
{
uInputSize = uRemainedSize;
uRemainedSize = 0;
}
else
{
uRemainedSize -= uInputSize;
}
for(i=0; i<uInputSize; i++)
{
//Outp32(rFIFO_RX_WR_BUF, *pSrcAddr++);
Outp32(0x7D400040, *pSrcAddr++);
}
}
*/
}
//////////
// Function Name : Test_DES_FIFO
// Function Description : DES FIFO mode Test
// Input : None
// Output : None
// Version : v0.1
//////////
// Function Name : Test_DES_FIFO
// Function Description : DES FIFO mode Test
// Input : None
// Output : None
// Version : v0.1
void Test_DES_FIFO(eFunction_Test eTest, oFunctionT_AutoVar oAutoVar)
{
u32 uRet, usel;
//g_sblock_err=0;
if(eTest == eTest_Manual)
{
printf("[SBLOCK - DES FIFO Mode Test]\n");
printf("Select DES Operating Mode : 1)ECB 2)CBC \n");
usel=GetIntNum();
if (usel == 1) eDesOperMode = ECB;
else if (usel == 2) eDesOperMode = CBC;
printf("Your selection is ");
DispOperMode(eDesOperMode);
printf("\n");
}
else
{
eDesOperMode = (OPER_MODE)oAutoVar.Test_Parameter[0];
}
//////////////////////////////////
// Encryption
SBLK_Init(DES, eDesOperMode, ENC);
SBLK_SetFifo(16, 2, 16, 2, LASTBYTE_1ST);
SBLK_StartFifo();
SBLK_PutDataToRxFifo((u32)uDesPlainText, 16);
while(!SBLK_IsFifoTransDone());
SBLK_GetDataFromTxFifo(OUTPUT_BUF, 16);
Copy((u32)uDesCipherText[eDesOperMode], GOLDEN_BUF, 16);
uRet = Compare(OUTPUT_BUF, GOLDEN_BUF, 16);
if(eTest == eTest_Manual)
{
if (uRet)
{
Disp("DES_");
DispOperMode(eDesOperMode);
Disp("_FIFO_ENC Success..\n");
}
else
{
Disp("DES");
DispOperMode(eDesOperMode);
Disp("_FIFO_ENC Failed..\n");
}
}
else
{
if(uRet == false)
{
printf("DES");
DispOperMode(eDesOperMode);
printf("_FIFO_ENC Failed..\n");
g_sblock_err =1;
UART_Getc();
}
}
////////////////////////////////
// Decryption
SBLK_Init(DES, eDesOperMode, DEC);
SBLK_SetFifo(16, 2, 16, 2, LASTBYTE_1ST);
SBLK_StartFifo();
SBLK_PutDataToRxFifo(OUTPUT_BUF, 16);
while(!SBLK_IsFifoTransDone());
SBLK_GetDataFromTxFifo(INPUT_BUF, 16);
Copy((u32)uDesPlainText, GOLDEN_BUF, 16);
uRet = Compare(INPUT_BUF, GOLDEN_BUF, 16);
if(eTest == eTest_Manual)
{
if (uRet)
{
Disp("DES_");
DispOperMode(eDesOperMode);
Disp("_FIFO_DEC Success..\n");
}
else
{
Disp("DES");
DispOperMode(eDesOperMode);
Disp("_FIFO_DEC Failed..\n");
}
}
else
{
if(uRet == false)
{
printf("DES");
DispOperMode(eDesOperMode);
printf("_FIFO_DEC Failed..\n");
g_sblock_err =1;
UART_Getc();
}
}
}
//////////
// Function Name : Test_DES_DMA
// Function Description : DES DMA mode Test
// Input : None
// Output : None
// Version : v0.1
void Test_DES_DMA(eFunction_Test eTest, oFunctionT_AutoVar oAutoVar)
{
u32 uRet, usel;
//g_sblock_err=0;
if(eTest == eTest_Manual)
{
printf("[SBLOCK - DES FIFO Mode Test]\n");
printf("Select DES Operating Mode : 1)ECB 2)CBC \n");
usel=GetIntNum();
if (usel == 1) eDesOperMode = ECB;
else if (usel == 2) eDesOperMode = CBC;
printf("Your selection is ");
DispOperMode(eDesOperMode);
printf("\n");
}
else
{
eDesOperMode = (OPER_MODE)oAutoVar.Test_Parameter[0];
}
INTC_SetVectAddr(NUM_SDMA1, Isr_SDMA1); //Rx Operation
INTC_Enable(NUM_SDMA1);
//////////////////////////////
// Encryption
SBLK_Init(DES, eDesOperMode, ENC);
SBLK_SetFifo(16, 2, 16, 2, LASTBYTE_1ST);
SBLK_SetSDMA(INPUT_BUF, 16, OUTPUT_BUF, 16);
Copy((u32)uDesPlainText, INPUT_BUF, 16);
g_SDma1Done = 0;
SBLK_StartFifo();
SBLK_StartSDMA();
while(!g_SDma1Done);
Copy((u32)uDesCipherText[eDesOperMode], GOLDEN_BUF, 16);
uRet = Compare(OUTPUT_BUF, GOLDEN_BUF, 16);
if(eTest == eTest_Manual)
{
if (uRet)
{
Disp("DES_");
DispOperMode(eDesOperMode);
Disp("_DMA_ENC Success..\n");
}
else
{
Disp("DES");
DispOperMode(eDesOperMode);
Disp("_DMA_ENC Failed..\n");
}
}
else
{
if(uRet == false)
{
printf("DES");
DispOperMode(eDesOperMode);
printf("_DMA_ENC Failed..\n");
g_sblock_err =1;
UART_Getc();
}
}
////////////////////////////////
// Decryption
SBLK_Init(DES, eDesOperMode, DEC);
SBLK_SetFifo(16, 2, 16, 2, LASTBYTE_1ST);
SBLK_SetSDMA(OUTPUT_BUF, 16, INPUT_BUF, 16);
g_SDma1Done = 0;
SBLK_StartFifo();
SBLK_StartSDMA();
while(!g_SDma1Done);
Copy((u32)uDesPlainText, GOLDEN_BUF, 16);
uRet = Compare(INPUT_BUF, GOLDEN_BUF, 16);
if(eTest == eTest_Manual)
{
if (uRet)
{
Disp("DES_");
DispOperMode(eDesOperMode);
Disp("_DMA_DEC Success..\n");
}
else
{
Disp("DES");
DispOperMode(eDesOperMode);
Disp("_DMA_DEC Failed..\n");
}
}
else
{
if(uRet == false)
{
printf("DES");
DispOperMode(eDesOperMode);
printf("_DMA_DEC Failed..\n");
g_sblock_err =1;
UART_Getc();
}
}
}
//////////
// Function Name : Test_HASH_CPU
// Function Description : HASH CPU mode Test
// Input : None
// Output : None
// Version : v0.1
void Test_HASH_CPU(eFunction_Test eTest, oFunctionT_AutoVar oAutoVar)
{
u32 uRet, usel;
//g_sblock_err=0;
if(eTest == eTest_Manual)
{
printf("[SBLOCK - HASH CPU Mode Test]\n");
printf("Select HASH Operating Mode : 1)HMAC 2)SHA1 3)PRNG \n");
usel=GetIntNum();
if (usel == 1) eHashOperMode = HMAC;
else if (usel == 2) eHashOperMode = SHA1;
else if (usel == 3) eHashOperMode = PRNG;
printf("Your selection is ");
DispOperMode(eHashOperMode);
printf("\n");
}
else
{
eHashOperMode = (OPER_MODE)oAutoVar.Test_Parameter[0];
}
SBLK_Init(HASH, eHashOperMode, ENC);
if (eHashOperMode == HMAC)
SBLK_PutDataToInReg((u32)uHmacPlainText19, 19, LASTBYTE_1ST);
else if (eHashOperMode == SHA1)
SBLK_PutDataToInReg((u32)uSha1PlainText16, 16, LASTBYTE_4TH);
while(!SBLK_IsOutputReady());
if (eHashOperMode == PRNG)
{
SBLK_GetDataFromOutReg(OUTPUT_BUF, 10);
if(eTest == eTest_Manual)
{
Dump32(OUTPUT_BUF, 10);
}
return;
}
SBLK_GetDataFromOutReg(OUTPUT_BUF, 5);
if (eHashOperMode == HMAC)
Copy((u32)uHmacCiperText19, GOLDEN_BUF, 5);
else if (eHashOperMode == SHA1)
Copy((u32)uSha1CipherText16, GOLDEN_BUF, 5);
uRet = Compare(OUTPUT_BUF, GOLDEN_BUF, 5);
if(eTest == eTest_Manual)
{
if (uRet)
{
Disp("HASH_");
DispOperMode(eHashOperMode);
if (eHashOperMode == HMAC)
Disp("_CPU 19 Success..\n");
else if (eHashOperMode == SHA1)
Disp("_CPU 16 Success..\n");
}
else
{
Disp("HASH_");
DispOperMode(eHashOperMode);
if (eHashOperMode == HMAC)
Disp("_CPU 19 Failed..\n");
else if (eHashOperMode == SHA1)
Disp("_CPU 16 Failed..\n");
}
}
else
{
if(uRet == false)
{
Disp("HASH_");
DispOperMode(eHashOperMode);
if (eHashOperMode == HMAC)
Disp("_CPU 19 Failed..\n");
else if (eHashOperMode == SHA1)
Disp("_CPU 16 Failed..\n");
g_sblock_err =1;
UART_Getc();
}
}
SBLK_Init(HASH, eHashOperMode, ENC);
if (eHashOperMode == HMAC)
SBLK_PutDataToInReg((u32)uHmacPlainText47, 47, LASTBYTE_4TH);
else if (eHashOperMode == SHA1)
SBLK_PutDataToInReg((u32)uSha1PlainText47, 47, LASTBYTE_4TH);
while(!SBLK_IsOutputReady());
SBLK_GetDataFromOutReg(OUTPUT_BUF, 5);
if (eHashOperMode == HMAC)
Copy((u32)uHmacCiperText47, GOLDEN_BUF, 5);
else if (eHashOperMode == SHA1)
Copy((u32)uSha1CipherText47, GOLDEN_BUF, 5);
uRet = Compare(OUTPUT_BUF, GOLDEN_BUF, 5);
if(eTest == eTest_Manual)
{
if (uRet)
{
Disp("HASH_");
DispOperMode(eHashOperMode);
Disp("_CPU 47 Success..\n");
}
else
{
Disp("HASH_");
DispOperMode(eHashOperMode);
Disp("_CPU 47 Failed..\n");
}
}
else
{
if(uRet == false)
{
Disp("HASH_");
DispOperMode(eHashOperMode);
Disp("_CPU 47 Failed..\n");
g_sblock_err =1;
UART_Getc();
}
}
}
//////////
// Function Name : Test_HASH_FIFO
// Function Description : HASH FIFO mode Test
// Input : None
// Output : None
// Version : v0.1
void Test_HASH_FIFO(eFunction_Test eTest, oFunctionT_AutoVar oAutoVar)
{
u32 uRet, usel;
//g_sblock_err=0;
if(eTest == eTest_Manual)
{
printf("[SBLOCK - HASH FIFO Mode Test]\n");
printf("Select HASH Operating Mode : 1)HMAC 2)SHA1 3)PRNG \n");
usel=GetIntNum();
if (usel == 1) eHashOperMode = HMAC;
else if (usel == 2) eHashOperMode = SHA1;
else if (usel == 3) eHashOperMode = PRNG;
printf("Your selection is ");
DispOperMode(eHashOperMode);
printf("\n");
}
else
{
eHashOperMode = (OPER_MODE)oAutoVar.Test_Parameter[0];
}
SBLK_Init(HASH, eHashOperMode, ENC);
if (eHashOperMode == HMAC)
{
SBLK_SetFifo(19, 16, 5, 16, LASTBYTE_1ST);
SBLK_StartFifo();
SBLK_PutDataToRxFifo((u32)uHmacPlainText19, 19);
}
else if (eHashOperMode == SHA1)
{
SBLK_SetFifo(16, 16, 5, 16, LASTBYTE_4TH);
SBLK_StartFifo();
SBLK_PutDataToRxFifo((u32)uSha1PlainText16, 16);
}
else if (eHashOperMode == PRNG)
{
SBLK_SetFifo(10, 10, 10, 10, LASTBYTE_1ST);
SBLK_StartFifo();
}
while(!SBLK_IsFifoTransDone());
if (eHashOperMode == PRNG)
{
SBLK_GetDataFromTxFifo(OUTPUT_BUF, 10);
SBLK_GetDataFromOutReg(GOLDEN_BUF, 10);
uRet = Compare(OUTPUT_BUF, GOLDEN_BUF, 10);
if(eTest == eTest_Manual)
{
if (uRet)
{
Disp("HASH_PRNG_FIFO Success..\n");
}
else
{
Disp("HASH_PRNG_FIFO Failed..\n");
}
}
else
{
if(uRet == false)
{
Disp("HASH_PRNG_FIFO Failed..\n");
g_sblock_err =1;
UART_Getc();
}
}
return;
}
SBLK_GetDataFromTxFifo(OUTPUT_BUF, 5);
if (eHashOperMode == HMAC)
Copy((u32)uHmacCiperText19, GOLDEN_BUF, 5);
else if (eHashOperMode == SHA1)
Copy((u32)uSha1CipherText16, GOLDEN_BUF, 5);
uRet = Compare(OUTPUT_BUF, GOLDEN_BUF, 5);
if(eTest == eTest_Manual)
{
if (uRet)
{
Disp("HASH_");
DispOperMode(eHashOperMode);
if (eHashOperMode == HMAC)
Disp("_FIFO 19 Success..\n");
else if (eHashOperMode == SHA1)
Disp("_FIFO 16 Success..\n");
}
else
{
Disp("HASH_");
DispOperMode(eHashOperMode);
if (eHashOperMode == HMAC)
Disp("_FIFO 19 Failed..\n");
else if (eHashOperMode == SHA1)
Disp("_FIFO 16 Failed..\n");
}
}
else
{
if(uRet == false)
{
Disp("HASH_");
DispOperMode(eHashOperMode);
if (eHashOperMode == HMAC)
Disp("_FIFO 19 Failed..\n");
else if (eHashOperMode == SHA1)
Disp("_FIFO 16 Failed..\n");
g_sblock_err =1;
UART_Getc();
}
}
SBLK_Init(HASH, eHashOperMode, ENC);
if (eHashOperMode == HMAC)
{
SBLK_SetFifo(47, 16, 5, 16, LASTBYTE_4TH);
SBLK_StartFifo();
SBLK_PutDataToRxFifo((u32)uHmacPlainText47, 47);
}
else if (eHashOperMode == SHA1)
{
SBLK_SetFifo(47, 16, 5, 16, LASTBYTE_4TH);
SBLK_StartFifo();
SBLK_PutDataToRxFifo((u32)uSha1PlainText47, 47);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -