sha3
sha3_init(struct sha3 *C, unsigned rw)
sha3_update(struct sha3 *C, const uint8_t *data, size_t len, unsigned rw)
sha3_final(uint8_t *h, unsigned d, struct sha3 *C, unsigned rw)
shake_final(uint8_t *h, size_t d, struct sha3 *C, unsigned rw)
struct sha3 sha3;
SHA3_224_CTX *sha3224 = (SHA3_224_CTX *)&sha3;
SHA3_256_CTX *sha3256 = (SHA3_256_CTX *)&sha3;
SHA3_384_CTX *sha3384 = (SHA3_384_CTX *)&sha3;
SHA3_512_CTX *sha3512 = (SHA3_512_CTX *)&sha3;
SHAKE128_CTX *shake128 = (SHAKE128_CTX *)&sha3;
SHAKE256_CTX *shake256 = (SHAKE256_CTX *)&sha3;
typedef struct { struct sha3 C224; } SHA3_224_CTX;
typedef struct { struct sha3 C256; } SHA3_256_CTX;
typedef struct { struct sha3 C384; } SHA3_384_CTX;
typedef struct { struct sha3 C512; } SHA3_512_CTX;
typedef struct { struct sha3 C128; } SHAKE128_CTX;
typedef struct { struct sha3 C256; } SHAKE256_CTX;