Go to the documentation of this file.
47 #define KECCAK_ROL(a, n) ROL8(a, (n) % 8)
49 #define KECCAK_LOAD_LANE(p) p[0]
51 #define KECCAK_STORE_LANE(a, p) p[0] = a
54 #define keccak_lane_t uint16_t
56 #define KECCAK_ROL(a, n) ROL16(a, (n) % 16)
58 #define KECCAK_LOAD_LANE(p) LOAD16LE(p)
60 #define KECCAK_STORE_LANE(a, p) STORE16LE(a, p)
63 #define keccak_lane_t uint32_t
65 #define KECCAK_ROL(a, n) ROL32(a, (n) % 32)
67 #define KECCAK_LOAD_LANE(p) LOAD32LE(p)
69 #define KECCAK_STORE_LANE(a, p) STORE32LE(a, p)
72 #define keccak_lane_t uint64_t
74 #define KECCAK_ROL(a, n) ROL64(a, (n) % 64)
76 #define KECCAK_LOAD_LANE(p) LOAD64LE(p)
78 #define KECCAK_STORE_LANE(a, p) STORE64LE(a, p)
80 #error KECCAK_L parameter is not valid
84 #define KECCAK_W_BITS (1 << KECCAK_L)
86 #define KECCAK_W_BYTES ((1 << KECCAK_L) / 8)
89 #define KECCAK_B_BITS (KECCAK_W_BITS * 25)
91 #define KECCAK_B_BYTES (KECCAK_W_BYTES * 25)
94 #define KECCAK_NR (12 + 2 * KECCAK_L)
97 #define KECCAK_PAD 0x01
99 #define KECCAK_SHA3_PAD 0x06
101 #define KECCAK_SHAKE_PAD 0x1F
103 #define KECCAK_CSHAKE_PAD 0x04
void keccakFinal(KeccakContext *context, uint8_t pad)
Finish absorbing phase.
error_t keccakInit(KeccakContext *context, uint_t capacity)
Initialize Keccak context.
void keccakPermutBlock(KeccakContext *context)
Block permutation.
void keccakSqueeze(KeccakContext *context, uint8_t *output, size_t length)
Extract data from the squeezing phase.
General definitions for cryptographic algorithms.
void keccakAbsorb(KeccakContext *context, const void *input, size_t length)
Absorb data.