|
|
@ -146,6 +146,8 @@ package aes_pkg is |
|
|
|
function bytesub (input : std_logic_vector(7 downto 0)) return std_logic_vector; |
|
|
|
function invbytesub (input : std_logic_vector(7 downto 0)) return std_logic_vector; |
|
|
|
|
|
|
|
function subword (input : t_datatable1d) return t_datatable1d; |
|
|
|
|
|
|
|
function subbytes (input : in t_datatable2d) return t_datatable2d; |
|
|
|
function invsubbytes (input : in t_datatable2d) return t_datatable2d; |
|
|
|
|
|
|
@ -203,6 +205,16 @@ package body aes_pkg is |
|
|
|
end function invbytesub; |
|
|
|
|
|
|
|
|
|
|
|
function subword (input : t_datatable1d) return t_datatable1d is |
|
|
|
v_data : t_datatable1d; |
|
|
|
begin |
|
|
|
for i in 0 to 3 loop |
|
|
|
v_data(i) := c_sbox(to_integer(unsigned(input(i)(7 downto 4))))(to_integer(unsigned(input(i)(3 downto 0)))); |
|
|
|
end loop; |
|
|
|
return v_data; |
|
|
|
end function subword; |
|
|
|
|
|
|
|
|
|
|
|
function subbytes (input : in t_datatable2d) return t_datatable2d is |
|
|
|
variable v_data : t_datatable2d; |
|
|
|
begin |
|
|
|