SHA3_CTX
sha3_224_init(SHA3_CTX(desc));
sha3_256_init(SHA3_CTX(desc));
sha3_384_init(SHA3_CTX(desc));
sha3_512_init(SHA3_CTX(desc));
sha3_update(SHA3_CTX(desc), data, len);
sha3_final(SHA3_CTX(desc), out);
memcpy(out, SHA3_CTX(desc), sizeof(struct sha3_ctx));
memcpy(SHA3_CTX(desc), in, sizeof(struct sha3_ctx));