40 #define TRACE_LEVEL CRYPTO_TRACE_LEVEL
47 #if (ASCON_AEAD128_SUPPORT == ENABLED || ASCON_HASH256_SUPPORT == ENABLED || \
48 ASCON_XOF128_SUPPORT == ENABLED || ASCON_CXOF128_SUPPORT == ENABLED)
51 static const uint8_t rc[16] =
53 0x3C, 0x2D, 0x1E, 0x0F, 0xF0, 0xE1, 0xD2, 0xC3, 0xB4, 0xA5, 0x96, 0x87, 0x78, 0x69, 0x5A, 0x4B
72 for(i = 16 - nr; i < 16; i++)
85 w1 =
s->x[0] & ~
s->x[8];
86 w2 =
s->x[1] & ~
s->x[9];
87 s->x[0] ^=
s->x[4] & ~
s->x[2];
88 s->x[1] ^=
s->x[5] & ~
s->x[3];
89 s->x[4] ^=
s->x[8] & ~
s->x[6];
90 s->x[5] ^=
s->x[9] & ~
s->x[7];
91 s->x[8] ^=
s->x[2] & ~
s->x[0];
92 s->x[9] ^=
s->x[3] & ~
s->x[1];
93 s->x[2] ^=
s->x[6] & ~
s->x[4];
94 s->x[3] ^=
s->x[7] & ~
s->x[5];
110 s->x[0] = w1 ^ (w1 >> 19) ^ (w2 << 13) ^ (w1 >> 28) ^ (w2 << 4);
111 s->x[1] = w2 ^ (w2 >> 19) ^ (w1 << 13) ^ (w2 >> 28) ^ (w1 << 4);
115 s->x[2] = w1 ^ (w2 >> 29) ^ (w1 << 3) ^ (w2 >> 7) ^ (w1 << 25);
116 s->x[3] = w2 ^ (w1 >> 29) ^ (w2 << 3) ^ (w1 >> 7) ^ (w2 << 25);
120 s->x[4] = w1 ^ (w1 >> 1) ^ (w2 << 31) ^ (w1 >> 6) ^ (w2 << 26);
121 s->x[5] = w2 ^ (w2 >> 1) ^ (w1 << 31) ^ (w2 >> 6) ^ (w1 << 26);
125 s->x[6] = w1 ^ (w1 >> 10) ^ (w2 << 22) ^ (w1 >> 17) ^ (w2 << 15);
126 s->x[7] = w2 ^ (w2 >> 10) ^ (w1 << 22) ^ (w2 >> 17) ^ (w1 << 15);
130 s->x[8] = w1 ^ (w1 >> 7) ^ (w2 << 25) ^ (w2 >> 9) ^ (w1 << 23);
131 s->x[9] = w2 ^ (w2 >> 7) ^ (w1 << 25) ^ (w1 >> 9) ^ (w2 << 23);