70 SIMD_32 K0 = SIMD_32(EK[0]);
71 SIMD_32 K1 = SIMD_32(EK[1]);
72 SIMD_32 K2 = SIMD_32(EK[2]);
73 SIMD_32 K3 = SIMD_32(EK[3]);
77 SIMD_32 A0 = SIMD_32::load_be(in );
78 SIMD_32 A1 = SIMD_32::load_be(in + 16);
79 SIMD_32 A2 = SIMD_32::load_be(in + 32);
80 SIMD_32 A3 = SIMD_32::load_be(in + 48);
82 SIMD_32::transpose(A0, A1, A2, A3);
84 for(
size_t i = 0; i != 16; ++i)
101 A0 ^= SIMD_32(
RC[16]);
104 SIMD_32::transpose(A0, A1, A2, A3);
107 A1.store_be(out + 16);
108 A2.store_be(out + 32);
109 A3.store_be(out + 48);
127 SIMD_32 K0 = SIMD_32(DK[0]);
128 SIMD_32 K1 = SIMD_32(DK[1]);
129 SIMD_32 K2 = SIMD_32(DK[2]);
130 SIMD_32 K3 = SIMD_32(DK[3]);
134 SIMD_32 A0 = SIMD_32::load_be(in );
135 SIMD_32 A1 = SIMD_32::load_be(in + 16);
136 SIMD_32 A2 = SIMD_32::load_be(in + 32);
137 SIMD_32 A3 = SIMD_32::load_be(in + 48);
139 SIMD_32::transpose(A0, A1, A2, A3);
141 for(
size_t i = 0; i != 16; ++i)
145 A0 ^= SIMD_32(
RC[16-i]);
159 A0 ^= SIMD_32(
RC[0]);
161 SIMD_32::transpose(A0, A1, A2, A3);
164 A1.store_be(out + 16);
165 A2.store_be(out + 32);
166 A3.store_be(out + 48);