@@ -40,7 +40,10 @@ void mld_keccakf1600_extract_bytes(uint64_t *state, unsigned char *data,
4040 unsigned offset , unsigned length )
4141{
4242 unsigned i ;
43- #if defined(MLD_SYS_LITTLE_ENDIAN )
43+ #if defined(MLD_USE_FIPS202_X1_NATIVE )
44+ (void ) i ;
45+ mld_keccakf1600_extract_bytes_native (state , data , offset , length );
46+ #elif defined(MLD_SYS_LITTLE_ENDIAN )
4447 uint8_t * state_ptr = (uint8_t * )state + offset ;
4548 for (i = 0 ; i < length ; i ++ )
4649 __loop__ (invariant (i <= length ))
@@ -61,7 +64,10 @@ void mld_keccakf1600_xor_bytes(uint64_t *state, const unsigned char *data,
6164 unsigned offset , unsigned length )
6265{
6366 unsigned i ;
64- #if defined(MLD_SYS_LITTLE_ENDIAN )
67+ #if defined(MLD_USE_FIPS202_X1_NATIVE )
68+ (void ) i ;
69+ mld_keccakf1600_xor_bytes_native (state , data , offset , length );
70+ #elif defined(MLD_SYS_LITTLE_ENDIAN )
6571 uint8_t * state_ptr = (uint8_t * )state + offset ;
6672 for (i = 0 ; i < length ; i ++ )
6773 __loop__ (invariant (i <= length ))
@@ -84,6 +90,12 @@ void mld_keccakf1600x4_extract_bytes(uint64_t *state, unsigned char *data0,
8490 unsigned char * data3 , unsigned offset ,
8591 unsigned length )
8692{
93+ #if defined(MLD_USE_FIPS202_X4_XOR_NATIVE )
94+ mld_keccakf1600_extract_bytes_x4_native (state , data0 ,
95+ data1 , data2 ,
96+ data3 , offset ,
97+ length );
98+ #else /* MLD_USE_FIPS202_X4_XOR_NATIVE */
8799 mld_keccakf1600_extract_bytes (state + MLD_KECCAK_LANES * 0 , data0 , offset ,
88100 length );
89101 mld_keccakf1600_extract_bytes (state + MLD_KECCAK_LANES * 1 , data1 , offset ,
@@ -92,6 +104,7 @@ void mld_keccakf1600x4_extract_bytes(uint64_t *state, unsigned char *data0,
92104 length );
93105 mld_keccakf1600_extract_bytes (state + MLD_KECCAK_LANES * 3 , data3 , offset ,
94106 length );
107+ #endif /* !MLD_USE_FIPS202_X4_NATIVE && !MLD_USE_FIPS202_X2_NATIVE */
95108}
96109
97110void mld_keccakf1600x4_xor_bytes (uint64_t * state , const unsigned char * data0 ,
@@ -100,6 +113,13 @@ void mld_keccakf1600x4_xor_bytes(uint64_t *state, const unsigned char *data0,
100113 const unsigned char * data3 , unsigned offset ,
101114 unsigned length )
102115{
116+ #if defined(MLD_USE_FIPS202_X4_XOR_NATIVE )
117+ mld_keccakf1600_xor_bytes_x4_native (state , data0 ,
118+ data1 ,
119+ data2 ,
120+ data3 , offset ,
121+ length );
122+ #else /* MLD_USE_FIPS202_X4_XOR_NATIVE */
103123 mld_keccakf1600_xor_bytes (state + MLD_KECCAK_LANES * 0 , data0 , offset ,
104124 length );
105125 mld_keccakf1600_xor_bytes (state + MLD_KECCAK_LANES * 1 , data1 , offset ,
@@ -108,6 +128,7 @@ void mld_keccakf1600x4_xor_bytes(uint64_t *state, const unsigned char *data0,
108128 length );
109129 mld_keccakf1600_xor_bytes (state + MLD_KECCAK_LANES * 3 , data3 , offset ,
110130 length );
131+ #endif /* MLD_USE_FIPS202_X4_XOR_NATIVE */
111132}
112133
113134void mld_keccakf1600x4_permute (uint64_t * state )
0 commit comments