URL
https://opencores.org/ocsvn/apbtoaes128/apbtoaes128/trunk
Subversion Repositories apbtoaes128
Compare Revisions
- This comparison shows the changes necessary to convert path
/apbtoaes128/trunk/pli
- from Rev 5 to Rev 9
- ↔ Reverse comparison
Rev 5 → Rev 9
/aes_init.h
110,6 → 110,25
c = 0; |
d = 0; |
|
v_monitor.value.integer=0; |
v_monitor_catch.value.integer=0; |
A=B=C=D=E=F=G=H=I=J=L=M=N=0; |
|
for(counter_monitor=0;counter_monitor < 16;counter_monitor++) |
{ |
INPUT_KEYR[counter_monitor] =0x00; |
OUTPUT_KEYR[counter_monitor]=0x00; |
|
INPUT_IVR[counter_monitor] =0x00; |
OUTPUT_IVR[counter_monitor] =0x00; |
|
INPUT_TEXT[counter_monitor]=0x00; |
OUTPUT_TEXT[counter_monitor]=0x00; |
} |
|
counter_monitor=0; |
cycle_counter =0; |
|
/* WRITE READ |
vector_address[0]= ADDR_AES_CR; |
vector_address[1]= ADDR_AES_SR; |
127,10 → 146,10
|
|
vector_address[0]= ADDR_AES_CR; |
vector_address[1]= ADDR_AES_KEYR0; |
vector_address[2]= ADDR_AES_KEYR1; |
vector_address[3]= ADDR_AES_KEYR2; |
vector_address[4]= ADDR_AES_KEYR3; |
vector_address[1]= ADDR_AES_KEYR3; |
vector_address[2]= ADDR_AES_KEYR2; |
vector_address[3]= ADDR_AES_KEYR1; |
vector_address[4]= ADDR_AES_KEYR0; |
vector_address[5]= ADDR_AES_IVR3; |
vector_address[6]= ADDR_AES_IVR2; |
vector_address[7]= ADDR_AES_IVR1; |
/env_aes.c
77,6 → 77,7
//#include <vpi_user.h> |
#include <iostream> |
#include <random> |
#include<string.h> |
|
|
s_vpi_value v_generate; |
84,6 → 85,11
s_vpi_value v_ecb; |
s_vpi_time t_ecb; |
|
s_vpi_value v_monitor; |
s_vpi_value v_monitor_catch; |
|
s_vpi_time t_monitor; |
|
s_vpi_value v_wr; |
s_vpi_time t_wr; |
|
94,12 → 100,32
s_vpi_value v_initial; |
s_vpi_time t_initial; |
|
|
//USED BY BFM ONLY |
unsigned long int a; |
unsigned long int b; |
unsigned long int c; |
unsigned long int d; |
|
|
//USED BY MONITOR ONLY |
unsigned long int A; |
unsigned long int B; |
unsigned long int C; |
unsigned long int D; |
|
|
unsigned long int E; |
unsigned long int F; |
unsigned long int G; |
unsigned long int H; |
|
unsigned long int I; |
|
unsigned long int J; |
unsigned long int L; |
unsigned long int M; |
unsigned long int N; |
|
int type_bfm; |
|
int STATE; |
106,7 → 132,10
int STATE_RESET; |
|
int counter; |
int counter_monitor; |
int cycle_counter; |
|
|
int flag; |
|
int reset_counter; |
217,22 → 246,36
|
|
/*MAX PACKETS GENERATION*/ |
#define MAX_ITERATIONS 17 |
#define MAX_ITERATIONS 5 |
|
/*MAX RESET GENERATION */ |
#define MAX_RESET_TIMES 4 |
|
/*THIS IS USED BY MONITOR TO CATCH INPUTS AND OUTPUTS*/ |
unsigned char INPUT_KEYR[16]; |
unsigned char OUTPUT_KEYR[16]; |
|
unsigned char INPUT_IVR[16]; |
unsigned char OUTPUT_IVR[16]; |
|
unsigned char INPUT_TEXT[16]; |
unsigned char OUTPUT_TEXT[16]; |
|
|
/*THIS INCLUDE IS USED TO GENERATE DATA DO BE INSERTED ON DUT*/ |
unsigned char TEXT_FIPS_NOT_DERIVATED[] = {0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xAA,0xBB,0xCC,0xDD,0xEE,0xFF}; |
unsigned char KEY_FIPS_NOT_DERIVATED[] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F}; |
unsigned char TEXT_FIPS_NOT_DERIVATED[] = {0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xAA,0xBB,0xCC,0xDD,0xEE,0xFF}; |
unsigned char KEY_FIPS_NOT_DERIVATED[] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F}; |
|
unsigned char TEXT_FIPS_DERIVATED[] = {0x69,0xC4,0xE0,0xD8,0x6A,0x7B,0x04,0x30,0xD8,0xCD,0xB7,0x80,0x70,0xB4,0xC5,0x5A}; |
unsigned char KEY_FIPS_DERIVATED[] = {0x13,0x11,0x1D,0x7F,0xE3,0x94,0x4A,0x17,0xF3,0x07,0xA7,0x8B,0x4D,0x2B,0x30,0xC5}; |
unsigned char TEXT_FIPS_DERIVATED[] = {0x69,0xC4,0xE0,0xD8,0x6A,0x7B,0x04,0x30,0xD8,0xCD,0xB7,0x80,0x70,0xB4,0xC5,0x5A}; |
unsigned char KEY_FIPS_DERIVATED[] = {0x13,0x11,0x1D,0x7F,0xE3,0x94,0x4A,0x17,0xF3,0x07,0xA7,0x8B,0x4D,0x2B,0x30,0xC5}; |
|
|
unsigned char KEY_FIPS_CBC_NOT_DERIVATED[] = {0x2B,0x7E,0x15,0x16,0x28,0xAE,0xD2,0xA6,0xAB,0xF7,0x15,0x88,0x09,0xCF,0x4F,0x3C}; |
unsigned char IV_FIPS_CBC_NOT_DERIVATED[] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F}; |
|
|
unsigned char TEXT_FIPS_CBC_NOT_DERIVATED[] = {0x6B,0xC1,0xBE,0xE2,0x2E,0x40,0x9F,0x96,0xE9,0x3D,0x7E,0x11,0x73,0x93,0x17,0x2A}; |
unsigned char KEY_FIPS_CBC_DERIVATED[] = {0xD0,0x14,0xF9,0xA8,0xC9,0xEE,0x25,0x89,0xE1,0x3F,0x0C,0xC8,0xB6,0x63,0x0C,0xA6}; |
|
|
unsigned char TEXT_CBC_FIPS_DERIVATED[] = {0x76,0x49,0xAB,0xAC,0x81,0x19,0xB2,0x46,0xCE,0xE9,0x8E,0x9B,0x12,0xE9,0x19,0x7D}; |
243,7 → 286,10
unsigned char TEXT_FIPS_CTR_NOT_DERIVATED[] = {0x6B,0xC1,0xBE,0xE2,0x2E,0x40,0x9F,0x96,0xE9,0x3D,0x7E,0x11,0x73,0x93,0x17,0x2A}; |
|
unsigned char TEXT_CTR_FIPS_DERIVATED[] = {0x87,0x4D,0x61,0x91,0xB6,0x20,0xE3,0x26,0x1B,0xEF,0x68,0x64,0x99,0x0D,0xB6,0xCE}; |
unsigned char KEY_FIPS_CTR_DERIVATED[] = {0xD0,0x14,0xF9,0xA8,0xC9,0xEE,0x25,0x89,0xE1,0x3F,0x0C,0xC8,0xB6,0x63,0x0C,0xA6}; |
|
unsigned char TEXT_NULL[] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; |
|
/*BFM CONTROL FLOW*/ |
#include "aes_bfm_generate.h" |
|
/aes_monitor.h
78,6 → 78,7
vpiHandle PRESETn = vpi_handle_by_name("AES_GLADIC_tb.PRESETn", NULL); |
vpiHandle PWDATA = vpi_handle_by_name("AES_GLADIC_tb.PWDATA", NULL); |
vpiHandle PENABLE = vpi_handle_by_name("AES_GLADIC_tb.PENABLE", NULL); |
vpiHandle PSEL = vpi_handle_by_name("AES_GLADIC_tb.PSEL", NULL); |
vpiHandle PWRITE = vpi_handle_by_name("AES_GLADIC_tb.PWRITE", NULL); |
vpiHandle PADDR = vpi_handle_by_name("AES_GLADIC_tb.PADDR", NULL); |
vpiHandle PRDATA = vpi_handle_by_name("AES_GLADIC_tb.PRDATA", NULL); |
87,12 → 88,1520
vpiHandle int_err = vpi_handle_by_name("AES_GLADIC_tb.int_err", NULL); |
vpiHandle dma_req_wr = vpi_handle_by_name("AES_GLADIC_tb.dma_req_wr", NULL); |
vpiHandle dma_req_rd = vpi_handle_by_name("AES_GLADIC_tb.dma_req_rd", NULL); |
vpiHandle i = vpi_handle_by_name("AES_GLADIC_tb.i", NULL); |
|
if(type_bfm == 2) |
std::random_device rd; |
std::uniform_int_distribution<long int> data_in(0,4294967295); |
|
|
|
v_monitor.format=vpiIntVal; |
v_monitor_catch.format=vpiIntVal; |
|
|
vpi_get_value(PRESETn, &v_monitor); |
|
t_monitor.type = vpiScaledRealTime; |
t_monitor.real = 10; |
|
if(v_monitor.value.integer == 1) |
{ |
vpi_get_value(PENABLE, &v_monitor); |
|
if(v_monitor.value.integer == 1) |
{ |
|
vpi_get_value(PWRITE, &v_monitor); |
|
|
if(v_monitor.value.integer == 1) |
{ |
vpi_get_value(PADDR, &v_monitor); |
|
|
if(v_monitor.value.integer == ADDR_AES_KEYR3) |
{ |
vpi_get_value(PWDATA, &v_monitor_catch); |
//printf("%X\n",v_monitor_catch.value.integer); |
A=v_monitor_catch.value.integer; |
|
INPUT_KEYR[0]=A>>24; |
INPUT_KEYR[1]=A>>16; |
INPUT_KEYR[2]=A>>8; |
INPUT_KEYR[3]=A; |
} |
|
if(v_monitor.value.integer == ADDR_AES_KEYR2) |
{ |
vpi_get_value(PWDATA, &v_monitor_catch); |
//printf("%X\n",v_monitor_catch.value.integer); |
B=v_monitor_catch.value.integer; |
|
INPUT_KEYR[4]=B>>24; |
INPUT_KEYR[5]=B>>16; |
INPUT_KEYR[6]=B>>8; |
INPUT_KEYR[7]=B; |
} |
|
if(v_monitor.value.integer == ADDR_AES_KEYR1) |
{ |
vpi_get_value(PWDATA, &v_monitor_catch); |
//printf("%X\n",v_monitor_catch.value.integer); |
C=v_monitor_catch.value.integer; |
|
INPUT_KEYR[8]=C>>24; |
INPUT_KEYR[9]=C>>16; |
INPUT_KEYR[10]=C>>8; |
INPUT_KEYR[11]=C; |
} |
|
if(v_monitor.value.integer == ADDR_AES_KEYR0) |
{ |
vpi_get_value(PWDATA, &v_monitor_catch); |
//printf("%X\n",v_monitor_catch.value.integer); |
D=v_monitor_catch.value.integer; |
|
INPUT_KEYR[12]=D>>24; |
INPUT_KEYR[13]=D>>16; |
INPUT_KEYR[14]=D>>8; |
INPUT_KEYR[15]=D; |
|
//printf("%x%x%x%x\n",INPUT_KEYR[0],INPUT_KEYR[1],INPUT_KEYR[2],INPUT_KEYR[3]); |
|
//printf("%x%x%x%x\n",KEYR[0],KEYR[1],KEYR[2],KEYR[3]); |
} |
|
|
if(v_monitor.value.integer == ADDR_AES_IVR3) |
{ |
vpi_get_value(PWDATA, &v_monitor_catch); |
//printf("%X\n",v_monitor_catch.value.integer); |
E=v_monitor_catch.value.integer; |
|
INPUT_IVR[0]=E>>24; |
INPUT_IVR[1]=E>>16; |
INPUT_IVR[2]=E>>8; |
INPUT_IVR[3]=E; |
} |
|
if(v_monitor.value.integer == ADDR_AES_IVR2) |
{ |
vpi_get_value(PWDATA, &v_monitor_catch); |
//printf("%X\n",v_monitor_catch.value.integer); |
F=v_monitor_catch.value.integer; |
|
INPUT_IVR[4]=F>>24; |
INPUT_IVR[5]=F>>16; |
INPUT_IVR[6]=F>>8; |
INPUT_IVR[7]=F; |
} |
|
if(v_monitor.value.integer == ADDR_AES_IVR1) |
{ |
vpi_get_value(PWDATA, &v_monitor_catch); |
//printf("%X\n",v_monitor_catch.value.integer); |
G=v_monitor_catch.value.integer; |
|
INPUT_IVR[8]=G>>24; |
INPUT_IVR[9]=G>>16; |
INPUT_IVR[10]=G>>8; |
INPUT_IVR[11]=G; |
} |
|
if(v_monitor.value.integer == ADDR_AES_IVR0) |
{ |
vpi_get_value(PWDATA, &v_monitor_catch); |
//printf("%X\n",v_monitor_catch.value.integer); |
H=v_monitor_catch.value.integer; |
|
INPUT_IVR[12]=H>>24; |
INPUT_IVR[13]=H>>16; |
INPUT_IVR[14]=H>>8; |
INPUT_IVR[15]=H; |
|
} |
|
if(v_monitor.value.integer == ADDR_AES_CR) |
{ |
vpi_get_value(PWDATA, &v_monitor_catch); |
//printf("%X\n",v_monitor_catch.value.integer); |
I=v_monitor_catch.value.integer; |
} |
|
if(v_monitor.value.integer == ADDR_AES_DINR) |
{ |
vpi_get_value(PWDATA, &v_monitor_catch); |
//printf("%X\n",v_monitor_catch.value.integer); |
|
if(counter_monitor == 0) |
{ |
|
J=v_monitor_catch.value.integer; |
INPUT_TEXT[0]=J>>24; |
INPUT_TEXT[1]=J>>16; |
INPUT_TEXT[2]=J>>8; |
INPUT_TEXT[3]=J; |
|
counter_monitor++; |
|
|
}else if(counter_monitor == 1) |
{ |
|
L=v_monitor_catch.value.integer; |
INPUT_TEXT[4]=L>>24; |
INPUT_TEXT[5]=L>>16; |
INPUT_TEXT[6]=L>>8; |
INPUT_TEXT[7]=L; |
|
counter_monitor++; |
|
|
}else if(counter_monitor == 2) |
{ |
|
M=v_monitor_catch.value.integer; |
INPUT_TEXT[8]=M>>24; |
INPUT_TEXT[9]=M>>16; |
INPUT_TEXT[10]=M>>8; |
INPUT_TEXT[11]=M; |
|
counter_monitor++; |
|
|
}else if(counter_monitor == 3) |
{ |
|
N=v_monitor_catch.value.integer; |
INPUT_TEXT[12]=N>>24; |
INPUT_TEXT[13]=N>>16; |
INPUT_TEXT[14]=N>>8; |
INPUT_TEXT[15]=N; |
|
counter_monitor=0; |
} |
|
|
|
} |
|
}else if(v_monitor.value.integer == 0){ |
|
vpi_get_value(PADDR, &v_monitor); |
|
if(v_monitor.value.integer == ADDR_AES_KEYR3) |
{ |
vpi_get_value(PRDATA, &v_monitor_catch); |
//printf("%X\n",v_monitor_catch.value.integer); |
A=v_monitor_catch.value.integer; |
|
OUTPUT_KEYR[0]=A>>24; |
OUTPUT_KEYR[1]=A>>16; |
OUTPUT_KEYR[2]=A>>8; |
OUTPUT_KEYR[3]=A; |
|
counter_monitor++; |
|
//printf("%x%x%x%x\n",KEYR[0],KEYR[1],KEYR[2],KEYR[3]); |
} |
|
if(v_monitor.value.integer == ADDR_AES_KEYR2) |
{ |
vpi_get_value(PRDATA, &v_monitor_catch); |
//printf("%X\n",v_monitor_catch.value.integer); |
B=v_monitor_catch.value.integer; |
|
OUTPUT_KEYR[4]=B>>24; |
OUTPUT_KEYR[5]=B>>16; |
OUTPUT_KEYR[6]=B>>8; |
OUTPUT_KEYR[7]=B; |
|
counter_monitor++; |
|
} |
|
if(v_monitor.value.integer == ADDR_AES_KEYR1) |
{ |
vpi_get_value(PRDATA, &v_monitor_catch); |
//printf("%X\n",v_monitor_catch.value.integer); |
C=v_monitor_catch.value.integer; |
|
OUTPUT_KEYR[8]=C>>24; |
OUTPUT_KEYR[9]=C>>16; |
OUTPUT_KEYR[10]=C>>8; |
OUTPUT_KEYR[11]=C; |
|
counter_monitor++; |
|
|
} |
|
if(v_monitor.value.integer == ADDR_AES_KEYR0) |
{ |
vpi_get_value(PRDATA, &v_monitor_catch); |
//printf("%X\n",v_monitor_catch.value.integer); |
D=v_monitor_catch.value.integer; |
|
OUTPUT_KEYR[12]=D>>24; |
OUTPUT_KEYR[13]=D>>16; |
OUTPUT_KEYR[14]=D>>8; |
OUTPUT_KEYR[15]=D; |
|
counter_monitor++; |
|
//printf("%x%x%x%x\n",KEYR[0],KEYR[1],KEYR[2],KEYR[3]); |
} |
|
if(v_monitor.value.integer == ADDR_AES_IVR3) |
{ |
vpi_get_value(PRDATA, &v_monitor_catch); |
//printf("%X\n",v_monitor_catch.value.integer); |
E=v_monitor_catch.value.integer; |
|
OUTPUT_IVR[0]=E>>24; |
OUTPUT_IVR[1]=E>>16; |
OUTPUT_IVR[2]=E>>8; |
OUTPUT_IVR[3]=E; |
|
counter_monitor++; |
|
} |
|
if(v_monitor.value.integer == ADDR_AES_IVR2) |
{ |
vpi_get_value(PRDATA, &v_monitor_catch); |
//printf("%X\n",v_monitor_catch.value.integer); |
F=v_monitor_catch.value.integer; |
|
OUTPUT_IVR[4]=F>>24; |
OUTPUT_IVR[5]=F>>16; |
OUTPUT_IVR[6]=F>>8; |
OUTPUT_IVR[7]=F; |
|
counter_monitor++; |
|
|
} |
|
if(v_monitor.value.integer == ADDR_AES_IVR1) |
{ |
vpi_get_value(PRDATA, &v_monitor_catch); |
//printf("%X\n",v_monitor_catch.value.integer); |
G=v_monitor_catch.value.integer; |
|
OUTPUT_IVR[8]=G>>24; |
OUTPUT_IVR[9]=G>>16; |
OUTPUT_IVR[10]=G>>8; |
OUTPUT_IVR[11]=G; |
|
counter_monitor++; |
|
} |
|
if(v_monitor.value.integer == ADDR_AES_IVR0) |
{ |
vpi_get_value(PRDATA, &v_monitor_catch); |
//printf("%X\n",v_monitor_catch.value.integer); |
H=v_monitor_catch.value.integer; |
|
OUTPUT_IVR[12]=H>>24; |
OUTPUT_IVR[13]=H>>16; |
OUTPUT_IVR[14]=H>>8; |
OUTPUT_IVR[15]=H; |
|
counter_monitor++; |
} |
|
|
if(v_monitor.value.integer == ADDR_AES_DOUTR) |
{ |
|
vpi_get_value(PRDATA, &v_monitor_catch); |
//vpi_put_value(PRDATA, &v_monitor_catch, &t_monitor, vpiTransportDelay); |
//printf("%X\n",v_monitor_catch.value.integer); |
|
if(counter_monitor == 0) |
{ |
|
J=v_monitor_catch.value.integer; |
OUTPUT_TEXT[0]=J>>24; |
OUTPUT_TEXT[1]=J>>16; |
OUTPUT_TEXT[2]=J>>8; |
OUTPUT_TEXT[3]=J; |
|
counter_monitor++; |
|
|
}else if(counter_monitor == 1) |
{ |
L=v_monitor_catch.value.integer; |
OUTPUT_TEXT[4]=L>>24; |
OUTPUT_TEXT[5]=L>>16; |
OUTPUT_TEXT[6]=L>>8; |
OUTPUT_TEXT[7]=L; |
|
counter_monitor++; |
|
|
|
}else if(counter_monitor == 2) |
{ |
|
M=v_monitor_catch.value.integer; |
OUTPUT_TEXT[8]=M>>24; |
OUTPUT_TEXT[9]=M>>16; |
OUTPUT_TEXT[10]=M>>8; |
OUTPUT_TEXT[11]=M; |
|
counter_monitor++; |
|
|
}else if(counter_monitor == 3) |
{ |
|
N=v_monitor_catch.value.integer; |
OUTPUT_TEXT[12]=N>>24; |
OUTPUT_TEXT[13]=N>>16; |
OUTPUT_TEXT[14]=N>>8; |
OUTPUT_TEXT[15]=N; |
|
counter_monitor++; |
} |
|
|
} |
|
// vpi_mcd_printf(1,"%d\n",counter_monitor); |
|
|
if(counter_monitor == 12 && FIPS_ENABLE == FIPS) |
{ |
printf("Checking results\n\n"); |
counter_monitor = 0; |
|
if(I == 4094)// WR |
{ |
if(memcmp(TEXT_NULL,OUTPUT_TEXT,16) == 0) |
{ |
printf("WRITE READ: TEXT CR DISABLED PASSED.\n"); |
}else |
{ |
printf("WRITE READ: TEXT CR DISABLED FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_KEYR,INPUT_KEYR,16) == 0) |
{ |
printf("WRITE READ: KEYR WHEN CR DISABLED PASSED.\n"); |
}else |
{ |
printf("WRITE READ: KEYR WHEN CR DISABLED FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_IVR,INPUT_IVR,16) == 0) |
{ |
printf("WRITE READ: IVR WHEN CR DISABLED PASSED.\n"); |
}else |
{ |
printf("WRITE READ: IVR WHEN CR DISABLED FAIL.\n"); |
} |
|
}else if(I == 1)//ECB ENCRYPTION |
{ |
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_DERIVATED,16) == 0) |
{ |
printf("ECB ENCRYPTION: TEXT CYPHER PASSED.\n"); |
}else |
{ |
printf("ECB ENCRYPTION: TEXT CYPHER FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0) |
{ |
printf("ECB ENCRYPTION: KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("ECB ENCRYPTION: KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0) |
{ |
printf("ECB ENCRYPTION: IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("ECB ENCRYPTION: IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
}else if(I == 6145 ) //ECB ENCRYPTION DMA |
{ |
|
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_DERIVATED,16) == 0) |
{ |
printf("ECB ENCRYPTION DMA: TEXT CYPHER WHEN CR ENABLE PASSED.\n"); |
|
}else |
{ |
printf("ECB ENCRYPTION DMA: TEXT CYPHER WHEN CR ENABLE FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0) |
{ |
printf("ECB ENCRYPTION DMA: KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("ECB ENCRYPTION DMA: KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0) |
{ |
printf("ECB ENCRYPTION DMA: IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("ECB ENCRYPTION DMA: IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
}else if (I == 513) // ECB ENCRYPTION CCFIE |
{ |
|
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_DERIVATED,16) == 0) |
{ |
printf("ECB ENCRYPTION CCFIE: TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("ECB ENCRYPTION CCFIE: TEXT CYPHER FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0) |
{ |
printf("ECB ENCRYPTION CCFIE: KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("ECB ENCRYPTION CCFIE: KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0) |
{ |
printf("ECB ENCRYPTION CCFIE: IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("ECB ENCRYPTION CCFIE: IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
}else if(I == 25)// ECB DERIVATION DECRYPTION |
{ |
|
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_NOT_DERIVATED,16) == 0) |
{ |
printf("ECB DERIVATION DECRYPTION: TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("ECB DERIVATION DECRYPTION: TEXT CYPHER FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0) |
{ |
printf("ECB DERIVATION DECRYPTION: KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("ECB DERIVATION DECRYPTION: KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0) |
{ |
printf("ECB DERIVATION DECRYPTION: IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("ECB DERIVATION DECRYPTION: IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
}else if(I == 6169)// ECB DERIVATION DECRYPTION DMA |
{ |
|
|
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_NOT_DERIVATED,16) == 0) |
{ |
printf("ECB DERIVATION DECRYPTION DMA: TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("ECB DERIVATION DECRYPTION DMA: TEXT CYPHER FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0) |
{ |
printf("ECB DERIVATION DECRYPTION DMA: KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("ECB DERIVATION DECRYPTION DMA: KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0) |
{ |
printf("ECB DERIVATION DECRYPTION DMA: IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("ECB DERIVATION DECRYPTION DMA: IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
}else if(I == 537)// ECB DERIVATION DECRYPTION CCFIE |
{ |
|
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_NOT_DERIVATED,16) == 0) |
{ |
printf("ECB DERIVATION DECRYPTION DMA: TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("ECB DERIVATION DECRYPTION DMA: TEXT CYPHER FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0) |
{ |
printf("ECB DERIVATION DECRYPTION DMA: KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("ECB DERIVATION DECRYPTION DMA: KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0) |
{ |
printf("ECB DERIVATION DECRYPTION DMA: IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("ECB DERIVATION DECRYPTION DMA: IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
}else if(I == 17)//ECB DECRYPTION |
{ |
|
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_NOT_DERIVATED,16) == 0) |
{ |
printf("ECB DECRYPTION: TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("ECB DECRYPTION: TEXT CYPHER FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0) |
{ |
printf("ECB DECRYPTION: KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("ECB DECRYPTION: KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0) |
{ |
printf("ECB DECRYPTION: IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("ECB DECRYPTION: IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
}else if(I == 6161)//ECB DECRYPTION DMA |
{ |
|
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_NOT_DERIVATED,16) == 0) |
{ |
printf("ECB DECRYPTION DMA: TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("ECB DECRYPTION DMA: TEXT CYPHER FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0) |
{ |
printf("ECB DECRYPTION DMA: KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("ECB DECRYPTION DMA: KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0) |
{ |
printf("ECB DECRYPTION DMA: IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("ECB DECRYPTION DMA: IVR WHEN CR ENABLE FAIL.\n"); |
} |
}else if(I == 529)//ECB DECRYPTION CCFIE |
{ |
|
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_NOT_DERIVATED,16) == 0) |
{ |
printf("ECB DECRYPTION CCFIE: TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("ECB DECRYPTION CCFIE: TEXT CYPHER FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0) |
{ |
printf("ECB DECRYPTION CCFIE: KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("ECB DECRYPTION CCFIE: KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0) |
{ |
printf("ECB DECRYPTION CCFIE: IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("ECB DECRYPTION CCFIE: IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
}else if(I == 9) //ECB KEY GENARATION |
{ |
|
|
if(memcmp(OUTPUT_TEXT,TEXT_NULL,16) == 0) |
{ |
printf("ECB KEY GEN : TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("ECB KEY GEN : TEXT CYPHER FAIL.\n"); |
} |
|
|
if(memcmp(OUTPUT_KEYR,KEY_FIPS_DERIVATED,16) == 0) |
{ |
printf("ECB KEY GEN: KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("ECB KEY GEN: KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
if(memcmp(OUTPUT_IVR,KEY_FIPS_NOT_DERIVATED,16) == 0) |
{ |
printf("ECB KEY GEN: IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("ECB KEY GEN: IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
}else if(I == 6153)// ECB KEY GENARATION DMA |
{ |
|
if(memcmp(OUTPUT_TEXT,TEXT_NULL,16) == 0) |
{ |
printf("ECB KEY GEN DMA: TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("ECB KEY GEN DMA: TEXT CYPHER FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_KEYR,KEY_FIPS_DERIVATED,16) == 0) |
{ |
printf("ECB KEY GEN DMA: KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("ECB KEY GEN DMA: KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_IVR,KEY_FIPS_NOT_DERIVATED,16) == 0) |
{ |
printf("ECB KEY GEN DMA: IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("ECB KEY GEN DMA: IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
}else if(I == 521)// ECB KEY GENARATION CCFIE |
{ |
|
if(memcmp(OUTPUT_TEXT,TEXT_NULL,16) == 0) |
{ |
printf("ECB KEY GEN CCFIE: TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("ECB KEY GEN CCFIE: TEXT CYPHER FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_KEYR,KEY_FIPS_DERIVATED,16) == 0) |
{ |
printf("ECB KEY GEN CCFIE: KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("ECB KEY GEN CCFIE: KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_IVR,KEY_FIPS_NOT_DERIVATED,16) == 0) |
{ |
printf("ECB KEY GEN CCFIE: IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("ECB KEY GEN CCFIE: IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
}else if(I == 33) // ENCRYPTION CBC |
{ |
|
if(memcmp(OUTPUT_TEXT,TEXT_CBC_FIPS_DERIVATED,16) == 0) |
{ |
printf("CBC ENCRYPTION: TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("CBC ENCRYPTION: TEXT CYPHER FAIL.\n"); |
} |
|
|
|
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0) |
{ |
printf("CBC ENCRYPTION: KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CBC ENCRYPTION: KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0) |
{ |
printf("CBC ENCRYPTION: IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CBC ENCRYPTION: IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
}else if(I == 6177)//CBC ENCRYPTION DMA |
{ |
|
if(memcmp(OUTPUT_TEXT,TEXT_CBC_FIPS_DERIVATED,16) == 0) |
{ |
printf("CBC ENCRYPTION DMA: TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("CBC ENCRYPTION DMA: TEXT CYPHER FAIL.\n"); |
} |
|
|
|
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0) |
{ |
printf("CBC ENCRYPTION DMA: KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CBC ENCRYPTION DMA: KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0) |
{ |
printf("CBC ENCRYPTION DMA: IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CBC ENCRYPTION DMA: IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
}else if(I == 545)//CBC ENCRYPTION CCFIE |
{ |
|
if(memcmp(OUTPUT_TEXT,TEXT_CBC_FIPS_DERIVATED,16) == 0) |
{ |
printf("CBC ENCRYPTION CCFIE: TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("CBC ENCRYPTION CCFIE: TEXT CYPHER FAIL.\n"); |
} |
|
|
|
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0) |
{ |
printf("CBC ENCRYPTION CCFIE: KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CBC ENCRYPTION CCFIE: KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0) |
{ |
printf("CBC ENCRYPTION CCFIE: IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CBC ENCRYPTION CCFIE: IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
}else if(I == 49)// CBC DECRYPTION |
{ |
|
|
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_CBC_NOT_DERIVATED,16) == 0) |
{ |
printf("CBC DECRYPTION : TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("CBC DECRYPTION : TEXT CYPHER FAIL.\n"); |
|
} |
|
|
|
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0) |
{ |
printf("CBC DECRYPTION : KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CBC DECRYPTION : KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0) |
{ |
printf("CBC DECRYPTION : IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CBC DECRYPTION : IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
|
}else if(I == 3121)//CBC DECRYPTION DMA |
{ |
|
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_CBC_NOT_DERIVATED,16) == 0) |
{ |
printf("CBC DECRYPTION DMA : TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("CBC DECRYPTION DMA : TEXT CYPHER FAIL.\n"); |
|
} |
|
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0) |
{ |
printf("CBC DECRYPTION DMA : KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CBC DECRYPTION DMA : KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0) |
{ |
printf("CBC DECRYPTION DMA : IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CBC DECRYPTION DMA : IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
}else if(I == 561)// CBC DECRYPTION CCFIE |
{ |
|
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_CBC_NOT_DERIVATED,16) == 0) |
{ |
printf("CBC DECRYPTION : TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("CBC DECRYPTION : TEXT CYPHER FAIL.\n"); |
|
} |
|
|
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0) |
{ |
printf("CBC DECRYPTION : KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CBC DECRYPTION : KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0) |
{ |
printf("CBC DECRYPTION : IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CBC DECRYPTION : IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
}else if(I == 41) //CBC KEY GENERATION |
{ |
|
|
if(memcmp(OUTPUT_TEXT,TEXT_NULL,16) == 0) |
{ |
printf("CBC KEY GEN : TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("CBC KEY GEN : TEXT CYPHER FAIL.\n"); |
|
} |
|
if(memcmp(OUTPUT_KEYR,KEY_FIPS_CBC_DERIVATED,16) == 0) |
{ |
printf("CBC KEY GEN : KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CBC KEY GEN : KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_IVR,IV_FIPS_CBC_NOT_DERIVATED,16) == 0) |
{ |
printf("CBC KEY GEN : IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CBC KEY GEN : IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
|
}else if(I == 6185) //CBC KEY GENERATION DMA |
{ |
|
if(memcmp(OUTPUT_TEXT,TEXT_NULL,16) == 0) |
{ |
printf("CBC KEY GEN DMA : TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("CBC KEY GEN DMA : TEXT CYPHER FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_KEYR,KEY_FIPS_CBC_DERIVATED,16) == 0) |
{ |
printf("CBC KEY GEN DMA : KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CBC KEY GEN DMA : KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_IVR,IV_FIPS_CBC_NOT_DERIVATED,16) == 0) |
{ |
printf("CBC KEY GEN DMA : IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CBC KEY GEN DMA : IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
}else if(I == 297 ) //CBC KEY GENERATION CCFIE |
{ |
|
|
if(memcmp(OUTPUT_TEXT,TEXT_NULL,16) == 0) |
{ |
printf("CBC KEY GEN CCFIE : TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("CBC KEY GEN CCFIE : TEXT CYPHER FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_KEYR,KEY_FIPS_CBC_DERIVATED,16) == 0) |
{ |
printf("CBC KEY GEN CCFIE : KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CBC KEY GEN CCFIE : KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_IVR,IV_FIPS_CBC_NOT_DERIVATED,16) == 0) |
{ |
printf("CBC KEY GEN CCFIE : IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CBC KEY GEN CCFIE : IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
}else if(I == 57)// CBC DERIVATION DECRYPTION |
{ |
|
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_CBC_NOT_DERIVATED,16) == 0) |
{ |
printf("CBC DERIVATION DECRYPTION : TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("CBC DERIVATION DECRYPTION : TEXT CYPHER FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0) |
{ |
printf("CBC DERIVATION DECRYPTION : KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CBC DERIVATION DECRYPTION : KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0) |
{ |
printf("CBC DERIVATION DECRYPTION : IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CBC DERIVATION DECRYPTION : IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
}else if(I == 6201) // CBC DERIVATION DECRYPTION DMA |
{ |
|
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_CBC_NOT_DERIVATED,16) == 0) |
{ |
printf("CBC DERIVATION DECRYPTION DMA : TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("CBC DERIVATION DECRYPTION DMA : TEXT CYPHER FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0) |
{ |
printf("CBC DERIVATION DECRYPTION DMA : KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CBC DERIVATION DECRYPTION DMA : KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0) |
{ |
printf("CBC DERIVATION DECRYPTION DMA : IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CBC DERIVATION DECRYPTION DMA : IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
}else if(I == 569) // CBC DERIVATION DECRYPTION CCFIE |
{ |
|
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_CBC_NOT_DERIVATED,16) == 0) |
{ |
printf("CBC DERIVATION DECRYPTION CCFIE : TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("CBC DERIVATION DECRYPTION CCFIE : TEXT CYPHER FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0) |
{ |
printf("CBC DERIVATION DECRYPTION CCFIE : KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CBC DERIVATION DECRYPTION CCFIE : KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0) |
{ |
printf("CBC DERIVATION DECRYPTION CCFIE : IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CBC DERIVATION DECRYPTION CCFIE : IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
}else if(I == 65)// CTR ENCFRYPTION |
{ |
|
|
if(memcmp(OUTPUT_TEXT,TEXT_CTR_FIPS_DERIVATED,16) == 0) |
{ |
printf("CTR ENCRYPTION: TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("CTR ENCRYPTION: TEXT CYPHER FAIL.\n"); |
} |
|
|
|
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0) |
{ |
printf("CTR ENCRYPTION: KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CTR ENCRYPTION: KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0) |
{ |
printf("CTR ENCRYPTION: IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CTR ENCRYPTION: IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
|
}else if(I == 6209)// CTR ENCRYPTION DMA |
{ |
|
|
if(memcmp(OUTPUT_TEXT,TEXT_CTR_FIPS_DERIVATED,16) == 0) |
{ |
printf("CTR ENCRYPTION DMA: TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("CTR ENCRYPTION DMA: TEXT CYPHER FAIL.\n"); |
} |
|
|
|
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0) |
{ |
printf("CTR ENCRYPTION DMA: KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CTR ENCRYPTION DMA: KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0) |
{ |
printf("CTR ENCRYPTION DMA: IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CTR ENCRYPTION DMA: IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
}else if(I == 577)// CTR ENCRYPTION CCFIE |
{ |
|
if(memcmp(OUTPUT_TEXT,TEXT_CTR_FIPS_DERIVATED,16) == 0) |
{ |
printf("CTR ENCRYPTION CCFIE: TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("CTR ENCRYPTION CCFIE: TEXT CYPHER FAIL.\n"); |
} |
|
|
|
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0) |
{ |
printf("CTR ENCRYPTION CCFIE: KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CTR ENCRYPTION CCFIE: KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0) |
{ |
printf("CTR ENCRYPTION CCFIE: IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CTR ENCRYPTION CCFIE: IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
}else if(I == 81) //CTR DECRYPTION |
{ |
|
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_CTR_NOT_DERIVATED,16) == 0) |
{ |
printf("CTR DECRYPTION : TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("CTR DECRYPTION : TEXT CYPHER FAIL.\n"); |
} |
|
|
|
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0) |
{ |
printf("CTR DECRYPTION : KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CTR DECRYPTION : KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0) |
{ |
printf("CTR DECRYPTION : IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CTR DECRYPTION : IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
}else if(I == 6225) //CTR DECRYPTION DMA |
{ |
|
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_CTR_NOT_DERIVATED,16) == 0) |
{ |
printf("CTR DECRYPTION DMA: TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("CTR DECRYPTION DMA: TEXT CYPHER FAIL.\n"); |
} |
|
|
|
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0) |
{ |
printf("CTR DECRYPTION DMA: KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CTR DECRYPTION DMA: KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0) |
{ |
printf("CTR DECRYPTION DMA: IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CTR DECRYPTION DMA: IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
}else if(I == 593) //CTR DECRYPTION CCFIE |
{ |
|
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_CTR_NOT_DERIVATED,16) == 0) |
{ |
printf("CTR DECRYPTION CCFIE: TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("CTR DECRYPTION CCFIE: TEXT CYPHER FAIL.\n"); |
} |
|
|
|
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0) |
{ |
printf("CTR DECRYPTION CCFIE: KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CTR DECRYPTION CCFIE: KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0) |
{ |
printf("CTR DECRYPTION CCFIE: IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CTR DECRYPTION CCFIE: IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
}else if(I == 89) //CTR DERIVATION DECRYPTION |
{ |
|
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_CTR_NOT_DERIVATED,16) == 0) |
{ |
printf("CTR DERIVATION DECRYPTION: TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("CTR DERIVATION DECRYPTION: TEXT CYPHER FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0) |
{ |
printf("CTR DERIVATION DECRYPTION: KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CTR DERIVATION DECRYPTION: KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0) |
{ |
printf("CTR DERIVATION DECRYPTION: IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CTR DERIVATION DECRYPTION: IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
}else if(I == 6233) //CTR DERIVATION DECRYPTION DMA |
{ |
|
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_CTR_NOT_DERIVATED,16) == 0) |
{ |
printf("CTR DERIVATION DECRYPTION DMA: TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("CTR DERIVATION DECRYPTION DMA: TEXT CYPHER FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0) |
{ |
printf("CTR DERIVATION DECRYPTION DMA: KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CTR DERIVATION DECRYPTION DMA: KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0) |
{ |
printf("CTR DERIVATION DECRYPTION DMA: IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CTR DERIVATION DECRYPTION DMA: IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
}else if(I == 601) //CTR DERIVATION DECRYPTION CCFIE |
{ |
|
if(memcmp(OUTPUT_TEXT,TEXT_FIPS_CTR_NOT_DERIVATED,16) == 0) |
{ |
printf("CTR DERIVATION DECRYPTION DMA: TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("CTR DERIVATION DECRYPTION DMA: TEXT CYPHER FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_KEYR,TEXT_NULL,16) == 0) |
{ |
printf("CTR DERIVATION DECRYPTION DMA: KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CTR DERIVATION DECRYPTION DMA: KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
if(memcmp(OUTPUT_IVR,TEXT_NULL,16) == 0) |
{ |
printf("CTR DERIVATION DECRYPTION DMA: IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CTR DERIVATION DECRYPTION DMA: IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
}else if(I == 73)// CTR KEY GENERATION |
{ |
|
if(memcmp(OUTPUT_TEXT,TEXT_NULL,16) == 0) |
{ |
printf("CTR KEY GEN: TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("CTR KEY GEN: TEXT CYPHER FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_KEYR,KEY_FIPS_CTR_DERIVATED,16) == 0) |
{ |
printf("CTR KEY GEN: KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CTR KEY GEN: KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
if(memcmp(OUTPUT_IVR,IV_FIPS_CTR_NOT_DERIVATED,16) == 0) |
{ |
printf("CTR KEY GEN: IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CTR KEY GEN: IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
}else if(I == 6217) // CTR KEY GENERATION DMA |
{ |
|
|
if(memcmp(OUTPUT_TEXT,TEXT_NULL,16) == 0) |
{ |
printf("CTR KEY GEN DMA: TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("CTR KEY GEN DMA: TEXT CYPHER FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_KEYR,KEY_FIPS_CTR_DERIVATED,16) == 0) |
{ |
printf("CTR KEY GEN DMA: KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CTR KEY GEN DMA: KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
if(memcmp(OUTPUT_IVR,IV_FIPS_CTR_NOT_DERIVATED,16) == 0) |
{ |
printf("CTR KEY GEN DMA: IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CTR KEY GEN DMA: IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
}else if(I == 585) // CTR KEY GENERATION CCFIE |
{ |
|
if(memcmp(OUTPUT_TEXT,TEXT_NULL,16) == 0) |
{ |
printf("CTR KEY GEN CCFIE: TEXT CYPHER PASSED.\n"); |
|
}else |
{ |
printf("CTR KEY GEN CCFIE: TEXT CYPHER FAIL.\n"); |
} |
|
if(memcmp(OUTPUT_KEYR,KEY_FIPS_CTR_DERIVATED,16) == 0) |
{ |
printf("CTR KEY GEN CCFIE: KEYR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CTR KEY GEN CCFIE: KEYR WHEN CR ENABLE FAIL.\n"); |
} |
|
|
if(memcmp(OUTPUT_IVR,IV_FIPS_CTR_NOT_DERIVATED,16) == 0) |
{ |
printf("CTR KEY GEN CCFIE: IVR WHEN CR ENABLE PASSED.\n"); |
}else |
{ |
printf("CTR KEY GEN CCFIE: IVR WHEN CR ENABLE FAIL.\n"); |
} |
|
} |
|
|
|
|
|
}//counter == 12 |
|
} |
|
|
|
|
} |
|
|
|
|
|
} |
|
return 0; |
/aes_bfm_wr.h
120,13 → 120,13
{ |
STATE = WRITE; |
|
counter = 0; |
counter = 1; |
|
v_wr.value.integer = vector_address[0]; |
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay); |
//v_wr.value.integer = vector_address[0]; |
//vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay); |
|
v_wr.value.integer = 4094; |
vpi_put_value(PWDATA, &v_wr, NULL, vpiNoDelay); |
//v_wr.value.integer = 4094; |
//vpi_put_value(PWDATA, &v_wr, NULL, vpiNoDelay); |
|
v_wr.value.integer = 1; |
vpi_put_value(PWRITE, &v_wr, NULL, vpiNoDelay); |
141,29 → 141,39
|
case WRITE: |
|
if(counter == 0) |
{ |
|
counter_write++; |
counter++; |
|
v_wr.value.integer = 1; |
vpi_put_value(PENABLE, &v_wr, NULL, vpiNoDelay); |
v_wr.value.integer = 1; |
vpi_put_value(PSEL, &v_wr, NULL, vpiNoDelay); |
|
if(counter == 0) |
{ |
counter_write++; |
counter++; |
|
}else if(counter == 1) |
{ |
v_wr.value.integer = 1; |
vpi_put_value(PENABLE, &v_wr, NULL, vpiNoDelay); |
|
v_wr.value.integer = vector_address[counter_write]; |
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay); |
|
v_wr.value.integer = 0; |
vpi_put_value(PENABLE, &v_wr, NULL, vpiNoDelay); |
}else if(counter == 1) |
{ |
|
t_wr.type = vpiScaledRealTime; |
t_wr.real = 0; |
v_wr.format=vpiIntVal; |
|
|
t_wr.type = vpiScaledRealTime; |
t_wr.real = 0; |
v_wr.format=vpiIntVal; |
|
v_wr.value.integer = 0; |
vpi_put_value(PENABLE, &v_wr, NULL, vpiNoDelay); |
|
|
if(counter_write < 9) |
{ |
|
v_wr.value.integer = vector_address[counter_write]; |
vpi_put_value(PADDR, &v_wr, &t_wr, vpiTransportDelay); |
|
if(FIPS_ENABLE == FIPS) |
{ |
|
193,7 → 203,7
} |
|
if(vector_address[counter_write] == ADDR_AES_KEYR1 || vector_address[counter_write] == ADDR_AES_IVR1) |
{ |
{ |
|
c = c | KEY_FIPS_NOT_DERIVATED[8]; |
c = c << 8; |
223,28 → 233,113
}else if(FIPS_ENABLE == RANDOM_DATA) |
{ |
v_wr.value.integer = data_in(rd); |
} |
} |
|
vpi_put_value(PWDATA, &v_wr, &t_wr, vpiTransportDelay); |
|
|
a = 0; |
b = 0; |
c = 0; |
d = 0; |
|
|
|
v_wr.value.integer = 1; |
vpi_put_value(PSEL, &v_wr, NULL, vpiNoDelay); |
}else if(counter_write == 9)//ENABLE CR |
{ |
|
v_wr.value.integer = vector_address[counter_write]; |
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay); |
|
v_wr.value.integer = 4094; |
vpi_put_value(PWDATA, &v_wr, &t_wr, vpiTransportDelay); |
|
}else if(counter_write > 9 && counter_write < 14) //WRITE DINR |
{ |
|
v_wr.value.integer = ADDR_AES_DINR; |
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay); |
|
|
if(FIPS_ENABLE == FIPS) |
{ |
|
if(counter_write == 10) |
{ |
a = a | TEXT_FIPS_NOT_DERIVATED[0]; |
a = a << 8; |
a = a | TEXT_FIPS_NOT_DERIVATED[1]; |
a = a << 8; |
a = a | TEXT_FIPS_NOT_DERIVATED[2]; |
a = a << 8; |
a = a | TEXT_FIPS_NOT_DERIVATED[3]; |
v_wr.value.integer = a; |
|
}else if(counter_write == 11) |
{ |
b = b | TEXT_FIPS_NOT_DERIVATED[4]; |
b = b << 8; |
b = b | TEXT_FIPS_NOT_DERIVATED[5]; |
b = b << 8; |
b = b | TEXT_FIPS_NOT_DERIVATED[6]; |
b = b << 8; |
b = b | TEXT_FIPS_NOT_DERIVATED[7]; |
v_wr.value.integer = b; |
|
}else if(counter_write == 12 ) |
{ |
|
c = c | TEXT_FIPS_NOT_DERIVATED[8]; |
c = c << 8; |
c = c | TEXT_FIPS_NOT_DERIVATED[9]; |
c = c << 8; |
c = c | TEXT_FIPS_NOT_DERIVATED[10]; |
c = c << 8; |
c = c | TEXT_FIPS_NOT_DERIVATED[11]; |
v_wr.value.integer = c; |
|
}else if(counter_write == 13 ) |
{ |
d = d | TEXT_FIPS_NOT_DERIVATED[12]; |
d = d << 8; |
d = d | TEXT_FIPS_NOT_DERIVATED[13]; |
d = d << 8; |
d = d | TEXT_FIPS_NOT_DERIVATED[14]; |
d = d << 8; |
d = d | TEXT_FIPS_NOT_DERIVATED[15]; |
v_wr.value.integer = d; |
|
} |
|
|
}else if(FIPS_ENABLE == RANDOM_DATA) |
{ |
v_wr.value.integer = data_in(rd); |
} |
|
vpi_put_value(PWDATA, &v_wr, &t_wr, vpiTransportDelay); |
|
a = 0; |
b = 0; |
c = 0; |
d = 0; |
|
|
} |
counter=0; |
} |
|
if(counter_write == 12) |
} |
|
|
|
if(counter_write == 14) |
{ |
STATE =WAIT; |
counter_write = 0; |
|
STATE = WAIT; |
} |
|
|
|
break; |
|
case WAIT: |
254,8 → 349,6
|
vpi_put_value(PENABLE, &v_wr, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay); |
|
vpi_put_value(PWDATA, &v_wr, &t_wr, vpiTransportDelay); |
|
if(counter_wait == 5) |
263,13 → 356,24
|
STATE = READ_RESULTS; |
counter_wait=0; |
v_wr.value.integer = vector_address[0]; |
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay); |
counter_read = 0; |
//v_wr.value.integer = ADDR_AES_DOUTR; |
//vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay); |
|
t_wr.type = vpiScaledRealTime; |
t_wr.real = 0; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_wr, &t_wr, vpiTransportDelay); |
|
//v_wr.value.integer = 1; |
//vpi_put_value(PENABLE, &v_wr, NULL, vpiNoDelay); |
|
|
}else |
{ |
|
v_wr.value.integer = 0; |
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay); |
counter_wait++; |
|
} |
290,36 → 394,119
|
}else if(counter == 1) |
{ |
counter++; |
|
|
v_wr.value.integer = 0; |
vpi_put_value(PENABLE, &v_wr, NULL, vpiNoDelay); |
|
v_wr.value.integer = vector_address[counter_read]; |
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay); |
//v_wr.value.integer = 0; |
//vpi_put_value(PWDATA, &v_wr, NULL, vpiNoDelay); |
|
v_wr.value.integer = 0; |
vpi_put_value(PWDATA, &v_wr, NULL, vpiNoDelay); |
//v_wr.value.integer = 1; |
//vpi_put_value(PSEL, &v_wr, NULL, vpiNoDelay); |
|
v_wr.value.integer = 1; |
vpi_put_value(PSEL, &v_wr, NULL, vpiNoDelay); |
|
if(counter_read < 4) |
{ |
|
v_wr.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay); |
|
} |
|
|
if(counter_read == 4) |
{ |
|
v_wr.value.integer = ADDR_AES_KEYR3; |
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay); |
|
} |
|
|
if(counter_read == 5) |
{ |
|
v_wr.value.integer = ADDR_AES_KEYR2; |
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay); |
|
} |
|
|
|
if(counter_read == 6) |
{ |
|
v_wr.value.integer = ADDR_AES_KEYR1; |
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay); |
|
} |
|
|
if(counter_read == 7) |
{ |
|
v_wr.value.integer = ADDR_AES_KEYR0; |
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay); |
|
} |
|
|
if(counter_read == 8) |
{ |
|
v_wr.value.integer = ADDR_AES_IVR3; |
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay); |
|
} |
|
|
if(counter_read == 9) |
{ |
|
v_wr.value.integer = ADDR_AES_IVR2; |
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay); |
|
} |
|
|
|
if(counter_read == 10) |
{ |
|
v_wr.value.integer = ADDR_AES_IVR1; |
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay); |
|
} |
|
|
if(counter_read == 11) |
{ |
|
v_wr.value.integer = ADDR_AES_IVR0; |
vpi_put_value(PADDR, &v_wr, NULL, vpiNoDelay); |
|
} |
|
|
|
counter=0; |
|
} |
if(counter_read == 12) |
{ |
STATE = IDLE; |
counter_read = 0; |
PACKETS_GENERATED = PACKETS_GENERATED + 1; |
|
if(counter_read == 12) |
{ |
STATE = IDLE; |
counter_read = 0; |
PACKETS_GENERATED = PACKETS_GENERATED + 1; |
//v_wr.value.integer = 0; |
//vpi_put_value(PENABLE, &v_wr, NULL, vpiNoDelay); |
|
v_wr.value.integer = 0; |
vpi_put_value(PENABLE, &v_wr, NULL, vpiNoDelay); |
} |
|
} |
|
|
|
|
break; |
} |
|
/bfm_cbc/aes_bfm_decryption_ccfie_cbc.h
173,13 → 173,13
|
if(vector_address[counter_write] == ADDR_AES_KEYR3) |
{ |
a = a | KEY_FIPS_CBC_NOT_DERIVATED[0]; |
a = a | KEY_FIPS_CBC_DERIVATED[0]; |
a = a << 8; |
a = a | KEY_FIPS_CBC_NOT_DERIVATED[1]; |
a = a | KEY_FIPS_CBC_DERIVATED[1]; |
a = a << 8; |
a = a | KEY_FIPS_CBC_NOT_DERIVATED[2]; |
a = a | KEY_FIPS_CBC_DERIVATED[2]; |
a = a << 8; |
a = a | KEY_FIPS_CBC_NOT_DERIVATED[3]; |
a = a | KEY_FIPS_CBC_DERIVATED[3]; |
v_ecb.value.integer = a; |
} |
|
186,13 → 186,13
|
if(vector_address[counter_write] == ADDR_AES_KEYR2) |
{ |
b = b | KEY_FIPS_CBC_NOT_DERIVATED[4]; |
b = b | KEY_FIPS_CBC_DERIVATED[4]; |
b = b << 8; |
b = b | KEY_FIPS_CBC_NOT_DERIVATED[5]; |
b = b | KEY_FIPS_CBC_DERIVATED[5]; |
b = b << 8; |
b = b | KEY_FIPS_CBC_NOT_DERIVATED[6]; |
b = b | KEY_FIPS_CBC_DERIVATED[6]; |
b = b << 8; |
b = b | KEY_FIPS_CBC_NOT_DERIVATED[7]; |
b = b | KEY_FIPS_CBC_DERIVATED[7]; |
v_ecb.value.integer = b; |
} |
|
199,13 → 199,13
if(vector_address[counter_write] == ADDR_AES_KEYR1) |
{ |
|
c = c | KEY_FIPS_CBC_NOT_DERIVATED[8]; |
c = c | KEY_FIPS_CBC_DERIVATED[8]; |
c = c << 8; |
c = c | KEY_FIPS_CBC_NOT_DERIVATED[9]; |
c = c | KEY_FIPS_CBC_DERIVATED[9]; |
c = c << 8; |
c = c | KEY_FIPS_CBC_NOT_DERIVATED[10]; |
c = c | KEY_FIPS_CBC_DERIVATED[10]; |
c = c << 8; |
c = c | KEY_FIPS_CBC_NOT_DERIVATED[11]; |
c = c | KEY_FIPS_CBC_DERIVATED[11]; |
v_ecb.value.integer = c; |
|
} |
212,13 → 212,13
|
if(vector_address[counter_write] == ADDR_AES_KEYR0) |
{ |
d = d | KEY_FIPS_CBC_NOT_DERIVATED[12]; |
d = d | KEY_FIPS_CBC_DERIVATED[12]; |
d = d << 8; |
d = d | KEY_FIPS_CBC_NOT_DERIVATED[13]; |
d = d | KEY_FIPS_CBC_DERIVATED[13]; |
d = d << 8; |
d = d | KEY_FIPS_CBC_NOT_DERIVATED[14]; |
d = d | KEY_FIPS_CBC_DERIVATED[14]; |
d = d << 8; |
d = d | KEY_FIPS_CBC_NOT_DERIVATED[15]; |
d = d | KEY_FIPS_CBC_DERIVATED[15]; |
v_ecb.value.integer = d; |
} |
|
408,7 → 408,11
|
v_ecb.value.integer = 0; |
vpi_put_value(PWRITE, &v_ecb, NULL, vpiNoDelay); |
|
|
v_ecb.value.integer = 0; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
/* |
if(counter == 0) |
{ |
|
425,19 → 429,19
|
counter=0; |
} |
|
*/ |
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
vpi_get_value(int_ccf,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 0; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
//t_ecb.type = vpiScaledRealTime; |
//t_ecb.real = 0; |
//v_ecb.format=vpiIntVal; |
//v_ecb.value.integer = ADDR_AES_DOUTR; |
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
/bfm_cbc/aes_bfm_encryption_cbc.h
409,7 → 409,21
v_ecb.value.integer = 1; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
//t_ecb.type = vpiScaledRealTime; |
//t_ecb.real = 10; |
//v_ecb.format=vpiIntVal; |
//v_ecb.value.integer = ADDR_AES_DOUTR; |
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
}else if(counter == 1) |
{ |
v_ecb.value.integer = 0; |
418,19 → 432,7
counter=0; |
} |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 10; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
break; |
/bfm_cbc/aes_bfm_encryption_dma_cbc.h
417,6 → 417,22
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
|
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
//t_ecb.type = vpiScaledRealTime; |
//t_ecb.real = 10; |
//v_ecb.format=vpiIntVal; |
//v_ecb.value.integer = ADDR_AES_DOUTR; |
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
}else if(counter == 1) |
{ |
v_ecb.value.integer = 0; |
425,19 → 441,6
counter=0; |
} |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 10; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
break; |
/bfm_cbc/aes_bfm_key_generation_ccfie_cbc.h
296,7 → 296,7
if(counter_write == 9) |
{ |
|
v_ecb.value.integer = vector_address[counter_write]; |
v_ecb.value.integer = ADDR_AES_CR; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
t_ecb.type = vpiScaledRealTime; |
358,11 → 358,11
{ |
STATE = READ_KEY_GEN; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 10; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_KEYR3; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
//t_ecb.type = vpiScaledRealTime; |
//t_ecb.real = 10; |
//v_ecb.format=vpiIntVal; |
//v_ecb.value.integer = ADDR_AES_KEYR3; |
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
387,79 → 387,68
}else if(counter == 1) |
{ |
|
if(counter_read == 0) |
v_ecb.value.integer = 0; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
if(counter_read < 4) |
{ |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
if(counter_read == 4) |
{ |
v_ecb.value.integer = ADDR_AES_KEYR3; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
|
if(counter_read == 1) |
if(counter_read == 5) |
{ |
v_ecb.value.integer = ADDR_AES_KEYR2; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
|
if(counter_read == 2) |
if(counter_read == 6) |
{ |
v_ecb.value.integer = ADDR_AES_KEYR1; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
if(counter_read == 3) |
if(counter_read == 7) |
{ |
v_ecb.value.integer = ADDR_AES_KEYR0; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
if(counter_read == 4) |
|
if(counter_read == 8) |
{ |
|
v_ecb.value.integer = ADDR_AES_IVR3; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
|
if(counter_read == 5) |
if(counter_read == 9) |
{ |
|
v_ecb.value.integer = ADDR_AES_IVR2; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
|
|
if(counter_read == 6) |
if(counter_read == 10) |
{ |
|
v_ecb.value.integer = ADDR_AES_IVR1; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
|
if(counter_read == 7) |
if(counter_read == 11) |
{ |
|
v_ecb.value.integer = ADDR_AES_IVR0; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
v_ecb.value.integer = 0; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
counter = 0; |
} |
|
if(counter_read == 8) |
if(counter_read == 12) |
{ |
STATE = RESET_SR; |
counter_write = 0; |
/bfm_cbc/aes_bfm_derivation_decryption_ccfie_cbc.h
403,6 → 403,10
v_ecb.value.integer = 0; |
vpi_put_value(PWRITE, &v_ecb, NULL, vpiNoDelay); |
|
v_ecb.value.integer = 0; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
/* |
if(counter == 0) |
{ |
|
419,19 → 423,19
|
counter=0; |
} |
|
*/ |
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
vpi_get_value(int_ccf,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 0; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
counter=1; |
//t_ecb.type = vpiScaledRealTime; |
//t_ecb.real = 0; |
//v_ecb.format=vpiIntVal; |
//v_ecb.value.integer = ADDR_AES_DOUTR; |
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
/bfm_cbc/aes_bfm_decryption_cbc.h
173,13 → 173,13
|
if(vector_address[counter_write] == ADDR_AES_KEYR3) |
{ |
a = a | KEY_FIPS_CBC_NOT_DERIVATED[0]; |
a = a | KEY_FIPS_CBC_DERIVATED[0]; |
a = a << 8; |
a = a | KEY_FIPS_CBC_NOT_DERIVATED[1]; |
a = a | KEY_FIPS_CBC_DERIVATED[1]; |
a = a << 8; |
a = a | KEY_FIPS_CBC_NOT_DERIVATED[2]; |
a = a | KEY_FIPS_CBC_DERIVATED[2]; |
a = a << 8; |
a = a | KEY_FIPS_CBC_NOT_DERIVATED[3]; |
a = a | KEY_FIPS_CBC_DERIVATED[3]; |
v_ecb.value.integer = a; |
} |
|
186,13 → 186,13
|
if(vector_address[counter_write] == ADDR_AES_KEYR2) |
{ |
b = b | KEY_FIPS_CBC_NOT_DERIVATED[4]; |
b = b | KEY_FIPS_CBC_DERIVATED[4]; |
b = b << 8; |
b = b | KEY_FIPS_CBC_NOT_DERIVATED[5]; |
b = b | KEY_FIPS_CBC_DERIVATED[5]; |
b = b << 8; |
b = b | KEY_FIPS_CBC_NOT_DERIVATED[6]; |
b = b | KEY_FIPS_CBC_DERIVATED[6]; |
b = b << 8; |
b = b | KEY_FIPS_CBC_NOT_DERIVATED[7]; |
b = b | KEY_FIPS_CBC_DERIVATED[7]; |
v_ecb.value.integer = b; |
} |
|
199,13 → 199,13
if(vector_address[counter_write] == ADDR_AES_KEYR1) |
{ |
|
c = c | KEY_FIPS_CBC_NOT_DERIVATED[8]; |
c = c | KEY_FIPS_CBC_DERIVATED[8]; |
c = c << 8; |
c = c | KEY_FIPS_CBC_NOT_DERIVATED[9]; |
c = c | KEY_FIPS_CBC_DERIVATED[9]; |
c = c << 8; |
c = c | KEY_FIPS_CBC_NOT_DERIVATED[10]; |
c = c | KEY_FIPS_CBC_DERIVATED[10]; |
c = c << 8; |
c = c | KEY_FIPS_CBC_NOT_DERIVATED[11]; |
c = c | KEY_FIPS_CBC_DERIVATED[11]; |
v_ecb.value.integer = c; |
|
} |
212,13 → 212,13
|
if(vector_address[counter_write] == ADDR_AES_KEYR0) |
{ |
d = d | KEY_FIPS_CBC_NOT_DERIVATED[12]; |
d = d | KEY_FIPS_CBC_DERIVATED[12]; |
d = d << 8; |
d = d | KEY_FIPS_CBC_NOT_DERIVATED[13]; |
d = d | KEY_FIPS_CBC_DERIVATED[13]; |
d = d << 8; |
d = d | KEY_FIPS_CBC_NOT_DERIVATED[14]; |
d = d | KEY_FIPS_CBC_DERIVATED[14]; |
d = d << 8; |
d = d | KEY_FIPS_CBC_NOT_DERIVATED[15]; |
d = d | KEY_FIPS_CBC_DERIVATED[15]; |
v_ecb.value.integer = d; |
} |
|
295,7 → 295,7
if(counter_write == 9) |
{ |
|
v_ecb.value.integer = vector_address[counter_write]; |
v_ecb.value.integer = ADDR_AES_CR; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
t_ecb.type = vpiScaledRealTime; |
411,7 → 411,21
v_ecb.value.integer = 1; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
//t_ecb.type = vpiScaledRealTime; |
//t_ecb.real = 0; |
//v_ecb.format=vpiIntVal; |
//v_ecb.value.integer = ADDR_AES_DOUTR; |
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
}else if(counter == 1) |
{ |
v_ecb.value.integer = 0; |
420,21 → 434,8
counter=0; |
} |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 0; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
break; |
|
|
/bfm_cbc/aes_bfm_decryption_dma_cbc.h
172,111 → 172,110
{ |
|
if(vector_address[counter_write] == ADDR_AES_KEYR3) |
{ |
a = a | KEY_FIPS_CBC_NOT_DERIVATED[0]; |
a = a << 8; |
a = a | KEY_FIPS_CBC_NOT_DERIVATED[1]; |
a = a << 8; |
a = a | KEY_FIPS_CBC_NOT_DERIVATED[2]; |
a = a << 8; |
a = a | KEY_FIPS_CBC_NOT_DERIVATED[3]; |
v_ecb.value.integer = a; |
} |
{ |
a = a | KEY_FIPS_CBC_DERIVATED[0]; |
a = a << 8; |
a = a | KEY_FIPS_CBC_DERIVATED[1]; |
a = a << 8; |
a = a | KEY_FIPS_CBC_DERIVATED[2]; |
a = a << 8; |
a = a | KEY_FIPS_CBC_DERIVATED[3]; |
v_ecb.value.integer = a; |
} |
|
|
if(vector_address[counter_write] == ADDR_AES_KEYR2) |
{ |
b = b | KEY_FIPS_CBC_NOT_DERIVATED[4]; |
b = b << 8; |
b = b | KEY_FIPS_CBC_NOT_DERIVATED[5]; |
b = b << 8; |
b = b | KEY_FIPS_CBC_NOT_DERIVATED[6]; |
b = b << 8; |
b = b | KEY_FIPS_CBC_NOT_DERIVATED[7]; |
v_ecb.value.integer = b; |
} |
if(vector_address[counter_write] == ADDR_AES_KEYR2) |
{ |
b = b | KEY_FIPS_CBC_DERIVATED[4]; |
b = b << 8; |
b = b | KEY_FIPS_CBC_DERIVATED[5]; |
b = b << 8; |
b = b | KEY_FIPS_CBC_DERIVATED[6]; |
b = b << 8; |
b = b | KEY_FIPS_CBC_DERIVATED[7]; |
v_ecb.value.integer = b; |
} |
|
if(vector_address[counter_write] == ADDR_AES_KEYR1) |
{ |
if(vector_address[counter_write] == ADDR_AES_KEYR1) |
{ |
|
c = c | KEY_FIPS_CBC_NOT_DERIVATED[8]; |
c = c << 8; |
c = c | KEY_FIPS_CBC_NOT_DERIVATED[9]; |
c = c << 8; |
c = c | KEY_FIPS_CBC_NOT_DERIVATED[10]; |
c = c << 8; |
c = c | KEY_FIPS_CBC_NOT_DERIVATED[11]; |
v_ecb.value.integer = c; |
c = c | KEY_FIPS_CBC_DERIVATED[8]; |
c = c << 8; |
c = c | KEY_FIPS_CBC_DERIVATED[9]; |
c = c << 8; |
c = c | KEY_FIPS_CBC_DERIVATED[10]; |
c = c << 8; |
c = c | KEY_FIPS_CBC_DERIVATED[11]; |
v_ecb.value.integer = c; |
|
} |
} |
|
if(vector_address[counter_write] == ADDR_AES_KEYR0) |
{ |
d = d | KEY_FIPS_CBC_NOT_DERIVATED[12]; |
d = d << 8; |
d = d | KEY_FIPS_CBC_NOT_DERIVATED[13]; |
d = d << 8; |
d = d | KEY_FIPS_CBC_NOT_DERIVATED[14]; |
d = d << 8; |
d = d | KEY_FIPS_CBC_NOT_DERIVATED[15]; |
v_ecb.value.integer = d; |
} |
if(vector_address[counter_write] == ADDR_AES_KEYR0) |
{ |
d = d | KEY_FIPS_CBC_DERIVATED[12]; |
d = d << 8; |
d = d | KEY_FIPS_CBC_DERIVATED[13]; |
d = d << 8; |
d = d | KEY_FIPS_CBC_DERIVATED[14]; |
d = d << 8; |
d = d | KEY_FIPS_CBC_DERIVATED[15]; |
v_ecb.value.integer = d; |
} |
|
|
if(vector_address[counter_write] == ADDR_AES_IVR3) |
{ |
a = a | IV_FIPS_CBC_NOT_DERIVATED[0]; |
a = a << 8; |
a = a | IV_FIPS_CBC_NOT_DERIVATED[1]; |
a = a << 8; |
a = a | IV_FIPS_CBC_NOT_DERIVATED[2]; |
a = a << 8; |
a = a | IV_FIPS_CBC_NOT_DERIVATED[3]; |
v_ecb.value.integer = a; |
} |
if(vector_address[counter_write] == ADDR_AES_IVR3) |
{ |
a = a | IV_FIPS_CBC_NOT_DERIVATED[0]; |
a = a << 8; |
a = a | IV_FIPS_CBC_NOT_DERIVATED[1]; |
a = a << 8; |
a = a | IV_FIPS_CBC_NOT_DERIVATED[2]; |
a = a << 8; |
a = a | IV_FIPS_CBC_NOT_DERIVATED[3]; |
v_ecb.value.integer = a; |
} |
|
|
if(vector_address[counter_write] == ADDR_AES_IVR2) |
{ |
b = b | IV_FIPS_CBC_NOT_DERIVATED[4]; |
b = b << 8; |
b = b | IV_FIPS_CBC_NOT_DERIVATED[5]; |
b = b << 8; |
b = b | IV_FIPS_CBC_NOT_DERIVATED[6]; |
b = b << 8; |
b = b | IV_FIPS_CBC_NOT_DERIVATED[7]; |
v_ecb.value.integer = b; |
} |
if(vector_address[counter_write] == ADDR_AES_IVR2) |
{ |
b = b | IV_FIPS_CBC_NOT_DERIVATED[4]; |
b = b << 8; |
b = b | IV_FIPS_CBC_NOT_DERIVATED[5]; |
b = b << 8; |
b = b | IV_FIPS_CBC_NOT_DERIVATED[6]; |
b = b << 8; |
b = b | IV_FIPS_CBC_NOT_DERIVATED[7]; |
v_ecb.value.integer = b; |
} |
|
if(vector_address[counter_write] == ADDR_AES_IVR1) |
{ |
if(vector_address[counter_write] == ADDR_AES_IVR1) |
{ |
|
c = c | IV_FIPS_CBC_NOT_DERIVATED[8]; |
c = c << 8; |
c = c | IV_FIPS_CBC_NOT_DERIVATED[9]; |
c = c << 8; |
c = c | IV_FIPS_CBC_NOT_DERIVATED[10]; |
c = c << 8; |
c = c | IV_FIPS_CBC_NOT_DERIVATED[11]; |
v_ecb.value.integer = c; |
c = c | IV_FIPS_CBC_NOT_DERIVATED[8]; |
c = c << 8; |
c = c | IV_FIPS_CBC_NOT_DERIVATED[9]; |
c = c << 8; |
c = c | IV_FIPS_CBC_NOT_DERIVATED[10]; |
c = c << 8; |
c = c | IV_FIPS_CBC_NOT_DERIVATED[11]; |
v_ecb.value.integer = c; |
} |
|
} |
if(vector_address[counter_write] == ADDR_AES_IVR0) |
{ |
d = d | IV_FIPS_CBC_NOT_DERIVATED[12]; |
d = d << 8; |
d = d | IV_FIPS_CBC_NOT_DERIVATED[13]; |
d = d << 8; |
d = d | IV_FIPS_CBC_NOT_DERIVATED[14]; |
d = d << 8; |
d = d | IV_FIPS_CBC_NOT_DERIVATED[15]; |
v_ecb.value.integer = d; |
} |
|
if(vector_address[counter_write] == ADDR_AES_IVR0) |
{ |
d = d | IV_FIPS_CBC_NOT_DERIVATED[12]; |
d = d << 8; |
d = d | IV_FIPS_CBC_NOT_DERIVATED[13]; |
d = d << 8; |
d = d | IV_FIPS_CBC_NOT_DERIVATED[14]; |
d = d << 8; |
d = d | IV_FIPS_CBC_NOT_DERIVATED[15]; |
v_ecb.value.integer = d; |
} |
|
|
|
|
}else if(FIPS_ENABLE == RANDOM_DATA) |
{ |
v_ecb.value.integer = data_in(rd); |
418,7 → 417,21
v_ecb.value.integer = 1; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
//t_ecb.type = vpiScaledRealTime; |
//t_ecb.real = 0; |
//v_ecb.format=vpiIntVal; |
//v_ecb.value.integer = ADDR_AES_DOUTR; |
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
}else if(counter == 1) |
{ |
v_ecb.value.integer = 0; |
427,19 → 440,7
counter=0; |
} |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 0; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
break; |
/bfm_cbc/aes_bfm_encryption_ccfie_cbc.h
399,6 → 399,10
v_ecb.value.integer = 0; |
vpi_put_value(PWRITE, &v_ecb, NULL, vpiNoDelay); |
|
v_ecb.value.integer = 0; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
/* |
if(counter == 0) |
{ |
|
415,19 → 419,20
|
counter=0; |
} |
*/ |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
vpi_get_value(int_ccf,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 10; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
//t_ecb.type = vpiScaledRealTime; |
//t_ecb.real = 10; |
//v_ecb.format=vpiIntVal; |
//v_ecb.value.integer = ADDR_AES_DOUTR; |
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
/bfm_cbc/aes_bfm_key_generation_cbc.h
341,7 → 341,21
v_ecb.value.integer = 1; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_KEY_GEN; |
|
//t_ecb.type = vpiScaledRealTime; |
//t_ecb.real = 10; |
//v_ecb.format=vpiIntVal; |
//v_ecb.value.integer = ADDR_AES_KEYR3; |
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
}else if(counter == 1) |
{ |
v_ecb.value.integer = 0; |
349,20 → 363,6
|
counter=0; |
} |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_KEY_GEN; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 10; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_KEYR3; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
break; |
/bfm_cbc/aes_bfm_derivation_decryption_cbc.h
295,13 → 295,13
if(counter_write == 9) |
{ |
|
v_ecb.value.integer = vector_address[counter_write]; |
v_ecb.value.integer = ADDR_AES_CR; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 0; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = 25;//data_in(rd); |
v_ecb.value.integer = 57;//data_in(rd); |
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay); |
|
} |
412,7 → 412,22
v_ecb.value.integer = 1; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
//t_ecb.type = vpiScaledRealTime; |
//t_ecb.real = 0; |
//v_ecb.format=vpiIntVal; |
//v_ecb.value.integer = ADDR_AES_DOUTR; |
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
|
}else if(counter == 1) |
{ |
v_ecb.value.integer = 0; |
421,21 → 436,8
counter=0; |
} |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 0; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
break; |
|
|
/bfm_cbc/aes_bfm_key_generation_dma_cbc.h
343,6 → 343,21
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_KEY_GEN; |
|
//t_ecb.type = vpiScaledRealTime; |
//t_ecb.real = 10; |
//v_ecb.format=vpiIntVal; |
//v_ecb.value.integer = ADDR_AES_KEYR3; |
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
}else if(counter == 1) |
{ |
v_ecb.value.integer = 0; |
351,19 → 366,6
counter=0; |
} |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_KEY_GEN; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 10; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_KEYR3; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
break; |
387,79 → 389,68
}else if(counter == 1) |
{ |
|
if(counter_read == 0) |
v_ecb.value.integer = 0; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
if(counter_read < 4) |
{ |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
if(counter_read == 4) |
{ |
v_ecb.value.integer = ADDR_AES_KEYR3; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
|
if(counter_read == 1) |
if(counter_read == 5) |
{ |
v_ecb.value.integer = ADDR_AES_KEYR2; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
|
if(counter_read == 2) |
if(counter_read == 6) |
{ |
v_ecb.value.integer = ADDR_AES_KEYR1; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
if(counter_read == 3) |
if(counter_read == 7) |
{ |
v_ecb.value.integer = ADDR_AES_KEYR0; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
if(counter_read == 4) |
|
if(counter_read == 8) |
{ |
|
v_ecb.value.integer = ADDR_AES_IVR3; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
|
if(counter_read == 5) |
if(counter_read == 9) |
{ |
|
v_ecb.value.integer = ADDR_AES_IVR2; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
|
|
if(counter_read == 6) |
if(counter_read == 10) |
{ |
|
v_ecb.value.integer = ADDR_AES_IVR1; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
|
if(counter_read == 7) |
if(counter_read == 11) |
{ |
|
v_ecb.value.integer = ADDR_AES_IVR0; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
v_ecb.value.integer = 0; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
counter = 0; |
} |
|
if(counter_read == 8) |
if(counter_read == 12) |
{ |
STATE = RESET_SR; |
counter_write = 0; |
/bfm_cbc/aes_bfm_derivation_decryption_dma_cbc.h
295,7 → 295,7
if(counter_write == 9) |
{ |
|
v_ecb.value.integer = vector_address[counter_write]; |
v_ecb.value.integer = ADDR_AES_CR; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
t_ecb.type = vpiScaledRealTime; |
412,6 → 412,21
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
//t_ecb.type = vpiScaledRealTime; |
//t_ecb.real = 0; |
//v_ecb.format=vpiIntVal; |
//v_ecb.value.integer = ADDR_AES_DOUTR; |
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
}else if(counter == 1) |
{ |
v_ecb.value.integer = 0; |
419,20 → 434,6
|
counter=0; |
} |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 0; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
break; |
/aes_bfm_generate.h
102,9 → 102,10
|
// type_bfm = ECB_ENCRYPTION_CCFIE; |
// type_bfm = ECB_DECRYPTION_CCFIE; |
// type_bfm = ECB_KEY_GEN_CCFIE; |
// type_bfm = ECB_DERIVATION_DECRYPTION_CCFIE; |
// type_bfm = ECB_KEY_GEN_CCFIE; |
|
|
// type_bfm = CBC_ENCRYPTION; |
// type_bfm = CBC_DECRYPTION; |
// type_bfm = CBC_DERIVATION_DECRYPTION; |
/bfm_ctr/aes_bfm_derivation_decryption_dma_ctr.h
295,7 → 295,7
if(counter_write == 9) |
{ |
|
v_ecb.value.integer = vector_address[counter_write]; |
v_ecb.value.integer = ADDR_AES_CR; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
t_ecb.type = vpiScaledRealTime; |
411,7 → 411,21
v_ecb.value.integer = 1; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
//t_ecb.type = vpiScaledRealTime; |
//t_ecb.real = 10; |
//v_ecb.format=vpiIntVal; |
//v_ecb.value.integer = ADDR_AES_DOUTR; |
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
}else if(counter == 1) |
{ |
v_ecb.value.integer = 0; |
420,19 → 434,7
counter=0; |
} |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 10; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
break; |
/bfm_ctr/aes_bfm_decryption_ccfie_ctr.h
295,7 → 295,7
if(counter_write == 9) |
{ |
|
v_ecb.value.integer = vector_address[counter_write]; |
v_ecb.value.integer = ADDR_AES_CR; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
t_ecb.type = vpiScaledRealTime; |
405,6 → 405,10
v_ecb.value.integer = 0; |
vpi_put_value(PWRITE, &v_ecb, NULL, vpiNoDelay); |
|
v_ecb.value.integer = 0; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
/* |
if(counter == 0) |
{ |
|
421,19 → 425,20
|
counter=0; |
} |
*/ |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
vpi_get_value(int_ccf,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 10; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
//t_ecb.type = vpiScaledRealTime; |
//t_ecb.real = 10; |
//v_ecb.format=vpiIntVal; |
//v_ecb.value.integer = ADDR_AES_DOUTR; |
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
/bfm_ctr/aes_bfm_encryption_ctr.h
410,6 → 410,22
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
|
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
//t_ecb.type = vpiScaledRealTime; |
//t_ecb.real = 10; |
//v_ecb.format=vpiIntVal; |
//v_ecb.value.integer = ADDR_AES_DOUTR; |
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
}else if(counter == 1) |
{ |
v_ecb.value.integer = 0; |
418,19 → 434,6
counter=0; |
} |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 10; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
break; |
/bfm_ctr/aes_bfm_encryption_dma_ctr.h
416,7 → 416,21
v_ecb.value.integer = 1; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
//t_ecb.type = vpiScaledRealTime; |
//t_ecb.real = 10; |
//v_ecb.format=vpiIntVal; |
//v_ecb.value.integer = ADDR_AES_DOUTR; |
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
}else if(counter == 1) |
{ |
v_ecb.value.integer = 0; |
424,20 → 438,6
|
counter=0; |
} |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 10; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
break; |
/bfm_ctr/aes_bfm_key_generation_ccfie_ctr.h
296,7 → 296,7
if(counter_write == 9) |
{ |
|
v_ecb.value.integer = vector_address[counter_write]; |
v_ecb.value.integer = ADDR_AES_CR; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
t_ecb.type = vpiScaledRealTime; |
334,6 → 334,10
v_ecb.value.integer = 0; |
vpi_put_value(PWRITE, &v_ecb, NULL, vpiNoDelay); |
|
v_ecb.value.integer = 0; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
/* |
if(counter == 0) |
{ |
|
350,19 → 354,20
|
counter=0; |
} |
*/ |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
vpi_get_value(int_ccf,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_KEY_GEN; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 0; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
counter=1; |
//t_ecb.type = vpiScaledRealTime; |
//t_ecb.real = 0; |
//v_ecb.format=vpiIntVal; |
//v_ecb.value.integer = ADDR_AES_DOUTR; |
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
387,6 → 392,10
}else if(counter == 1) |
{ |
|
|
v_ecb.value.integer = 0; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
if(counter_read < 4) |
{ |
v_ecb.value.integer = ADDR_AES_DOUTR; |
442,12 → 451,6
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
v_ecb.value.integer = 0; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
v_ecb.value.integer = 0; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
counter = 0; |
} |
|
457,7 → 460,6
counter_write = 0; |
counter_read = 0; |
} |
|
break; |
|
case RESET_SR: |
/bfm_ctr/aes_bfm_derivation_decryption_ccfie_ctr.h
295,7 → 295,7
if(counter_write == 9) |
{ |
|
v_ecb.value.integer = vector_address[counter_write]; |
v_ecb.value.integer = ADDR_AES_CR; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
t_ecb.type = vpiScaledRealTime; |
421,17 → 421,18
} |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
vpi_get_value(int_ccf,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 10; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
counter=1; |
//t_ecb.type = vpiScaledRealTime; |
//t_ecb.real = 10; |
//v_ecb.format=vpiIntVal; |
//v_ecb.value.integer = ADDR_AES_DOUTR; |
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
/bfm_ctr/aes_bfm_decryption_ctr.h
295,7 → 295,7
if(counter_write == 9) |
{ |
|
v_ecb.value.integer = vector_address[counter_write]; |
v_ecb.value.integer = ADDR_AES_CR; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
t_ecb.type = vpiScaledRealTime; |
411,7 → 411,21
v_ecb.value.integer = 1; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
//t_ecb.type = vpiScaledRealTime; |
//t_ecb.real = 10; |
//v_ecb.format=vpiIntVal; |
//v_ecb.value.integer = ADDR_AES_DOUTR; |
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
}else if(counter == 1) |
{ |
v_ecb.value.integer = 0; |
420,19 → 434,7
counter=0; |
} |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 0; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
break; |
/bfm_ctr/aes_bfm_decryption_dma_ctr.h
296,7 → 296,7
if(counter_write == 9) |
{ |
|
v_ecb.value.integer = vector_address[counter_write]; |
v_ecb.value.integer = ADDR_AES_CR; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
t_ecb.type = vpiScaledRealTime; |
418,7 → 418,21
v_ecb.value.integer = 1; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
//t_ecb.type = vpiScaledRealTime; |
//t_ecb.real = 10; |
//v_ecb.format=vpiIntVal; |
//v_ecb.value.integer = ADDR_AES_DOUTR; |
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
}else if(counter == 1) |
{ |
v_ecb.value.integer = 0; |
427,19 → 441,7
counter=0; |
} |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 10; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
break; |
/bfm_ctr/aes_bfm_encryption_ccfie_ctr.h
397,6 → 397,10
v_ecb.value.integer = 0; |
vpi_put_value(PWRITE, &v_ecb, NULL, vpiNoDelay); |
|
v_ecb.value.integer = 0; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
/* |
if(counter == 0) |
{ |
|
413,19 → 417,20
|
counter=0; |
} |
|
*/ |
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
vpi_get_value(int_ccf,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 10; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
counter=1; |
//t_ecb.type = vpiScaledRealTime; |
//t_ecb.real = 10; |
//v_ecb.format=vpiIntVal; |
//v_ecb.value.integer = ADDR_AES_DOUTR; |
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
/bfm_ctr/aes_bfm_key_generation_ctr.h
342,6 → 342,21
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_KEY_GEN; |
|
//t_ecb.type = vpiScaledRealTime; |
//t_ecb.real = 0; |
//v_ecb.format=vpiIntVal; |
//v_ecb.value.integer = ADDR_AES_DOUTR; |
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
}else if(counter == 1) |
{ |
v_ecb.value.integer = 0; |
350,19 → 365,7
counter=0; |
} |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_KEY_GEN; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 0; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
break; |
/bfm_ctr/aes_bfm_derivation_decryption_ctr.h
295,7 → 295,7
if(counter_write == 9) |
{ |
|
v_ecb.value.integer = vector_address[counter_write]; |
v_ecb.value.integer = ADDR_AES_CR; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
t_ecb.type = vpiScaledRealTime; |
412,7 → 412,21
v_ecb.value.integer = 1; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
//t_ecb.type = vpiScaledRealTime; |
//t_ecb.real = 10; |
//v_ecb.format=vpiIntVal; |
//v_ecb.value.integer = ADDR_AES_DOUTR; |
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
}else if(counter == 1) |
{ |
v_ecb.value.integer = 0; |
421,19 → 435,7
counter=0; |
} |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 10; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
break; |
/bfm_ctr/aes_bfm_key_generation_dma_ctr.h
296,7 → 296,7
if(counter_write == 9) |
{ |
|
v_ecb.value.integer = vector_address[counter_write]; |
v_ecb.value.integer = ADDR_AES_CR; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
t_ecb.type = vpiScaledRealTime; |
342,7 → 342,21
v_ecb.value.integer = 1; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_KEY_GEN; |
|
//t_ecb.type = vpiScaledRealTime; |
//t_ecb.real = 0; |
//v_ecb.format=vpiIntVal; |
//v_ecb.value.integer = ADDR_AES_DOUTR; |
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
}else if(counter == 1) |
{ |
v_ecb.value.integer = 0; |
351,19 → 365,7
counter=0; |
} |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_KEY_GEN; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 0; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
break; |
387,6 → 389,10
}else if(counter == 1) |
{ |
|
|
v_ecb.value.integer = 0; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
if(counter_read < 4) |
{ |
v_ecb.value.integer = ADDR_AES_DOUTR; |
442,9 → 448,6
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
v_ecb.value.integer = 0; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
counter = 0; |
} |
|
/bfm_ecb/aes_bfm_derivation_decryption_ecb.h
361,6 → 361,18
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
//printf("CYCLES TAKEN:%d\n", cycle_counter); |
cycle_counter=0; |
} |
|
|
}else if(counter == 1) |
{ |
v_ecb.value.integer = 0; |
369,21 → 381,9
counter=0; |
} |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
//cycle_counter++; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 0; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
break; |
|
|
/bfm_ecb/aes_bfm_key_generation_dma_ecb.h
291,6 → 291,15
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_KEY_GEN; |
} |
|
|
}else if(counter == 1) |
{ |
v_ecb.value.integer = 0; |
298,20 → 307,6
|
counter=0; |
} |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_KEY_GEN; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 10; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_KEYR3; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
break; |
335,79 → 330,68
}else if(counter == 1) |
{ |
|
if(counter_read == 0) |
v_ecb.value.integer = 0; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
if(counter_read < 4) |
{ |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
if(counter_read == 4) |
{ |
v_ecb.value.integer = ADDR_AES_KEYR3; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
|
if(counter_read == 1) |
if(counter_read == 5) |
{ |
v_ecb.value.integer = ADDR_AES_KEYR2; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
|
if(counter_read == 2) |
if(counter_read == 6) |
{ |
v_ecb.value.integer = ADDR_AES_KEYR1; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
if(counter_read == 3) |
if(counter_read == 7) |
{ |
v_ecb.value.integer = ADDR_AES_KEYR0; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
if(counter_read == 4) |
|
if(counter_read == 8) |
{ |
|
v_ecb.value.integer = ADDR_AES_IVR3; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
|
if(counter_read == 5) |
if(counter_read == 9) |
{ |
|
v_ecb.value.integer = ADDR_AES_IVR2; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
|
|
if(counter_read == 6) |
if(counter_read == 10) |
{ |
|
v_ecb.value.integer = ADDR_AES_IVR1; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
|
if(counter_read == 7) |
if(counter_read == 11) |
{ |
|
v_ecb.value.integer = ADDR_AES_IVR0; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
v_ecb.value.integer = 0; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
counter = 0; |
} |
|
if(counter_read == 8) |
if(counter_read == 12) |
{ |
STATE = RESET_SR; |
counter_write = 0; |
/bfm_ecb/aes_bfm_derivation_decryption_dma_ecb.h
361,6 → 361,16
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
} |
|
|
}else if(counter == 1) |
{ |
v_ecb.value.integer = 0; |
369,19 → 379,6
counter=0; |
} |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 0; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
break; |
/bfm_ecb/aes_bfm_decryption_ccfie_ecb.h
340,11 → 340,6
counter_write = 0; |
|
STATE =WAIT_SR; |
|
|
|
|
|
} |
|
break; |
357,6 → 352,10
v_ecb.value.integer = 0; |
vpi_put_value(PWRITE, &v_ecb, NULL, vpiNoDelay); |
|
v_ecb.value.integer = 0; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
/* |
if(counter == 0) |
{ |
|
373,19 → 372,14
|
counter=0; |
} |
|
*/ |
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
vpi_get_value(int_ccf,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 0; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
counter=1; |
} |
|
|
/bfm_ecb/aes_bfm_encryption_ecb.h
248,7 → 248,7
}else if(counter_write == 9)//ENABLE CR |
{ |
|
v_ecb.value.integer = vector_address[counter_write]; |
v_ecb.value.integer = ADDR_AES_CR; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
v_ecb.value.integer = 1; |
357,6 → 357,24
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
//printf("CYCLES TAKEN:%d\n", cycle_counter); |
cycle_counter=0; |
//t_ecb.type = vpiScaledRealTime; |
//t_ecb.real = 0; |
//v_ecb.format=vpiIntVal; |
//v_ecb.value.integer = ADDR_AES_DOUTR; |
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
}else if(counter == 1) |
{ |
v_ecb.value.integer = 0; |
365,21 → 383,9
counter=0; |
} |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
//cycle_counter++; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 10; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
break; |
|
|
/bfm_ecb/aes_bfm_encryption_dma_ecb.h
365,7 → 365,21
v_ecb.value.integer = 1; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
//t_ecb.type = vpiScaledRealTime; |
//t_ecb.real = 0; |
//v_ecb.format=vpiIntVal; |
//v_ecb.value.integer = ADDR_AES_DOUTR; |
//vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
}else if(counter == 1) |
{ |
v_ecb.value.integer = 0; |
372,20 → 386,7
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
counter=0; |
} |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 10; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
/bfm_ecb/aes_bfm_key_generation_ccfie_ecb.h
282,6 → 282,10
v_ecb.value.integer = 0; |
vpi_put_value(PWRITE, &v_ecb, NULL, vpiNoDelay); |
|
v_ecb.value.integer = 0; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
/* |
if(counter == 0) |
{ |
|
299,18 → 303,16
counter=0; |
} |
|
*/ |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
vpi_get_value(int_ccf,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_KEY_GEN; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 10; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_KEYR3; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
counter=1; |
} |
|
|
335,79 → 337,68
}else if(counter == 1) |
{ |
|
if(counter_read == 0) |
v_ecb.value.integer = 0; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
if(counter_read < 4) |
{ |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
if(counter_read == 4) |
{ |
v_ecb.value.integer = ADDR_AES_KEYR3; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
|
if(counter_read == 1) |
if(counter_read == 5) |
{ |
v_ecb.value.integer = ADDR_AES_KEYR2; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
|
if(counter_read == 2) |
if(counter_read == 6) |
{ |
v_ecb.value.integer = ADDR_AES_KEYR1; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
if(counter_read == 3) |
if(counter_read == 7) |
{ |
v_ecb.value.integer = ADDR_AES_KEYR0; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
if(counter_read == 4) |
|
if(counter_read == 8) |
{ |
|
v_ecb.value.integer = ADDR_AES_IVR3; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
|
if(counter_read == 5) |
if(counter_read == 9) |
{ |
|
v_ecb.value.integer = ADDR_AES_IVR2; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
|
|
if(counter_read == 6) |
if(counter_read == 10) |
{ |
|
v_ecb.value.integer = ADDR_AES_IVR1; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
|
if(counter_read == 7) |
if(counter_read == 11) |
{ |
|
v_ecb.value.integer = ADDR_AES_IVR0; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
v_ecb.value.integer = 0; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
counter = 0; |
} |
|
if(counter_read == 8) |
if(counter_read == 12) |
{ |
STATE = RESET_SR; |
counter_write = 0; |
/bfm_ecb/aes_bfm_derivation_decryption_ccfie_ecb.h
352,6 → 352,10
v_ecb.value.integer = 0; |
vpi_put_value(PWRITE, &v_ecb, NULL, vpiNoDelay); |
|
v_ecb.value.integer = 0; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
/* |
if(counter == 0) |
{ |
|
368,19 → 372,16
|
counter=0; |
} |
*/ |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
vpi_get_value(int_ccf,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 0; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
counter=1; |
} |
|
|
/bfm_ecb/aes_bfm_decryption_ecb.h
243,7 → 243,7
if(counter_write == 9) |
{ |
|
v_ecb.value.integer = vector_address[counter_write]; |
v_ecb.value.integer = ADDR_AES_CR; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
t_ecb.type = vpiScaledRealTime; |
366,6 → 366,16
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
counter=1; |
} |
|
|
}else if(counter == 1) |
{ |
v_ecb.value.integer = 0; |
374,19 → 384,7
counter=0; |
} |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 0; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
break; |
/bfm_ecb/aes_bfm_decryption_dma_ecb.h
140,17 → 140,40
break; |
|
case WRITE: |
|
|
if(counter == 0) |
{ |
|
|
counter_write++; |
counter++; |
|
v_ecb.value.integer = 1; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
if(counter_write == 10 || counter_write == 11 || counter_write == 12 || counter_write == 13 ) |
{ |
|
v_ecb.value.integer = 0; |
vpi_get_value(dma_req_wr,&v_ecb); |
|
|
if(v_ecb.value.integer == 1) |
{ |
v_ecb.value.integer = 1; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
counter_write++; |
counter++; |
} |
|
} |
|
if(counter_write < 10) |
{ |
counter_write++; |
counter++; |
|
v_ecb.value.integer = 1; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
} |
|
}else if(counter == 1) |
{ |
|
341,10 → 364,6
|
STATE =WAIT_SR; |
|
|
|
|
|
} |
|
break; |
366,6 → 385,16
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
counter=1; |
} |
|
|
}else if(counter == 1) |
{ |
v_ecb.value.integer = 0; |
373,20 → 402,6
|
counter=0; |
} |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 0; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
break; |
/bfm_ecb/aes_bfm_encryption_ccfie_ecb.h
248,7 → 248,7
}else if(counter_write == 9)//ENABLE CR |
{ |
|
v_ecb.value.integer = vector_address[counter_write]; |
v_ecb.value.integer = ADDR_AES_CR; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
v_ecb.value.integer = 513; |
342,6 → 342,7
|
case WAIT_SR: |
|
|
v_ecb.value.integer = ADDR_AES_SR; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
348,9 → 349,12
v_ecb.value.integer = 0; |
vpi_put_value(PWRITE, &v_ecb, NULL, vpiNoDelay); |
|
v_ecb.value.integer = 0; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
/* |
if(counter == 0) |
{ |
|
counter++; |
|
v_ecb.value.integer = 1; |
363,20 → 367,18
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
counter=0; |
|
} |
|
*/ |
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
vpi_get_value(int_ccf,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_DOUTR; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 10; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
counter=1; |
|
} |
|
|
/bfm_ecb/aes_bfm_key_generation_ecb.h
243,7 → 243,7
if(counter_write == 9) |
{ |
|
v_ecb.value.integer = vector_address[counter_write]; |
v_ecb.value.integer = ADDR_AES_CR; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
t_ecb.type = vpiScaledRealTime; |
267,8 → 267,6
counter_read = 0; |
|
STATE =WAIT_SR; |
|
|
} |
|
break; |
290,6 → 288,18
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_KEY_GEN; |
|
|
counter=1; |
} |
|
|
}else if(counter == 1) |
{ |
v_ecb.value.integer = 0; |
298,19 → 308,6
counter=0; |
} |
|
v_ecb.value.integer = 0; |
vpi_get_value(PRDATA,&v_ecb); |
|
if(v_ecb.value.integer == 1) |
{ |
STATE = READ_KEY_GEN; |
|
t_ecb.type = vpiScaledRealTime; |
t_ecb.real = 10; |
v_ecb.format=vpiIntVal; |
v_ecb.value.integer = ADDR_AES_KEYR3; |
vpi_put_value(PADDR, &v_ecb, &t_ecb, vpiTransportDelay); |
} |
|
|
break; |
334,79 → 331,68
}else if(counter == 1) |
{ |
|
if(counter_read == 0) |
v_ecb.value.integer = 0; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
if(counter_read < 4) |
{ |
v_ecb.value.integer = ADDR_AES_DOUTR; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
if(counter_read == 4) |
{ |
v_ecb.value.integer = ADDR_AES_KEYR3; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
|
if(counter_read == 1) |
if(counter_read == 5) |
{ |
v_ecb.value.integer = ADDR_AES_KEYR2; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
|
if(counter_read == 2) |
if(counter_read == 6) |
{ |
v_ecb.value.integer = ADDR_AES_KEYR1; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
if(counter_read == 3) |
if(counter_read == 7) |
{ |
v_ecb.value.integer = ADDR_AES_KEYR0; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
if(counter_read == 4) |
|
if(counter_read == 8) |
{ |
|
v_ecb.value.integer = ADDR_AES_IVR3; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
|
if(counter_read == 5) |
if(counter_read == 9) |
{ |
|
v_ecb.value.integer = ADDR_AES_IVR2; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
|
|
if(counter_read == 6) |
if(counter_read == 10) |
{ |
|
v_ecb.value.integer = ADDR_AES_IVR1; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
|
if(counter_read == 7) |
if(counter_read == 11) |
{ |
|
v_ecb.value.integer = ADDR_AES_IVR0; |
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
|
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay); |
} |
|
v_ecb.value.integer = 0; |
vpi_put_value(PENABLE, &v_ecb, NULL, vpiNoDelay); |
|
counter = 0; |
} |
|
if(counter_read == 8) |
if(counter_read == 12) |
{ |
STATE = RESET_SR; |
counter_write = 0; |