20#ifndef DETERMINISTICESPASYNCWEBSERVER_PQC_SHA3_H
21#define DETERMINISTICESPASYNCWEBSERVER_PQC_SHA3_H
25#if DETWS_ENABLE_PQC_KEX
31#define KECCAK_RATE_SHA3_256 136
32#define KECCAK_RATE_SHA3_512 72
33#define KECCAK_RATE_SHAKE128 168
34#define KECCAK_RATE_SHAKE256 136
46void keccak_absorb(KeccakCtx *c, uint32_t rate,
const uint8_t *in,
size_t inlen, uint8_t domain);
49void keccak_squeeze(KeccakCtx *c, uint8_t *out,
size_t outlen);
52void sha3_256(uint8_t out[32],
const uint8_t *in,
size_t inlen);
55void sha3_512(uint8_t out[64],
const uint8_t *in,
size_t inlen);
58void shake128(uint8_t *out,
size_t outlen,
const uint8_t *in,
size_t inlen);
61void shake256(uint8_t *out,
size_t outlen,
const uint8_t *in,
size_t inlen);
64void shake128_absorb(KeccakCtx *c,
const uint8_t *in,
size_t inlen);
User-facing configuration for DeterministicESPAsyncWebServer.