20#ifndef PROTOCORE_SHA3_H
21#define PROTOCORE_SHA3_H
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 pc_keccak_absorb(KeccakCtx *c, uint32_t rate,
const uint8_t *in,
size_t inlen, uint8_t domain);
49void pc_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 pc_shake128_absorb(KeccakCtx *c,
const uint8_t *in,
size_t inlen);
User-facing configuration for ProtoCore.