MAX_DIGEST_SIZE
#ifndef MAX_DIGEST_SIZE
#if (MAX_DIGEST_SIZE < BASH224_DIGEST_SIZE)
#ifndef MAX_DIGEST_SIZE
#if (MAX_DIGEST_SIZE < BASH256_DIGEST_SIZE)
#ifndef MAX_DIGEST_SIZE
#if (MAX_DIGEST_SIZE < BASH384_DIGEST_SIZE)
#ifndef MAX_DIGEST_SIZE
#if (MAX_DIGEST_SIZE < BASH512_DIGEST_SIZE)
#ifndef MAX_DIGEST_SIZE
#if (MAX_DIGEST_SIZE < BELT_HASH_DIGEST_SIZE)
#if (MAX_DIGEST_SIZE == 0)
#ifndef MAX_DIGEST_SIZE
#if (MAX_DIGEST_SIZE < RIPEMD160_DIGEST_SIZE)
#ifndef MAX_DIGEST_SIZE
#if (MAX_DIGEST_SIZE < SHA224_DIGEST_SIZE)
#ifndef MAX_DIGEST_SIZE
#if (MAX_DIGEST_SIZE < SHA256_DIGEST_SIZE)
#ifndef MAX_DIGEST_SIZE
#if (MAX_DIGEST_SIZE < SHA3_224_DIGEST_SIZE)
#ifndef MAX_DIGEST_SIZE
#if (MAX_DIGEST_SIZE < SHA3_256_DIGEST_SIZE)
#ifndef MAX_DIGEST_SIZE
#if (MAX_DIGEST_SIZE < SHA3_384_DIGEST_SIZE)
#ifndef MAX_DIGEST_SIZE
#if (MAX_DIGEST_SIZE < SHA3_512_DIGEST_SIZE)
#ifndef MAX_DIGEST_SIZE
#if (MAX_DIGEST_SIZE < SHA384_DIGEST_SIZE)
#ifndef MAX_DIGEST_SIZE
#if (MAX_DIGEST_SIZE < SHA512_224_DIGEST_SIZE)
#ifndef MAX_DIGEST_SIZE
#if (MAX_DIGEST_SIZE < SHA512_256_DIGEST_SIZE)
#ifndef MAX_DIGEST_SIZE
#if (MAX_DIGEST_SIZE < SHA512_DIGEST_SIZE)
#ifndef MAX_DIGEST_SIZE
#if (MAX_DIGEST_SIZE < SHAKE256_DIGEST_SIZE)
#ifndef MAX_DIGEST_SIZE
#if (MAX_DIGEST_SIZE < SM3_DIGEST_SIZE)
#ifndef MAX_DIGEST_SIZE
#if (MAX_DIGEST_SIZE < STREEBOG256_DIGEST_SIZE)
#ifndef MAX_DIGEST_SIZE
#if (MAX_DIGEST_SIZE < STREEBOG512_DIGEST_SIZE)
#if NN_MAX_BIT_LEN < MAX_BIT_LEN_ROUNDING(((8 * MAX_DIGEST_SIZE) / 2), WORD_BITS)
#define NN_MAX_BIT_LEN MAX_BIT_LEN_ROUNDING(((8 * MAX_DIGEST_SIZE) / 2), WORD_BITS)
WORDSIZE, MAX_DIGEST_SIZE) (void);
wordsize, WORDSIZE, MAX_DIGEST_SIZE) (void) {
WORDSIZE, MAX_DIGEST_SIZE) ();
WORDSIZE, complete_formulas, MAX_DIGEST_SIZE) (void);
wordsize, WORDSIZE, complete_formulas, MAX_DIGEST_SIZE) (void) {
WORDSIZE, complete_formulas, MAX_DIGEST_SIZE) ();
#define EC_PRIV_KEY_MAX_SIZE (LOCAL_MAX(MAX_DIGEST_SIZE, LOCAL_MAX(BYTECEIL(CURVES_MAX_Q_BIT_LEN), BYTECEIL(CURVES_MAX_P_BIT_LEN))))
((u8)(LOCAL_MAX(MAX_DIGEST_SIZE, LOCAL_MAX(BYTECEIL((priv_key)->params->ec_gen_order_bitlen), BYTECEIL((priv_key)->params->ec_fp.p_bitlen)))))
#define ECKCDSA_MAX_SIGLEN ECKCDSA_SIGLEN(MAX_DIGEST_SIZE, CURVES_MAX_Q_BIT_LEN)
u8 r[MAX_DIGEST_SIZE];
#define ECOSDSA_MAX_SIGLEN ECOSDSA_SIGLEN(MAX_DIGEST_SIZE, CURVES_MAX_Q_BIT_LEN)
#define ECSDSA_MAX_SIGLEN ECSDSA_SIGLEN(MAX_DIGEST_SIZE, CURVES_MAX_Q_BIT_LEN)
u8 r[MAX_DIGEST_SIZE];
#define EDDSA_MAX_SIGLEN EDDSA_SIGLEN(MAX_DIGEST_SIZE)
MUST_HAVE((GOSTR34_11_94_DIGEST_SIZE <= MAX_DIGEST_SIZE), ret, err);
MUST_HAVE(((*hlen) <= MAX_DIGEST_SIZE), ret, err);
MUST_HAVE((MD2_DIGEST_SIZE <= MAX_DIGEST_SIZE), ret, err);
MUST_HAVE((MD4_DIGEST_SIZE <= MAX_DIGEST_SIZE), ret, err);
MUST_HAVE((MD5_DIGEST_SIZE <= MAX_DIGEST_SIZE), ret, err);
MUST_HAVE((MDC2_DIGEST_SIZE <= MAX_DIGEST_SIZE), ret, err);
MUST_HAVE((SHA0_DIGEST_SIZE <= MAX_DIGEST_SIZE), ret, err);
MUST_HAVE((SHA1_DIGEST_SIZE <= MAX_DIGEST_SIZE), ret, err);
u8 hash[MAX_DIGEST_SIZE];
MUST_HAVE((hlen <= MAX_DIGEST_SIZE), ret, err);
u8 hash[MAX_DIGEST_SIZE];
MUST_HAVE((hlen <= MAX_DIGEST_SIZE), ret, err);
u8 hash[MAX_DIGEST_SIZE];
MUST_HAVE((hlen <= MAX_DIGEST_SIZE), ret, err);
u8 hash[MAX_DIGEST_SIZE];
MUST_HAVE((hlen <= MAX_DIGEST_SIZE), ret, err);
u8 hash[MAX_DIGEST_SIZE];
MUST_HAVE((hlen <= MAX_DIGEST_SIZE), ret, err);
u8 hash[MAX_DIGEST_SIZE];
MUST_HAVE((hlen <= MAX_DIGEST_SIZE), ret, err);
u8 digest[MAX_DIGEST_SIZE];
MUST_HAVE((digest_size <= MAX_DIGEST_SIZE), ret, err);
u8 seed[MAX_DIGEST_SIZE];
MUST_HAVE((hlen <= MAX_DIGEST_SIZE), ret, err);
u8 lhash[MAX_DIGEST_SIZE];
u8 seedmask[MAX_DIGEST_SIZE];
MUST_HAVE((hlen <= MAX_DIGEST_SIZE), ret, err);
MUST_HAVE((hlen <= MAX_DIGEST_SIZE), ret, err);
u8 H[MAX_DIGEST_SIZE];
MUST_HAVE((hlen <= MAX_DIGEST_SIZE), ret, err);
u8 digest[MAX_DIGEST_SIZE];
MUST_HAVE((hlen <= MAX_DIGEST_SIZE), ret, err);
u8 mhash[MAX_DIGEST_SIZE];
u8 h[MAX_DIGEST_SIZE];
MUST_HAVE((hlen <= MAX_DIGEST_SIZE), ret, err);
u8 mhash[MAX_DIGEST_SIZE];
u8 h_[MAX_DIGEST_SIZE];
MUST_HAVE((hlen <= MAX_DIGEST_SIZE), ret, err);
MUST_HAVE((hlen <= MAX_DIGEST_SIZE), ret, err);
u8 hash[MAX_DIGEST_SIZE];
MUST_HAVE((hlen <= MAX_DIGEST_SIZE), ret, err);
u8 in_hash[MAX_DIGEST_SIZE];
u8 r[((MAX_DIGEST_SIZE / BELT_BLOCK_LEN) * BELT_BLOCK_LEN) + (2 * BELT_BLOCK_LEN)];
u8 r_bar[((MAX_DIGEST_SIZE / BELT_BLOCK_LEN) * BELT_BLOCK_LEN) + (2 * BELT_BLOCK_LEN)];
(hsize <= MAX_DIGEST_SIZE) && (blocksize <= MAX_BLOCK_SIZE), ret, err);
MUST_HAVE((ctx->h != NULL) && (ctx->h->digest_size <= MAX_DIGEST_SIZE) &&
u8 hash[MAX_DIGEST_SIZE];
MUST_HAVE((ctx->h != NULL) && (ctx->h->digest_size <= MAX_DIGEST_SIZE) &&
u8 hash[MAX_DIGEST_SIZE];
u8 hash[MAX_DIGEST_SIZE];
(hsize <= MAX_DIGEST_SIZE) && (blocksize <= MAX_BLOCK_SIZE)),
u8 buff[MAX_DIGEST_SIZE];
MUST_HAVE((ctx->h != NULL) && (ctx->h->digest_size <= MAX_DIGEST_SIZE) &&
u8 hash[MAX_DIGEST_SIZE];
u8 e_buf[MAX_DIGEST_SIZE];
u8 hash[MAX_DIGEST_SIZE];
(hsize <= MAX_DIGEST_SIZE) && (blocksize <= MAX_BLOCK_SIZE), ret, err);
MUST_HAVE((ctx->h != NULL) && (ctx->h->digest_size <= MAX_DIGEST_SIZE) &&
u8 hash[MAX_DIGEST_SIZE];
u8 V[MAX_DIGEST_SIZE];
u8 K[MAX_DIGEST_SIZE];
u8 T[BYTECEIL(CURVES_MAX_Q_BIT_LEN) + MAX_DIGEST_SIZE];
MUST_HAVE((ctx->h != NULL) && (ctx->h->digest_size <= MAX_DIGEST_SIZE) &&
u8 hash[MAX_DIGEST_SIZE];
MUST_HAVE((ctx->h != NULL) && (ctx->h->digest_size <= MAX_DIGEST_SIZE) &&
u8 e_buf[MAX_DIGEST_SIZE];
MUST_HAVE((ctx->h != NULL) && (ctx->h->digest_size <= MAX_DIGEST_SIZE) &&
u8 e_buf[MAX_DIGEST_SIZE];
u8 hash[MAX_DIGEST_SIZE];
(hsize <= MAX_DIGEST_SIZE) && (blocksize <= MAX_BLOCK_SIZE), ret, err);
u8 hash[MAX_DIGEST_SIZE];
MUST_HAVE((ctx->h != NULL) && (ctx->h->digest_size <= MAX_DIGEST_SIZE) &&
u8 e_buf[MAX_DIGEST_SIZE];
MUST_HAVE((ctx->h != NULL) && (ctx->h->digest_size <= MAX_DIGEST_SIZE) &&
u8 e_buf[MAX_DIGEST_SIZE];
(hsize <= MAX_DIGEST_SIZE) && (blocksize <= MAX_BLOCK_SIZE), ret, err);
MUST_HAVE((ctx->h != NULL) && (ctx->h->digest_size <= MAX_DIGEST_SIZE) &&
u8 hzm[MAX_DIGEST_SIZE];
u8 r[MAX_DIGEST_SIZE];
MUST_HAVE((ctx->h != NULL) && (ctx->h->digest_size <= MAX_DIGEST_SIZE) &&
u8 r_prime[MAX_DIGEST_SIZE];
u8 hzm[MAX_DIGEST_SIZE];
(hsize <= MAX_DIGEST_SIZE) &&
(hsize <= MAX_DIGEST_SIZE) && (blocksize <= MAX_BLOCK_SIZE), ret, err);
MUST_HAVE((ctx->h != NULL) && (ctx->h->digest_size <= MAX_DIGEST_SIZE) &&
u8 h_buf[MAX_DIGEST_SIZE];
MUST_HAVE((ctx->h != NULL) && (ctx->h->digest_size <= MAX_DIGEST_SIZE) &&
u8 h_buf[MAX_DIGEST_SIZE];
MUST_HAVE((ctx->h != NULL) && (ctx->h->digest_size <= MAX_DIGEST_SIZE) &&
u8 r[MAX_DIGEST_SIZE];
MUST_HAVE((ctx->h != NULL) && (ctx->h->digest_size <= MAX_DIGEST_SIZE) &&
u8 r_prime[MAX_DIGEST_SIZE];
(hsize <= MAX_DIGEST_SIZE) && (blocksize <= MAX_BLOCK_SIZE)),
(hsize <= MAX_DIGEST_SIZE) && (blocksize <= MAX_BLOCK_SIZE), ret, err);
MUST_HAVE((h != NULL) && (h->digest_size <= MAX_DIGEST_SIZE) && (h->block_size <= MAX_BLOCK_SIZE), ret, err);
u8 hash[MAX_DIGEST_SIZE];
u8 ph_hash[MAX_DIGEST_SIZE];
u8 hash[MAX_DIGEST_SIZE];
u8 ph_hash[MAX_DIGEST_SIZE];
MUST_HAVE((h != NULL) && (h->digest_size <= MAX_DIGEST_SIZE) && (h->block_size <= MAX_BLOCK_SIZE), ret, err);
u8 buff[MAX_DIGEST_SIZE];
MUST_HAVE((ctx->h != NULL) && (ctx->h->digest_size <= MAX_DIGEST_SIZE) && (ctx->h->block_size <= MAX_BLOCK_SIZE), ret, err);
u8 hash[MAX_DIGEST_SIZE];
u8 hash[MAX_DIGEST_SIZE];
u8 buf_little_endian[MAX_DIGEST_SIZE];
u8 hash[MAX_DIGEST_SIZE];
u8 buf_little_endian[MAX_DIGEST_SIZE];
u8 digest[MAX_DIGEST_SIZE];
u8 digest[MAX_DIGEST_SIZE];
(hsize <= MAX_DIGEST_SIZE) && (blocksize <= MAX_BLOCK_SIZE), ret, err);
MUST_HAVE((ctx->h != NULL) && (ctx->h->digest_size <= MAX_DIGEST_SIZE) &&
u8 hash[MAX_DIGEST_SIZE];
MUST_HAVE((ctx->h != NULL) && (ctx->h->digest_size <= MAX_DIGEST_SIZE) &&
u8 hash[MAX_DIGEST_SIZE];
u8 digest[MAX_DIGEST_SIZE] = { 0 };
u8 digest[MAX_DIGEST_SIZE] = { 0 };
u8 digest[MAX_DIGEST_SIZE] = { 0 };
u8 digest[MAX_DIGEST_SIZE] = { 0 };
u8 hmac_res[MAX_DIGEST_SIZE];
uint8_t seed[2 * SLH_MAX_N + MAX_DIGEST_SIZE];
uint8_t mac[MAX_DIGEST_SIZE] = { 0 };
uint8_t digest[MAX_DIGEST_SIZE];