From 5023703acbec921ca1f24036d84afd8d1a626062 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Sat, 19 Feb 2022 09:25:19 +0100 Subject: Properly group code in libblake.h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- libblake.h | 85 +++++++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 54 insertions(+), 31 deletions(-) diff --git a/libblake.h b/libblake.h index ec67df8..be5ff84 100644 --- a/libblake.h +++ b/libblake.h @@ -41,12 +41,16 @@ #endif + LIBBLAKE_PUBLIC__ void libblake_init(void); LIBBLAKE_PUBLIC__ void libblake_encode_hex(const void *data, size_t n, char out[/* static n * 2 + 1 */], int uppercase); LIBBLAKE_PUBLIC__ size_t libblake_decode_hex(const char *data, size_t n, void *out, int *validp); + +/*********************************** BLAKE ***********************************/ + #define LIBBLAKE_BLAKE224_OUTPUT_SIZE (224 / 8) #define LIBBLAKE_BLAKE256_OUTPUT_SIZE (256 / 8) #define LIBBLAKE_BLAKE384_OUTPUT_SIZE (384 / 8) @@ -69,6 +73,7 @@ struct libblake_blake256_state { struct libblake_blakes_state s; }; struct libblake_blake384_state { struct libblake_blakeb_state b; }; struct libblake_blake512_state { struct libblake_blakeb_state b; }; + LIBBLAKE_PUBLIC__ void libblake_blake224_init(struct libblake_blake224_state *state); LIBBLAKE_PUBLIC__ void libblake_blake224_init2(struct libblake_blake224_state *state, uint_least8_t salt[16]); LIBBLAKE_PUBLIC__ size_t libblake_blake224_update(struct libblake_blake224_state *state, const void *data, size_t len); @@ -76,6 +81,7 @@ LIBBLAKE_PUBLIC__ void libblake_blake224_digest(struct libblake_blake224_state * const char *suffix, unsigned char output[static LIBBLAKE_BLAKE224_OUTPUT_SIZE]); LIBBLAKE_PUBLIC__ LIBBLAKE_PURE__ size_t libblake_blake224_digest_get_required_input_size(size_t len, size_t bits, const char *suffix); + LIBBLAKE_PUBLIC__ void libblake_blake256_init(struct libblake_blake256_state *state); LIBBLAKE_PUBLIC__ void libblake_blake256_init2(struct libblake_blake256_state *state, uint_least8_t salt[16]); LIBBLAKE_PUBLIC__ size_t libblake_blake256_update(struct libblake_blake256_state *state, const void *data, size_t len); @@ -83,6 +89,7 @@ LIBBLAKE_PUBLIC__ void libblake_blake256_digest(struct libblake_blake256_state * const char *suffix, unsigned char output[static LIBBLAKE_BLAKE256_OUTPUT_SIZE]); LIBBLAKE_PUBLIC__ LIBBLAKE_PURE__ size_t libblake_blake256_digest_get_required_input_size(size_t len, size_t bits, const char *suffix); + LIBBLAKE_PUBLIC__ void libblake_blake384_init(struct libblake_blake384_state *state); LIBBLAKE_PUBLIC__ void libblake_blake384_init2(struct libblake_blake384_state *state, uint_least8_t salt[32]); LIBBLAKE_PUBLIC__ size_t libblake_blake384_update(struct libblake_blake384_state *state, const void *data, size_t len); @@ -90,6 +97,7 @@ LIBBLAKE_PUBLIC__ void libblake_blake384_digest(struct libblake_blake384_state * const char *suffix, unsigned char output[static LIBBLAKE_BLAKE384_OUTPUT_SIZE]); LIBBLAKE_PUBLIC__ LIBBLAKE_PURE__ size_t libblake_blake384_digest_get_required_input_size(size_t len, size_t bits, const char *suffix); + LIBBLAKE_PUBLIC__ void libblake_blake512_init(struct libblake_blake512_state *state); LIBBLAKE_PUBLIC__ void libblake_blake512_init2(struct libblake_blake512_state *state, uint_least8_t salt[32]); LIBBLAKE_PUBLIC__ size_t libblake_blake512_update(struct libblake_blake512_state *state, const void *data, size_t len); @@ -97,6 +105,10 @@ LIBBLAKE_PUBLIC__ void libblake_blake512_digest(struct libblake_blake512_state * const char *suffix, unsigned char output[static LIBBLAKE_BLAKE512_OUTPUT_SIZE]); LIBBLAKE_PUBLIC__ LIBBLAKE_PURE__ size_t libblake_blake512_digest_get_required_input_size(size_t len, size_t bits, const char *suffix); + + +/*********************************** BLAKE2 ***********************************/ + struct libblake_blake2s_params { uint_least8_t digest_len; /* in bytes, [1, 32] */ uint_least8_t key_len; /* in bytes, [0, 32] */ @@ -125,6 +137,44 @@ struct libblake_blake2b_params { uint_least8_t pepper[16]; }; +struct libblake_blake2s_state { + LIBBLAKE_ALIGNED__(32) + uint_least32_t h[8]; + uint_least32_t t[2]; + uint_least32_t f[2]; +}; + +struct libblake_blake2b_state { + LIBBLAKE_ALIGNED__(32) + uint_least64_t h[8]; + uint_least64_t t[2]; + uint_least64_t f[2]; +}; + + +LIBBLAKE_PUBLIC__ void libblake_blake2s_init(struct libblake_blake2s_state *state, const struct libblake_blake2s_params *params, + const unsigned char *key /* append null bytes until 64 bytes; if key is used */); +LIBBLAKE_PUBLIC__ size_t libblake_blake2s_update(struct libblake_blake2s_state *state, const void *data, size_t len); +LIBBLAKE_PUBLIC__ size_t libblake_blake2s_force_update(struct libblake_blake2s_state *state, const void *data, size_t len); +LIBBLAKE_PUBLIC__ void libblake_blake2s_digest(struct libblake_blake2s_state *state, void *data, size_t len, + int last_node /* normally 0 */, size_t output_len, + unsigned char output[static output_len]); +LIBBLAKE_PUBLIC__ LIBBLAKE_CONST__ size_t libblake_blake2s_digest_get_required_input_size(size_t len); + + +LIBBLAKE_PUBLIC__ void libblake_blake2b_init(struct libblake_blake2b_state *state, const struct libblake_blake2b_params *params, + const unsigned char *key /* append null bytes until 128 bytes; if key is used */); +LIBBLAKE_PUBLIC__ size_t libblake_blake2b_update(struct libblake_blake2b_state *state, const void *data, size_t len); +LIBBLAKE_PUBLIC__ size_t libblake_blake2b_force_update(struct libblake_blake2b_state *state, const void *data, size_t len); +LIBBLAKE_PUBLIC__ void libblake_blake2b_digest(struct libblake_blake2b_state *state, void *data, size_t len, + int last_node /* normally 0 */, size_t output_len, + unsigned char output[static output_len]); +LIBBLAKE_PUBLIC__ LIBBLAKE_CONST__ size_t libblake_blake2b_digest_get_required_input_size(size_t len); + + + +/*********************************** BLAKE2X ***********************************/ + struct libblake_blake2xs_params { uint_least8_t digest_len; /* in bytes, [1, 32] */ uint_least8_t key_len; /* in bytes, [0, 32] */ @@ -154,20 +204,6 @@ struct libblake_blake2xb_params { uint_least8_t pepper[16]; }; -struct libblake_blake2s_state { - LIBBLAKE_ALIGNED__(32) - uint_least32_t h[8]; - uint_least32_t t[2]; - uint_least32_t f[2]; -}; - -struct libblake_blake2b_state { - LIBBLAKE_ALIGNED__(32) - uint_least64_t h[8]; - uint_least64_t t[2]; - uint_least64_t f[2]; -}; - struct libblake_blake2xs_state { struct libblake_blake2s_state b2s; struct libblake_blake2xs_params xof_params; @@ -180,24 +216,8 @@ struct libblake_blake2xb_state { unsigned char intermediate[128]; }; -LIBBLAKE_PUBLIC__ void libblake_blake2s_init(struct libblake_blake2s_state *state, const struct libblake_blake2s_params *params, - const unsigned char *key /* append null bytes until 64 bytes; if key is used */); -LIBBLAKE_PUBLIC__ size_t libblake_blake2s_update(struct libblake_blake2s_state *state, const void *data, size_t len); -LIBBLAKE_PUBLIC__ size_t libblake_blake2s_force_update(struct libblake_blake2s_state *state, const void *data, size_t len); -LIBBLAKE_PUBLIC__ void libblake_blake2s_digest(struct libblake_blake2s_state *state, void *data, size_t len, - int last_node /* normally 0 */, size_t output_len, - unsigned char output[static output_len]); -LIBBLAKE_PUBLIC__ LIBBLAKE_CONST__ size_t libblake_blake2s_digest_get_required_input_size(size_t len); - -LIBBLAKE_PUBLIC__ void libblake_blake2b_init(struct libblake_blake2b_state *state, const struct libblake_blake2b_params *params, - const unsigned char *key /* append null bytes until 128 bytes; if key is used */); -LIBBLAKE_PUBLIC__ size_t libblake_blake2b_update(struct libblake_blake2b_state *state, const void *data, size_t len); -LIBBLAKE_PUBLIC__ size_t libblake_blake2b_force_update(struct libblake_blake2b_state *state, const void *data, size_t len); -LIBBLAKE_PUBLIC__ void libblake_blake2b_digest(struct libblake_blake2b_state *state, void *data, size_t len, - int last_node /* normally 0 */, size_t output_len, - unsigned char output[static output_len]); -LIBBLAKE_PUBLIC__ LIBBLAKE_CONST__ size_t libblake_blake2b_digest_get_required_input_size(size_t len); + LIBBLAKE_PUBLIC__ void libblake_blake2xs_init(struct libblake_blake2xs_state *state, const struct libblake_blake2xs_params *params, const unsigned char *key /* append null bytes until 64 bytes; if key is used */); LIBBLAKE_PUBLIC__ inline size_t @@ -221,6 +241,7 @@ LIBBLAKE_PUBLIC__ void libblake_blake2xs_digest(const struct libblake_blake2xs_s uint_least8_t len /* desired hash MIN(length - i * 32, 32) */, unsigned char output[static len] /* output for hash offset by i * 32 */); + LIBBLAKE_PUBLIC__ void libblake_blake2xb_init(struct libblake_blake2xb_state *state, const struct libblake_blake2xb_params *params, const unsigned char *key /* append null bytes until 128 bytes; if key is used */); LIBBLAKE_PUBLIC__ inline size_t @@ -244,6 +265,8 @@ LIBBLAKE_PUBLIC__ void libblake_blake2xb_digest(const struct libblake_blake2xb_s uint_least8_t len /* desired hash MIN(length - i * 64, 64) */, unsigned char output[static len] /* output for hash offset by i * 64 */); + + #if defined(__clang__) # pragma clang diagnostic pop #endif -- cgit v1.2.3-70-g09d2