OpenCores
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/bfm_ctr
    from Rev 9 to Rev 12
    Reverse comparison

Rev 9 → Rev 12

/aes_bfm_derivation_decryption_dma_ctr.h
295,14 → 295,38
if(counter_write == 9)
{
 
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
if(DATATYPE == TYPE_00)// NO DINR DOUTR SWAP DATA
{
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 = 6233;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
v_ecb.value.integer = 6233;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
 
}else if(DATATYPE == TYPE_01)// 16 BIT DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 6235;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
 
}else if(DATATYPE == TYPE_02)// 8 BIT DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 6237;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
 
}else if(DATATYPE == TYPE_03)// BIT DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 6239;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
}
}
 
317,50 → 341,209
if(FIPS_ENABLE == FIPS)
{
 
if(counter_write == 10)
if(DATATYPE == TYPE_00)
{
a = a | TEXT_CTR_FIPS_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
if(counter_write == 10)
{
a = a | TEXT_CTR_FIPS_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
{
b = b | TEXT_CTR_FIPS_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 12 )
{
 
c = c | TEXT_CTR_FIPS_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_CTR_FIPS_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
}else if(DATATYPE == TYPE_01)
{
b = b | TEXT_CTR_FIPS_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 12 )
 
if(counter_write == 10)
{
a = a | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
{
b = b | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 12 )
{
 
c = c | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
}else if(DATATYPE == TYPE_02)
{
if(counter_write == 10)
{
a = a | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[3];
v_ecb.value.integer = a;
 
c = c | TEXT_CTR_FIPS_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[11];
v_ecb.value.integer = c;
}else if(counter_write == 11)
{
b = b | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 13 )
}else if(counter_write == 12 )
{
 
c = c | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
 
 
}else if(DATATYPE == TYPE_03)
{
d = d | TEXT_CTR_FIPS_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[15];
v_ecb.value.integer = d;
if(counter_write == 10)
{
a = a | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
{
b = b | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 12 )
{
 
c = c | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
 
 
}
 
 
/aes_bfm_decryption_ccfie_ctr.h
295,14 → 295,38
if(counter_write == 9)
{
 
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
if(DATATYPE == TYPE_00)// NO DINR DOUTR SWAP DATA
{
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 = 593;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
v_ecb.value.integer = 593;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
 
}else if(DATATYPE == TYPE_01)// 16 BIT DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 595;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
 
}else if(DATATYPE == TYPE_02)// 8 BIT DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 597;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
 
}else if(DATATYPE == TYPE_03)// BIT DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 599;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
}
}
 
317,51 → 341,209
if(FIPS_ENABLE == FIPS)
{
 
if(counter_write == 10)
if(DATATYPE == TYPE_00)
{
a = a | TEXT_CTR_FIPS_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
if(counter_write == 10)
{
a = a | TEXT_CTR_FIPS_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
{
b = b | TEXT_CTR_FIPS_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 12 )
{
 
c = c | TEXT_CTR_FIPS_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_CTR_FIPS_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
}else if(DATATYPE == TYPE_01)
{
b = b | TEXT_CTR_FIPS_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 12 )
 
if(counter_write == 10)
{
a = a | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
{
b = b | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 12 )
{
 
c = c | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
}else if(DATATYPE == TYPE_02)
{
if(counter_write == 10)
{
a = a | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[3];
v_ecb.value.integer = a;
 
c = c | TEXT_CTR_FIPS_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[11];
v_ecb.value.integer = c;
}else if(counter_write == 11)
{
b = b | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 13 )
}else if(counter_write == 12 )
{
 
c = c | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
 
 
}else if(DATATYPE == TYPE_03)
{
d = d | TEXT_CTR_FIPS_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[15];
v_ecb.value.integer = d;
if(counter_write == 10)
{
a = a | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
{
b = b | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 12 )
{
 
c = c | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
 
 
}
 
 
/aes_bfm_encryption_ctr.h
301,11 → 301,38
}else if(counter_write == 9)//ENABLE CR
{
 
v_ecb.value.integer = vector_address[counter_write];
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
if(DATATYPE == TYPE_00)// NO DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 65;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
v_ecb.value.integer = 65;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
 
}else if(DATATYPE == TYPE_01)// 16 BIT DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 67;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
 
}else if(DATATYPE == TYPE_02)// 8 BIT DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 69;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
 
}else if(DATATYPE == TYPE_03)// BIT DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 71;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
}
}else if(counter_write > 9 && counter_write < 14) //WRITE DINR
{
317,51 → 344,107
if(FIPS_ENABLE == FIPS)
{
 
if(counter_write == 10)
if(DATATYPE == TYPE_00)
{
a = a | TEXT_FIPS_CTR_NOT_DERIVATED[0];
a = a << 8;
a = a | TEXT_FIPS_CTR_NOT_DERIVATED[1];
a = a << 8;
a = a | TEXT_FIPS_CTR_NOT_DERIVATED[2];
a = a << 8;
a = a | TEXT_FIPS_CTR_NOT_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
{
b = b | TEXT_FIPS_CTR_NOT_DERIVATED[4];
b = b << 8;
b = b | TEXT_FIPS_CTR_NOT_DERIVATED[5];
b = b << 8;
b = b | TEXT_FIPS_CTR_NOT_DERIVATED[6];
b = b << 8;
b = b | TEXT_FIPS_CTR_NOT_DERIVATED[7];
v_ecb.value.integer = b;
if(counter_write == 10)
{
a = a | TEXT_FIPS_CTR_NOT_DERIVATED[0];
a = a << 8;
a = a | TEXT_FIPS_CTR_NOT_DERIVATED[1];
a = a << 8;
a = a | TEXT_FIPS_CTR_NOT_DERIVATED[2];
a = a << 8;
a = a | TEXT_FIPS_CTR_NOT_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 12 )
{
}else if(counter_write == 11)
{
b = b | TEXT_FIPS_CTR_NOT_DERIVATED[4];
b = b << 8;
b = b | TEXT_FIPS_CTR_NOT_DERIVATED[5];
b = b << 8;
b = b | TEXT_FIPS_CTR_NOT_DERIVATED[6];
b = b << 8;
b = b | TEXT_FIPS_CTR_NOT_DERIVATED[7];
v_ecb.value.integer = b;
 
c = c | TEXT_FIPS_CTR_NOT_DERIVATED[8];
c = c << 8;
c = c | TEXT_FIPS_CTR_NOT_DERIVATED[9];
c = c << 8;
c = c | TEXT_FIPS_CTR_NOT_DERIVATED[10];
c = c << 8;
c = c | TEXT_FIPS_CTR_NOT_DERIVATED[11];
v_ecb.value.integer = c;
}else if(counter_write == 12 )
{
 
}else if(counter_write == 13 )
c = c | TEXT_FIPS_CTR_NOT_DERIVATED[8];
c = c << 8;
c = c | TEXT_FIPS_CTR_NOT_DERIVATED[9];
c = c << 8;
c = c | TEXT_FIPS_CTR_NOT_DERIVATED[10];
c = c << 8;
c = c | TEXT_FIPS_CTR_NOT_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_FIPS_CTR_NOT_DERIVATED[12];
d = d << 8;
d = d | TEXT_FIPS_CTR_NOT_DERIVATED[13];
d = d << 8;
d = d | TEXT_FIPS_CTR_NOT_DERIVATED[14];
d = d << 8;
d = d | TEXT_FIPS_CTR_NOT_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
}else if(DATATYPE > TYPE_00)
{
d = d | TEXT_FIPS_CTR_NOT_DERIVATED[12];
d = d << 8;
d = d | TEXT_FIPS_CTR_NOT_DERIVATED[13];
d = d << 8;
d = d | TEXT_FIPS_CTR_NOT_DERIVATED[14];
d = d << 8;
d = d | TEXT_FIPS_CTR_NOT_DERIVATED[15];
v_ecb.value.integer = d;
 
 
if(counter_write == 10)
{
a = a | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[0];
a = a << 8;
a = a | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[1];
a = a << 8;
a = a | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[2];
a = a << 8;
a = a | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
{
b = b | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[4];
b = b << 8;
b = b | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[5];
b = b << 8;
b = b | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[6];
b = b << 8;
b = b | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 12 )
{
 
c = c | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[8];
c = c << 8;
c = c | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[9];
c = c << 8;
c = c | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[10];
c = c << 8;
c = c | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[12];
d = d << 8;
d = d | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[13];
d = d << 8;
d = d | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[14];
d = d << 8;
d = d | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
}
 
 
/aes_bfm_encryption_dma_ctr.h
302,14 → 302,38
}else if(counter_write == 9)//ENABLE CR
{
 
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
if(DATATYPE == TYPE_00)// NO DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
//v_ecb.value.integer = 1;
//vpi_put_value(PWDATA, &v_ecb, NULL, vpiNoDelay);
v_ecb.value.integer = 6209;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
 
v_ecb.value.integer = 6209;//data_in(rd);
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
}else if(DATATYPE == TYPE_01)// 16 BIT DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 6211;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
 
}else if(DATATYPE == TYPE_02)// 8 BIT DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 6213;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
 
}else if(DATATYPE == TYPE_03)// BIT DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 6215;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
}
}else if(counter_write > 9 && counter_write < 14) //WRITE DINR
{
321,54 → 345,109
if(FIPS_ENABLE == FIPS)
{
 
if(counter_write == 10)
if(DATATYPE == TYPE_00)
{
a = a | TEXT_FIPS_CTR_NOT_DERIVATED[0];
a = a << 8;
a = a | TEXT_FIPS_CTR_NOT_DERIVATED[1];
a = a << 8;
a = a | TEXT_FIPS_CTR_NOT_DERIVATED[2];
a = a << 8;
a = a | TEXT_FIPS_CTR_NOT_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
{
b = b | TEXT_FIPS_CTR_NOT_DERIVATED[4];
b = b << 8;
b = b | TEXT_FIPS_CTR_NOT_DERIVATED[5];
b = b << 8;
b = b | TEXT_FIPS_CTR_NOT_DERIVATED[6];
b = b << 8;
b = b | TEXT_FIPS_CTR_NOT_DERIVATED[7];
v_ecb.value.integer = b;
if(counter_write == 10)
{
a = a | TEXT_FIPS_CTR_NOT_DERIVATED[0];
a = a << 8;
a = a | TEXT_FIPS_CTR_NOT_DERIVATED[1];
a = a << 8;
a = a | TEXT_FIPS_CTR_NOT_DERIVATED[2];
a = a << 8;
a = a | TEXT_FIPS_CTR_NOT_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 12 )
{
}else if(counter_write == 11)
{
b = b | TEXT_FIPS_CTR_NOT_DERIVATED[4];
b = b << 8;
b = b | TEXT_FIPS_CTR_NOT_DERIVATED[5];
b = b << 8;
b = b | TEXT_FIPS_CTR_NOT_DERIVATED[6];
b = b << 8;
b = b | TEXT_FIPS_CTR_NOT_DERIVATED[7];
v_ecb.value.integer = b;
 
c = c | TEXT_FIPS_CTR_NOT_DERIVATED[8];
c = c << 8;
c = c | TEXT_FIPS_CTR_NOT_DERIVATED[9];
c = c << 8;
c = c | TEXT_FIPS_CTR_NOT_DERIVATED[10];
c = c << 8;
c = c | TEXT_FIPS_CTR_NOT_DERIVATED[11];
v_ecb.value.integer = c;
}else if(counter_write == 12 )
{
 
}else if(counter_write == 13 )
c = c | TEXT_FIPS_CTR_NOT_DERIVATED[8];
c = c << 8;
c = c | TEXT_FIPS_CTR_NOT_DERIVATED[9];
c = c << 8;
c = c | TEXT_FIPS_CTR_NOT_DERIVATED[10];
c = c << 8;
c = c | TEXT_FIPS_CTR_NOT_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_FIPS_CTR_NOT_DERIVATED[12];
d = d << 8;
d = d | TEXT_FIPS_CTR_NOT_DERIVATED[13];
d = d << 8;
d = d | TEXT_FIPS_CTR_NOT_DERIVATED[14];
d = d << 8;
d = d | TEXT_FIPS_CTR_NOT_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
}else if(DATATYPE > TYPE_00)
{
d = d | TEXT_FIPS_CTR_NOT_DERIVATED[12];
d = d << 8;
d = d | TEXT_FIPS_CTR_NOT_DERIVATED[13];
d = d << 8;
d = d | TEXT_FIPS_CTR_NOT_DERIVATED[14];
d = d << 8;
d = d | TEXT_FIPS_CTR_NOT_DERIVATED[15];
v_ecb.value.integer = d;
 
 
if(counter_write == 10)
{
a = a | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[0];
a = a << 8;
a = a | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[1];
a = a << 8;
a = a | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[2];
a = a << 8;
a = a | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
{
b = b | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[4];
b = b << 8;
b = b | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[5];
b = b << 8;
b = b | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[6];
b = b << 8;
b = b | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 12 )
{
 
c = c | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[8];
c = c << 8;
c = c | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[9];
c = c << 8;
c = c | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[10];
c = c << 8;
c = c | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[12];
d = d << 8;
d = d | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[13];
d = d << 8;
d = d | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[14];
d = d << 8;
d = d | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
}
 
 
}else if(FIPS_ENABLE == RANDOM_DATA)
{
v_ecb.value.integer = data_in(rd);
/aes_bfm_derivation_decryption_ccfie_ctr.h
295,14 → 295,38
if(counter_write == 9)
{
 
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
if(DATATYPE == TYPE_00)// NO DINR DOUTR SWAP DATA
{
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 = 601;//data_in(rd);
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
v_ecb.value.integer = 601;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
 
}else if(DATATYPE == TYPE_01)// 16 BIT DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 603;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
 
}else if(DATATYPE == TYPE_02)// 8 BIT DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 605;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
 
}else if(DATATYPE == TYPE_03)// BIT DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 607;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
}
}
 
317,53 → 341,213
if(FIPS_ENABLE == FIPS)
{
 
if(counter_write == 10)
if(DATATYPE == TYPE_00)
{
a = a | TEXT_CTR_FIPS_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
if(counter_write == 10)
{
a = a | TEXT_CTR_FIPS_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
{
b = b | TEXT_CTR_FIPS_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 12 )
{
 
c = c | TEXT_CTR_FIPS_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_CTR_FIPS_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
}else if(DATATYPE == TYPE_01)
{
b = b | TEXT_CTR_FIPS_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 12 )
 
if(counter_write == 10)
{
a = a | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
{
b = b | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 12 )
{
 
c = c | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
}else if(DATATYPE == TYPE_02)
{
if(counter_write == 10)
{
a = a | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[3];
v_ecb.value.integer = a;
 
c = c | TEXT_CTR_FIPS_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[11];
v_ecb.value.integer = c;
}else if(counter_write == 11)
{
b = b | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 13 )
}else if(counter_write == 12 )
{
 
c = c | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
 
 
}else if(DATATYPE == TYPE_03)
{
d = d | TEXT_CTR_FIPS_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[15];
v_ecb.value.integer = d;
if(counter_write == 10)
{
a = a | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
{
b = b | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 12 )
{
 
c = c | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
 
 
}
 
 
 
}else if(FIPS_ENABLE == RANDOM_DATA)
{
v_ecb.value.integer = data_in(rd);
/aes_bfm_decryption_ctr.h
295,14 → 295,38
if(counter_write == 9)
{
 
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
if(DATATYPE == TYPE_00)// NO DINR DOUTR SWAP DATA
{
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 = 81;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
v_ecb.value.integer = 81;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
 
}else if(DATATYPE == TYPE_01)// 16 BIT DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 83;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
 
}else if(DATATYPE == TYPE_02)// 8 BIT DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 85;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
 
}else if(DATATYPE == TYPE_03)// BIT DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 87;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
}
}
 
317,51 → 341,209
if(FIPS_ENABLE == FIPS)
{
 
if(counter_write == 10)
if(DATATYPE == TYPE_00)
{
a = a | TEXT_CTR_FIPS_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
if(counter_write == 10)
{
a = a | TEXT_CTR_FIPS_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
{
b = b | TEXT_CTR_FIPS_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 12 )
{
 
c = c | TEXT_CTR_FIPS_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_CTR_FIPS_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
}else if(DATATYPE == TYPE_01)
{
b = b | TEXT_CTR_FIPS_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 12 )
 
if(counter_write == 10)
{
a = a | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
{
b = b | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 12 )
{
 
c = c | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
}else if(DATATYPE == TYPE_02)
{
if(counter_write == 10)
{
a = a | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[3];
v_ecb.value.integer = a;
 
c = c | TEXT_CTR_FIPS_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[11];
v_ecb.value.integer = c;
}else if(counter_write == 11)
{
b = b | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 13 )
}else if(counter_write == 12 )
{
 
c = c | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
 
 
}else if(DATATYPE == TYPE_03)
{
d = d | TEXT_CTR_FIPS_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[15];
v_ecb.value.integer = d;
if(counter_write == 10)
{
a = a | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
{
b = b | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 12 )
{
 
c = c | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
 
 
}
 
 
/aes_bfm_decryption_dma_ctr.h
296,14 → 296,38
if(counter_write == 9)
{
 
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
if(DATATYPE == TYPE_00)// NO DINR DOUTR SWAP DATA
{
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 = 6225;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
v_ecb.value.integer = 6225;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
 
}else if(DATATYPE == TYPE_01)// 16 BIT DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 6227;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
 
}else if(DATATYPE == TYPE_02)// 8 BIT DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 6229;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
 
}else if(DATATYPE == TYPE_03)// BIT DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 6231;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
}
}
 
318,51 → 342,209
if(FIPS_ENABLE == FIPS)
{
 
if(counter_write == 10)
if(DATATYPE == TYPE_00)
{
a = a | TEXT_CTR_FIPS_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
if(counter_write == 10)
{
a = a | TEXT_CTR_FIPS_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
{
b = b | TEXT_CTR_FIPS_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 12 )
{
 
c = c | TEXT_CTR_FIPS_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_CTR_FIPS_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
}else if(DATATYPE == TYPE_01)
{
b = b | TEXT_CTR_FIPS_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 12 )
 
if(counter_write == 10)
{
a = a | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
{
b = b | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 12 )
{
 
c = c | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
}else if(DATATYPE == TYPE_02)
{
if(counter_write == 10)
{
a = a | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[3];
v_ecb.value.integer = a;
 
c = c | TEXT_CTR_FIPS_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[11];
v_ecb.value.integer = c;
}else if(counter_write == 11)
{
b = b | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 13 )
}else if(counter_write == 12 )
{
 
c = c | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
 
 
}else if(DATATYPE == TYPE_03)
{
d = d | TEXT_CTR_FIPS_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[15];
v_ecb.value.integer = d;
if(counter_write == 10)
{
a = a | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
{
b = b | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 12 )
{
 
c = c | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
 
 
}
 
 
/aes_bfm_encryption_ccfie_ctr.h
297,11 → 297,38
}else if(counter_write == 9)//ENABLE CR
{
 
v_ecb.value.integer = vector_address[counter_write];
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
if(DATATYPE == TYPE_00)// NO DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 577;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
v_ecb.value.integer = 577;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
 
}else if(DATATYPE == TYPE_01)// 16 BIT DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 579;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
 
}else if(DATATYPE == TYPE_02)// 8 BIT DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 581;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
 
}else if(DATATYPE == TYPE_03)// BIT DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 583;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
}
}else if(counter_write > 9 && counter_write < 14) //WRITE DINR
{
313,51 → 340,107
if(FIPS_ENABLE == FIPS)
{
 
if(counter_write == 10)
if(DATATYPE == TYPE_00)
{
a = a | TEXT_FIPS_CTR_NOT_DERIVATED[0];
a = a << 8;
a = a | TEXT_FIPS_CTR_NOT_DERIVATED[1];
a = a << 8;
a = a | TEXT_FIPS_CTR_NOT_DERIVATED[2];
a = a << 8;
a = a | TEXT_FIPS_CTR_NOT_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
{
b = b | TEXT_FIPS_CTR_NOT_DERIVATED[4];
b = b << 8;
b = b | TEXT_FIPS_CTR_NOT_DERIVATED[5];
b = b << 8;
b = b | TEXT_FIPS_CTR_NOT_DERIVATED[6];
b = b << 8;
b = b | TEXT_FIPS_CTR_NOT_DERIVATED[7];
v_ecb.value.integer = b;
if(counter_write == 10)
{
a = a | TEXT_FIPS_CTR_NOT_DERIVATED[0];
a = a << 8;
a = a | TEXT_FIPS_CTR_NOT_DERIVATED[1];
a = a << 8;
a = a | TEXT_FIPS_CTR_NOT_DERIVATED[2];
a = a << 8;
a = a | TEXT_FIPS_CTR_NOT_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 12 )
{
}else if(counter_write == 11)
{
b = b | TEXT_FIPS_CTR_NOT_DERIVATED[4];
b = b << 8;
b = b | TEXT_FIPS_CTR_NOT_DERIVATED[5];
b = b << 8;
b = b | TEXT_FIPS_CTR_NOT_DERIVATED[6];
b = b << 8;
b = b | TEXT_FIPS_CTR_NOT_DERIVATED[7];
v_ecb.value.integer = b;
 
c = c | TEXT_FIPS_CTR_NOT_DERIVATED[8];
c = c << 8;
c = c | TEXT_FIPS_CTR_NOT_DERIVATED[9];
c = c << 8;
c = c | TEXT_FIPS_CTR_NOT_DERIVATED[10];
c = c << 8;
c = c | TEXT_FIPS_CTR_NOT_DERIVATED[11];
v_ecb.value.integer = c;
}else if(counter_write == 12 )
{
 
}else if(counter_write == 13 )
c = c | TEXT_FIPS_CTR_NOT_DERIVATED[8];
c = c << 8;
c = c | TEXT_FIPS_CTR_NOT_DERIVATED[9];
c = c << 8;
c = c | TEXT_FIPS_CTR_NOT_DERIVATED[10];
c = c << 8;
c = c | TEXT_FIPS_CTR_NOT_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_FIPS_CTR_NOT_DERIVATED[12];
d = d << 8;
d = d | TEXT_FIPS_CTR_NOT_DERIVATED[13];
d = d << 8;
d = d | TEXT_FIPS_CTR_NOT_DERIVATED[14];
d = d << 8;
d = d | TEXT_FIPS_CTR_NOT_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
}else if(DATATYPE > TYPE_00)
{
d = d | TEXT_FIPS_CTR_NOT_DERIVATED[12];
d = d << 8;
d = d | TEXT_FIPS_CTR_NOT_DERIVATED[13];
d = d << 8;
d = d | TEXT_FIPS_CTR_NOT_DERIVATED[14];
d = d << 8;
d = d | TEXT_FIPS_CTR_NOT_DERIVATED[15];
v_ecb.value.integer = d;
 
 
if(counter_write == 10)
{
a = a | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[0];
a = a << 8;
a = a | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[1];
a = a << 8;
a = a | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[2];
a = a << 8;
a = a | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
{
b = b | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[4];
b = b << 8;
b = b | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[5];
b = b << 8;
b = b | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[6];
b = b << 8;
b = b | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 12 )
{
 
c = c | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[8];
c = c << 8;
c = c | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[9];
c = c << 8;
c = c | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[10];
c = c << 8;
c = c | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[12];
d = d << 8;
d = d | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[13];
d = d << 8;
d = d | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[14];
d = d << 8;
d = d | TEXT_FIPS_CTR_NOT_DATATYPE_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
}
 
 
/aes_bfm_derivation_decryption_ctr.h
295,14 → 295,38
if(counter_write == 9)
{
 
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
if(DATATYPE == TYPE_00)// NO DINR DOUTR SWAP DATA
{
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 = 89;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
v_ecb.value.integer = 89;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
 
}else if(DATATYPE == TYPE_01)// 16 BIT DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 91;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
 
}else if(DATATYPE == TYPE_02)// 8 BIT DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 93;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
 
}else if(DATATYPE == TYPE_03)// BIT DINR DOUTR SWAP DATA
{
v_ecb.value.integer = ADDR_AES_CR;
vpi_put_value(PADDR, &v_ecb, NULL, vpiNoDelay);
 
v_ecb.value.integer = 95;
vpi_put_value(PWDATA, &v_ecb, &t_ecb, vpiTransportDelay);
}
}
 
317,51 → 341,209
if(FIPS_ENABLE == FIPS)
{
 
if(counter_write == 10)
if(DATATYPE == TYPE_00)
{
a = a | TEXT_CTR_FIPS_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
if(counter_write == 10)
{
a = a | TEXT_CTR_FIPS_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
{
b = b | TEXT_CTR_FIPS_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 12 )
{
 
c = c | TEXT_CTR_FIPS_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_CTR_FIPS_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
}else if(DATATYPE == TYPE_01)
{
b = b | TEXT_CTR_FIPS_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 12 )
 
if(counter_write == 10)
{
a = a | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
{
b = b | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 12 )
{
 
c = c | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T01_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
}else if(DATATYPE == TYPE_02)
{
if(counter_write == 10)
{
a = a | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[3];
v_ecb.value.integer = a;
 
c = c | TEXT_CTR_FIPS_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DERIVATED[11];
v_ecb.value.integer = c;
}else if(counter_write == 11)
{
b = b | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 13 )
}else if(counter_write == 12 )
{
 
c = c | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T02_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
 
 
}else if(DATATYPE == TYPE_03)
{
d = d | TEXT_CTR_FIPS_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DERIVATED[15];
v_ecb.value.integer = d;
if(counter_write == 10)
{
a = a | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[0];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[1];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[2];
a = a << 8;
a = a | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[3];
v_ecb.value.integer = a;
 
}else if(counter_write == 11)
{
b = b | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[4];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[5];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[6];
b = b << 8;
b = b | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[7];
v_ecb.value.integer = b;
 
}else if(counter_write == 12 )
{
 
c = c | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[8];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[9];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[10];
c = c << 8;
c = c | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[11];
v_ecb.value.integer = c;
 
}else if(counter_write == 13 )
{
d = d | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[12];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[13];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[14];
d = d << 8;
d = d | TEXT_CTR_FIPS_DATATYPE_T03_DERIVATED[15];
v_ecb.value.integer = d;
 
}
 
 
 
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.