32#ifndef OCRYPTO_CSHAKE_H
33#define OCRYPTO_CSHAKE_H
47typedef ocrypto_sha3_ctx ocrypto_cshake_ctx;
72 ocrypto_cshake_ctx *ctx,
73 const uint8_t *n,
size_t n_len,
74 const uint8_t *s,
size_t s_len);
88 ocrypto_cshake_ctx *ctx,
89 const uint8_t *n,
size_t n_len,
90 const uint8_t *s,
size_t s_len);
107 ocrypto_cshake_ctx *ctx,
108 const uint8_t *in,
size_t in_len);
125 ocrypto_cshake_ctx *ctx,
126 const uint8_t *in,
size_t in_len);
146 ocrypto_cshake_ctx *ctx,
147 uint8_t *r,
size_t r_len);
167 ocrypto_cshake_ctx *ctx,
168 uint8_t *r,
size_t r_len);
185 ocrypto_cshake_ctx *ctx,
186 uint8_t *r,
size_t r_len);
203 ocrypto_cshake_ctx *ctx,
204 uint8_t *r,
size_t r_len);
224 uint8_t *r,
size_t r_len,
225 const uint8_t *in,
size_t in_len,
226 const uint8_t *n,
size_t n_len,
227 const uint8_t *s,
size_t s_len);
246 uint8_t *r,
size_t r_len,
247 const uint8_t *in,
size_t in_len,
248 const uint8_t *n,
size_t n_len,
249 const uint8_t *s,
size_t s_len);
void ocrypto_cshake256_final(ocrypto_cshake_ctx *ctx, uint8_t *r, size_t r_len)
void ocrypto_cshake128(uint8_t *r, size_t r_len, const uint8_t *in, size_t in_len, const uint8_t *n, size_t n_len, const uint8_t *s, size_t s_len)
void ocrypto_cshake128_update(ocrypto_cshake_ctx *ctx, const uint8_t *in, size_t in_len)
void ocrypto_cshake256_update(ocrypto_cshake_ctx *ctx, const uint8_t *in, size_t in_len)
void ocrypto_cshake256_init(ocrypto_cshake_ctx *ctx, const uint8_t *n, size_t n_len, const uint8_t *s, size_t s_len)
void ocrypto_cshake256(uint8_t *r, size_t r_len, const uint8_t *in, size_t in_len, const uint8_t *n, size_t n_len, const uint8_t *s, size_t s_len)
void ocrypto_cshake256_ext(ocrypto_cshake_ctx *ctx, uint8_t *r, size_t r_len)
void ocrypto_cshake128_final(ocrypto_cshake_ctx *ctx, uint8_t *r, size_t r_len)
void ocrypto_cshake128_init(ocrypto_cshake_ctx *ctx, const uint8_t *n, size_t n_len, const uint8_t *s, size_t s_len)
void ocrypto_cshake128_ext(ocrypto_cshake_ctx *ctx, uint8_t *r, size_t r_len)
SHA3 algorithms, with 224, 256, 384 and 512 bit outputs.