MCPcopy Create free account
hub / github.com/F-Stack/f-stack / keccakf

Function keccakf

dpdk/drivers/crypto/ccp/ccp_crypto.c:223–264  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

221}
222
223static void
224keccakf(uint64_t s[25])
225{
226 int i, j, round;
227 uint64_t t, bc[5];
228#define KECCAK_ROUNDS 24
229
230 for (round = 0; round < KECCAK_ROUNDS; round++) {
231
232 /* Theta */
233 for (i = 0; i < 5; i++)
234 bc[i] = s[i] ^ s[i + 5] ^ s[i + 10] ^ s[i + 15] ^
235 s[i + 20];
236
237 for (i = 0; i < 5; i++) {
238 t = bc[(i + 4) % 5] ^ SHA3_ROTL64(bc[(i + 1) % 5], 1);
239 for (j = 0; j < 25; j += 5)
240 s[j + i] ^= t;
241 }
242
243 /* Rho Pi */
244 t = s[1];
245 for (i = 0; i < 24; i++) {
246 j = keccakf_piln[i];
247 bc[0] = s[j];
248 s[j] = SHA3_ROTL64(t, keccakf_rotc[i]);
249 t = bc[0];
250 }
251
252 /* Chi */
253 for (j = 0; j < 25; j += 5) {
254 for (i = 0; i < 5; i++)
255 bc[i] = s[j + i];
256 for (i = 0; i < 5; i++)
257 s[j + i] ^= (~bc[(i + 1) % 5]) &
258 bc[(i + 2) % 5];
259 }
260
261 /* Iota */
262 s[0] ^= keccakf_rndc[round];
263 }
264}
265
266static void
267sha3_Init224(void *priv)

Callers 1

sha3_UpdateFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected