diff options
author | Paul Duncan <pabs@pablotron.org> | 2023-09-01 23:15:00 -0400 |
---|---|---|
committer | Paul Duncan <pabs@pablotron.org> | 2023-09-01 23:15:00 -0400 |
commit | e23ca862bbe2d97675277dde443fbef498db771f (patch) | |
tree | beac0825566e38ea4b63728e407cb9cfd03edde0 /sha3.h | |
parent | c7f630ed23144939a540219787c7be3ffe14b24c (diff) | |
download | sha3-e23ca862bbe2d97675277dde443fbef498db771f.tar.bz2 sha3-e23ca862bbe2d97675277dde443fbef498db771f.zip |
./sha3.h: add shake{128,256}_xof_*()
Diffstat (limited to 'sha3.h')
-rw-r--r-- | sha3.h | 21 |
1 files changed, 21 insertions, 0 deletions
@@ -7,6 +7,17 @@ extern "C" { #include <stdint.h> +typedef union { + uint8_t u8[200]; + uint64_t u64[25]; +} sha3_state_t; + +typedef struct { + size_t num_bytes; + sha3_state_t a; + _Bool squeezing; +} sha3_xof_t; + void sha3_224(const uint8_t *m, size_t m_len, uint8_t dst[static 28]); void sha3_256(const uint8_t *m, size_t m_len, uint8_t dst[static 32]); void sha3_384(const uint8_t *m, size_t m_len, uint8_t dst[static 48]); @@ -15,6 +26,16 @@ void sha3_512(const uint8_t *m, size_t m_len, uint8_t dst[static 64]); void shake128(const uint8_t *m, size_t m_len, uint8_t dst[static 16]); void shake256(const uint8_t *m, size_t m_len, uint8_t dst[static 32]); +void shake128_xof_init(sha3_xof_t * const xof); +_Bool shake128_xof_absorb(sha3_xof_t * const xof, const uint8_t * const m, const size_t len); +_Bool shake128_xof_absorb_done(sha3_xof_t * const xof); +_Bool shake128_xof_squeeze(sha3_xof_t * const xof, uint8_t * const dst, const size_t dst_len); + +void shake256_xof_init(sha3_xof_t * const xof); +_Bool shake256_xof_absorb(sha3_xof_t * const xof, const uint8_t * const m, const size_t len); +_Bool shake256_xof_absorb_done(sha3_xof_t * const xof); +_Bool shake256_xof_squeeze(sha3_xof_t * const xof, uint8_t * const dst, const size_t dst_len); + #ifdef __cplusplus } #endif /* __cplusplus */ |