diff options
| author | Mattias Andrée <m@maandree.se> | 2026-05-19 17:59:06 +0200 |
|---|---|---|
| committer | Mattias Andrée <m@maandree.se> | 2026-05-19 17:59:18 +0200 |
| commit | 0b02792660db30e3f2251c0a03c2bb6ed80306ef (patch) | |
| tree | de901dbaa7979bb67d08a3dab8f6e190a38dc6a5 | |
| parent | Update year (diff) | |
| download | libblake-3.0.2.1.tar.gz libblake-3.0.2.1.tar.bz2 libblake-3.0.2.1.tar.xz | |
Signed-off-by: Mattias Andrée <m@maandree.se>
Diffstat (limited to '')
| -rw-r--r-- | Makefile | 111 | ||||
| -rw-r--r-- | config.mk | 15 | ||||
| -rw-r--r-- | mk/support-blake224=no.mk | 0 | ||||
| -rw-r--r-- | mk/support-blake224=yes.mk | 12 | ||||
| -rw-r--r-- | mk/support-blake256=no.mk | 0 | ||||
| -rw-r--r-- | mk/support-blake256=yes.mk | 13 | ||||
| -rw-r--r-- | mk/support-blake2b=no.mk | 0 | ||||
| -rw-r--r-- | mk/support-blake2b=yes.mk | 12 | ||||
| -rw-r--r-- | mk/support-blake2s=no.mk | 0 | ||||
| -rw-r--r-- | mk/support-blake2s=yes.mk | 12 | ||||
| -rw-r--r-- | mk/support-blake2xb=no.mk | 0 | ||||
| -rw-r--r-- | mk/support-blake2xb=yes.mk | 18 | ||||
| -rw-r--r-- | mk/support-blake2xs=no.mk | 0 | ||||
| -rw-r--r-- | mk/support-blake2xs=yes.mk | 18 | ||||
| -rw-r--r-- | mk/support-blake384=no.mk | 0 | ||||
| -rw-r--r-- | mk/support-blake384=yes.mk | 12 | ||||
| -rw-r--r-- | mk/support-blake512=no.mk | 0 | ||||
| -rw-r--r-- | mk/support-blake512=yes.mk | 13 | ||||
| -rw-r--r-- | test.c | 64 |
19 files changed, 231 insertions, 69 deletions
@@ -21,66 +21,30 @@ OBJ_COMMON =\ libblake_decode_hex.o\ libblake_init.o -OBJ_BLAKE =\ - libblake_blake224_digest.o\ - libblake_blake224_digest_get_required_input_size.o\ - libblake_blake224_init.o\ - libblake_blake224_init2.o\ - libblake_blake224_update.o\ - libblake_blake256_digest.o\ - libblake_blake256_digest_get_required_input_size.o\ - libblake_blake256_init.o\ - libblake_blake256_init2.o\ - libblake_blake256_update.o\ - libblake_blake384_digest.o\ - libblake_blake384_digest_get_required_input_size.o\ - libblake_blake384_init.o\ - libblake_blake384_init2.o\ - libblake_blake384_update.o\ - libblake_blake512_digest.o\ - libblake_blake512_digest_get_required_input_size.o\ - libblake_blake512_init.o\ - libblake_blake512_init2.o\ - libblake_blake512_update.o\ - libblake_internal_blakeb_digest.o\ - libblake_internal_blakes_digest.o\ - libblake_internal_blakeb_update.o\ - libblake_internal_blakes_update.o - -OBJ_BLAKE2 =\ - libblake_blake2b_digest.o\ - libblake_blake2s_digest.o\ - libblake_blake2b_digest_get_required_input_size.o\ - libblake_blake2s_digest_get_required_input_size.o\ - libblake_blake2b_force_update.o\ - libblake_blake2s_force_update.o\ - libblake_blake2b_init.o\ - libblake_blake2s_init.o\ - libblake_blake2b_update.o\ - libblake_blake2s_update.o\ - libblake_blake2xb_digest.o\ - libblake_blake2xs_digest.o\ - libblake_blake2xb_force_update.o\ - libblake_blake2xs_force_update.o\ - libblake_blake2xb_init.o\ - libblake_blake2xs_init.o\ - libblake_blake2xb_predigest.o\ - libblake_blake2xs_predigest.o\ - libblake_blake2xb_predigest_get_required_input_size.o\ - libblake_blake2xs_predigest_get_required_input_size.o\ - libblake_blake2xb_update.o\ - libblake_blake2xs_update.o\ - libblake_internal_blake2b_compress.o\ - libblake_internal_blake2s_compress.o\ - libblake_internal_blake2b_output_digest.o\ - libblake_internal_blake2s_output_digest.o\ - libblake_internal_blake2xb_init0.o\ - libblake_internal_blake2xs_init0.o +CPPFLAGS_SUPPORT =\ + $(CPPFLAGS_BLAKE224)\ + $(CPPFLAGS_BLAKE256)\ + $(CPPFLAGS_BLAKE384)\ + $(CPPFLAGS_BLAKE512)\ + $(CPPFLAGS_BLAKE2S)\ + $(CPPFLAGS_BLAKE2B)\ + $(CPPFLAGS_BLAKE2XS)\ + $(CPPFLAGS_BLAKE2XB) OBJ =\ $(OBJ_COMMON)\ - $(OBJ_BLAKE)\ - $(OBJ_BLAKE2) + $(OBJ_BLAKE224)\ + $(OBJ_BLAKE256)\ + $(OBJ_BLAKES)\ + $(OBJ_BLAKE384)\ + $(OBJ_BLAKE512)\ + $(OBJ_BLAKEB)\ + $(OBJ_BLAKE2S)\ + $(OBJ_BLAKE2XS)\ + $(OBJ_BLAKE2S_2XS)\ + $(OBJ_BLAKE2B)\ + $(OBJ_BLAKE2XB)\ + $(OBJ_BLAKE2B_2XB) HDR =\ libblake.h\ @@ -101,28 +65,49 @@ KAT_FILES =\ LOBJ = $(OBJ:.o=.lo) +include mk/support-blake224=$(SUPPORT_BLAKE224).mk +include mk/support-blake256=$(SUPPORT_BLAKE256).mk +include mk/support-blake384=$(SUPPORT_BLAKE384).mk +include mk/support-blake512=$(SUPPORT_BLAKE512).mk +include mk/support-blake2s=$(SUPPORT_BLAKE2S).mk +include mk/support-blake2b=$(SUPPORT_BLAKE2B).mk +include mk/support-blake2xs=$(SUPPORT_BLAKE2XS).mk +include mk/support-blake2xb=$(SUPPORT_BLAKE2XB).mk + + all: libblake.a libblake.$(LIBEXT) test + @printf '\n' 2>&1 + @printf '%s support: %s\n' 2>&1 \ + BLAKE224 $(SUPPORT_BLAKE224)\ + BLAKE245 $(SUPPORT_BLAKE256)\ + BLAKE384 $(SUPPORT_BLAKE384)\ + BLAKE512 $(SUPPORT_BLAKE512)\ + BLAKE2S $(SUPPORT_BLAKE2S)\ + BLAKE2B $(SUPPORT_BLAKE2B)\ + BLAKE2XS $(SUPPORT_BLAKE2XS)\ + BLAKE2XB $(SUPPORT_BLAKE2XB) + $(OBJ): $(HDR) $(LOBJ): $(HDR) test.o: $(HDR) .c.o: - $(CC) -c -o $@ $< $(CFLAGS) $(CPPFLAGS) + $(CC) -c -o $@ $< $(CFLAGS) $(CPPFLAGS) $(CPPFLAGS_SUPPORT) .c.lo: - $(CC) -fPIC -c -o $@ $< $(CFLAGS) $(CPPFLAGS) + $(CC) -fPIC -c -o $@ $< $(CFLAGS) $(CPPFLAGS) $(CPPFLAGS_SUPPORT) libblake_internal_blake2b_compress_mm128.o: libblake_internal_blake2b_compress_mm128.c $(HDR) - $(CC) -c -o $@ $(@:.o=.c) $(CFLAGS) $(CPPFLAGS) $(CFLAGS_MM128) + $(CC) -c -o $@ $(@:.o=.c) $(CFLAGS) $(CPPFLAGS) $(CPPFLAGS_SUPPORT) $(CFLAGS_MM128) libblake_internal_blake2b_compress_mm128.lo: libblake_internal_blake2b_compress_mm128.c $(HDR) - $(CC) -c -o $@ $(@:.lo=.c) $(CFLAGS) $(CPPFLAGS) $(CFLAGS_MM128) + $(CC) -c -o $@ $(@:.lo=.c) $(CFLAGS) $(CPPFLAGS) $(CPPFLAGS_SUPPORT) $(CFLAGS_MM128) libblake_internal_blake2b_compress_mm256.o: libblake_internal_blake2b_compress_mm256.c $(HDR) - $(CC) -c -o $@ $(@:.o=.c) $(CFLAGS) $(CPPFLAGS) $(CFLAGS_MM256) + $(CC) -c -o $@ $(@:.o=.c) $(CFLAGS) $(CPPFLAGS) $(CPPFLAGS_SUPPORT) $(CFLAGS_MM256) libblake_internal_blake2b_compress_mm256.lo: libblake_internal_blake2b_compress_mm256.c $(HDR) - $(CC) -c -o $@ $(@:.lo=.c) $(CFLAGS) $(CPPFLAGS) $(CFLAGS_MM256) + $(CC) -c -o $@ $(@:.lo=.c) $(CFLAGS) $(CPPFLAGS) $(CPPFLAGS_SUPPORT) $(CFLAGS_MM256) test: test.o libblake.a $(CC) -o $@ test.o libblake.a $(LDFLAGS) @@ -19,3 +19,18 @@ LDFLAGS = $(SANITIZE) -s # only used for specific translation units. CFLAGS_MM128 = -msse4.1 -mavx2 CFLAGS_MM256 = -msse4.1 -mavx2 + +DEFAULT_SUPPORT = yes +SUPPORT_BLAKE1 = $(DEFAULT_SUPPORT) +SUPPORT_BLAKE224 = $(SUPPORT_BLAKE1) +SUPPORT_BLAKE256 = $(SUPPORT_BLAKE1) +SUPPORT_BLAKE384 = $(SUPPORT_BLAKE1) +SUPPORT_BLAKE512 = $(SUPPORT_BLAKE1) +SUPPORT_BLAKE2 = $(DEFAULT_SUPPORT) +SUPPORT_BLAKE2X = $(SUPPORT_BLAKE2) +SUPPORT_BLAKE2S = $(SUPPORT_BLAKE2) +SUPPORT_BLAKE2B = $(SUPPORT_BLAKE2) +SUPPORT_BLAKE2XS = $(SUPPORT_BLAKE2X) +SUPPORT_BLAKE2XB = $(SUPPORT_BLAKE2X) +# Change to "no" (without quotes) to disable. +# SUPPORT_BLAKE2B=yes is needed for libar2 diff --git a/mk/support-blake224=no.mk b/mk/support-blake224=no.mk new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/mk/support-blake224=no.mk diff --git a/mk/support-blake224=yes.mk b/mk/support-blake224=yes.mk new file mode 100644 index 0000000..a8fb954 --- /dev/null +++ b/mk/support-blake224=yes.mk @@ -0,0 +1,12 @@ +CPPFLAGS_BLAKE224 = -DSUPPORT_BLAKE224 + +OBJ_BLAKE224 =\ + libblake_blake224_digest.o\ + libblake_blake224_init.o\ + libblake_blake224_init2.o\ + libblake_blake224_update.o + +OBJ_BLAKES =\ + libblake_blake224_digest_get_required_input_size.o\ + libblake_internal_blakes_digest.o\ + libblake_internal_blakes_update.o diff --git a/mk/support-blake256=no.mk b/mk/support-blake256=no.mk new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/mk/support-blake256=no.mk diff --git a/mk/support-blake256=yes.mk b/mk/support-blake256=yes.mk new file mode 100644 index 0000000..57eab16 --- /dev/null +++ b/mk/support-blake256=yes.mk @@ -0,0 +1,13 @@ +CPPFLAGS_BLAKE256 = -DSUPPORT_BLAKE256 + +OBJ_BLAKE256 =\ + libblake_blake256_digest.o\ + libblake_blake256_digest_get_required_input_size.o\ + libblake_blake256_init.o\ + libblake_blake256_init2.o\ + libblake_blake256_update.o + +OBJ_BLAKES =\ + libblake_blake224_digest_get_required_input_size.o\ + libblake_internal_blakes_digest.o\ + libblake_internal_blakes_update.o diff --git a/mk/support-blake2b=no.mk b/mk/support-blake2b=no.mk new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/mk/support-blake2b=no.mk diff --git a/mk/support-blake2b=yes.mk b/mk/support-blake2b=yes.mk new file mode 100644 index 0000000..f7dee6a --- /dev/null +++ b/mk/support-blake2b=yes.mk @@ -0,0 +1,12 @@ +CPPFLAGS_BLAKE2B = -DSUPPORT_BLAKE2B + +OBJ_BLAKE2B_2XB =\ + libblake_blake2b_digest.o\ + libblake_blake2b_digest_get_required_input_size.o\ + libblake_blake2b_update.o\ + libblake_blake2b_force_update.o\ + libblake_internal_blake2b_compress.o\ + libblake_internal_blake2b_output_digest.o + +OBJ_BLAKE2B =\ + libblake_blake2b_init.o diff --git a/mk/support-blake2s=no.mk b/mk/support-blake2s=no.mk new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/mk/support-blake2s=no.mk diff --git a/mk/support-blake2s=yes.mk b/mk/support-blake2s=yes.mk new file mode 100644 index 0000000..57406e2 --- /dev/null +++ b/mk/support-blake2s=yes.mk @@ -0,0 +1,12 @@ +CPPFLAGS_BLAKE2S = -DSUPPORT_BLAKE2S + +OBJ_BLAKE2S_2XS =\ + libblake_blake2s_digest.o\ + libblake_blake2s_digest_get_required_input_size.o\ + libblake_blake2s_update.o\ + libblake_blake2s_force_update.o\ + libblake_internal_blake2s_compress.o\ + libblake_internal_blake2s_output_digest.o + +OBJ_BLAKE2S =\ + libblake_blake2s_init.o diff --git a/mk/support-blake2xb=no.mk b/mk/support-blake2xb=no.mk new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/mk/support-blake2xb=no.mk diff --git a/mk/support-blake2xb=yes.mk b/mk/support-blake2xb=yes.mk new file mode 100644 index 0000000..321ba08 --- /dev/null +++ b/mk/support-blake2xb=yes.mk @@ -0,0 +1,18 @@ +CPPFLAGS_BLAKE2XB = -DSUPPORT_BLAKE2XB + +OBJ_BLAKE2B_2XB =\ + libblake_blake2b_digest.o\ + libblake_blake2b_digest_get_required_input_size.o\ + libblake_blake2b_update.o\ + libblake_blake2b_force_update.o\ + libblake_internal_blake2b_compress.o\ + libblake_internal_blake2b_output_digest.o + +OBJ_BLAKE2XB =\ + libblake_blake2xb_digest.o\ + libblake_blake2xb_force_update.o\ + libblake_blake2xb_init.o\ + libblake_blake2xb_predigest.o\ + libblake_blake2xb_predigest_get_required_input_size.o\ + libblake_blake2xb_update.o\ + libblake_internal_blake2xb_init0.o diff --git a/mk/support-blake2xs=no.mk b/mk/support-blake2xs=no.mk new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/mk/support-blake2xs=no.mk diff --git a/mk/support-blake2xs=yes.mk b/mk/support-blake2xs=yes.mk new file mode 100644 index 0000000..b9f64a1 --- /dev/null +++ b/mk/support-blake2xs=yes.mk @@ -0,0 +1,18 @@ +CPPFLAGS_BLAKE2XS = -DSUPPORT_BLAKE2XS + +OBJ_BLAKE2S_2XS =\ + libblake_blake2s_digest.o\ + libblake_blake2s_digest_get_required_input_size.o\ + libblake_blake2s_update.o\ + libblake_blake2s_force_update.o\ + libblake_internal_blake2s_compress.o\ + libblake_internal_blake2s_output_digest.o + +OBJ_BLAKE2XS =\ + libblake_blake2xs_digest.o\ + libblake_blake2xs_force_update.o\ + libblake_blake2xs_init.o\ + libblake_blake2xs_predigest.o\ + libblake_blake2xs_predigest_get_required_input_size.o\ + libblake_blake2xs_update.o\ + libblake_internal_blake2xs_init0.o diff --git a/mk/support-blake384=no.mk b/mk/support-blake384=no.mk new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/mk/support-blake384=no.mk diff --git a/mk/support-blake384=yes.mk b/mk/support-blake384=yes.mk new file mode 100644 index 0000000..4a035fe --- /dev/null +++ b/mk/support-blake384=yes.mk @@ -0,0 +1,12 @@ +CPPFLAGS_BLAKE384 = -DSUPPORT_BLAKE384 + +OBJ_BLAKE384 =\ + libblake_blake384_digest.o\ + libblake_blake384_init.o\ + libblake_blake384_init2.o\ + libblake_blake384_update.o + +OBJ_BLAKEB =\ + libblake_blake384_digest_get_required_input_size.o\ + libblake_internal_blakeb_digest.o\ + libblake_internal_blakeb_update.o diff --git a/mk/support-blake512=no.mk b/mk/support-blake512=no.mk new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/mk/support-blake512=no.mk diff --git a/mk/support-blake512=yes.mk b/mk/support-blake512=yes.mk new file mode 100644 index 0000000..e217eca --- /dev/null +++ b/mk/support-blake512=yes.mk @@ -0,0 +1,13 @@ +CPPFLAGS_BLAKE512 = -DSUPPORT_BLAKE512 + +OBJ_BLAKE512 =\ + libblake_blake512_digest.o\ + libblake_blake512_digest_get_required_input_size.o\ + libblake_blake512_init.o\ + libblake_blake512_init2.o\ + libblake_blake512_update.o + +OBJ_BLAKEB =\ + libblake_blake384_digest_get_required_input_size.o\ + libblake_internal_blakeb_digest.o\ + libblake_internal_blakeb_update.o @@ -34,6 +34,7 @@ check_hex(int uppercase, const char *hex, const unsigned char *bin, size_t n) ERROR("libblake_decode_hex failed\n"); /* $covered$ */ } +#if defined(SUPPORT_BLAKE224) || defined(SUPPORT_BLAKE256) || defined(SUPPORT_BLAKE384) || defined(SUPPORT_BLAKE512) static const char * digest_blake1(int length, const void *msg, size_t msglen, size_t bits) { @@ -54,19 +55,35 @@ digest_blake1(int length, const void *msg, size_t msglen, size_t bits) free(data);\ } while (0) - if (length == 224) +#ifdef SUPPORT_BLAKE224 + if (length == 224) { DIGEST(224); - else if (length == 256) + goto out; + } +#endif +#ifdef SUPPORT_BLAKE256 + if (length == 256) { DIGEST(256); - else if (length == 384) + goto out; + } +#endif +#ifdef SUPPORT_BLAKE384 + if (length == 384) { DIGEST(384); - else if (length == 512) + goto out; + } +#endif +#ifdef SUPPORT_BLAKE512 + if (length == 512) { DIGEST(512); - else - abort(); /* $covered$ */ + goto out; + } +#endif + abort(); /* $covered$ */ #undef DIGEST +out: return hex; } @@ -121,9 +138,16 @@ check_blake1(void) int failed = 0; size_t bits; +#ifdef SUPPORT_BLAKE224 CHECK_BLAKE224_STR("", "7dc5313b1c04512a174bd6503b89607aecbee0903d40a8a569c94eed"); +#endif +#ifdef SUPPORT_BLAKE256 CHECK_BLAKE256_STR("", "716f6e863f744b9ac22c97ec7b76ea5f5908bc5b2f67c61510bfc4751384ea7a"); +#endif +#ifdef SUPPORT_BLAKE384 CHECK_BLAKE384_STR("", "c6cbd89c926ab525c242e6621f2f5fa73aa4afe3d9e24aed727faaadd6af38b620bdb623dd2b4788b1c8086984af8706"); +#endif +#ifdef SUPPORT_BLAKE512 CHECK_BLAKE512_STR("", "a8cfbbd73726062df0c6864dda65defe58ef0cc52a5625090fa17601e1eecd1b628e94f396ae402a00acc9eab77b4d4c2e852aaaa25a636d80af3fc7913ef5b8"); CHECK_BLAKE512_STR("The quick brown fox jumps over the lazy dog", @@ -131,7 +155,9 @@ check_blake1(void) CHECK_BLAKE512_STR("The quick brown fox jumps over the lazy dof", "a701c2a1f9baabd8b1db6b75aee096900276f0b86dc15d247ecc03937b370324a16a4ffc0c3a85cd63229cfa15c15f4ba6d46ae2e849ed6335e9ff43b764198a"); +#endif +#ifdef SUPPORT_BLAKE224 bits = 1; #define X(INPUT, EXPECT) CHECK_BLAKE224_BITS(INPUT, bits++, EXPECT) X("00", "615b9bd1077a8270d4f647799ffaaf87c03d72efd37e4947fcf01cca"); @@ -184,7 +210,9 @@ check_blake1(void) X("C6F50BB74E29", "6d6d952053aead200de9daa856c2993a7a7fa4a15b3924fb77dbb384"); X("79F1B4CCC62A00", "ad93ea3f245493cf2b660d6f5fe82b8bfb0d3394854e88c2704c98c2"); #undef X +#endif +#ifdef SUPPORT_BLAKE256 bits = 1; #define X(INPUT, EXPECT) CHECK_BLAKE256_BITS(INPUT, bits++, EXPECT) X("00", "81a10984912cd57c12e923b46142b2b434dfe1a0ef29c03de05555f9f2fee9b4"); @@ -237,7 +265,9 @@ check_blake1(void) X("C6F50BB74E29", "637923bd29a35aa3ecbbd2a50549fc32c14cf0fdcaf41c3194dd7414fd224815"); X("79F1B4CCC62A00", "106cd7e18e3bd16353cf561411d87b609536856d57180155b60d7bc0a73b9d45"); #undef X +#endif +#ifdef SUPPORT_BLAKE384 bits = 1; #define X(INPUT, EXPECT) CHECK_BLAKE384_BITS(INPUT, bits++, EXPECT) X("00", "1ffde9711b419d7c97dc142e7704d2ae61163f8a818c47938b978d6113949d8e7819b9699d497a3b289b8bb4415ffae7"); @@ -290,7 +320,9 @@ check_blake1(void) X("C6F50BB74E29", "5ddb50068ca430bffae7e5a8bbcb2c59171743cce027c0ea937fa2b511848192af2aca98ead30b0850b4d2d1542decdb"); X("79F1B4CCC62A00", "7c80a8320015dfc5143d1c6d60a4b51c6943208005aa5176300ecdfa728d5bb53c9817b33c934eca94332716458572dc"); #undef X +#endif +#ifdef SUPPORT_BLAKE512 bits = 1; #define X(INPUT, EXPECT) CHECK_BLAKE512_BITS(INPUT, bits++, EXPECT) X("00", "f0a9b5b755802205fd1a1f56e7a03d7573d46e8ba5037517281560fbe6db03c174b00597fb4e1427747c7382fe63c6692f05a5e0841e99883cb7c272c2a62191"); @@ -343,9 +375,11 @@ check_blake1(void) X("C6F50BB74E29", "b6e8a7380df1f007d7c271e7255bbca7714f25029ac1fd6fe92ef74cbcd9e99c112f8ae1a45ccb566ce19d9678a122c612beff5f8eeeee3f3f402fd2781182d4"); X("79F1B4CCC62A00", "1cc9fe09100fbc45f20382353785aa753fbd19ea0ab655c0d8338e0d07154ccaa5659698a6627302c25dd54cdfde00c0ef06905abc55030563399ca8efae2c22"); #undef X +#endif return failed; } +#endif static char * read_file(const char *path) @@ -532,6 +566,7 @@ check_kat_file(const char *path, const char *algname, void (*hash_function)(unsi return failed; } +#ifdef SUPPORT_BLAKE2S static void hash_blake2s(unsigned char **msg, size_t msglen, size_t *msgsize, unsigned char **key, size_t keylen, size_t *keysize, @@ -588,7 +623,9 @@ hash_blake2s(unsigned char **msg, size_t msglen, size_t *msgsize, libblake_blake2s_digest(&state, *msg, msglen, 0, *outlen, *out); } } +#endif +#ifdef SUPPORT_BLAKE2B static void hash_blake2b(unsigned char **msg, size_t msglen, size_t *msgsize, unsigned char **key, size_t keylen, size_t *keysize, @@ -645,7 +682,9 @@ hash_blake2b(unsigned char **msg, size_t msglen, size_t *msgsize, libblake_blake2b_digest(&state, *msg, msglen, 0, *outlen, *out); } } +#endif +#ifdef SUPPORT_BLAKE2XS static void hash_blake2xs(unsigned char **msg, size_t msglen, size_t *msgsize, unsigned char **key, size_t keylen, size_t *keysize, @@ -711,7 +750,9 @@ hash_blake2xs(unsigned char **msg, size_t msglen, size_t *msgsize, if (rem) libblake_blake2xs_digest(&state, i, (uint_least8_t)rem, &(*out)[off]); } +#endif +#ifdef SUPPORT_BLAKE2XB static void hash_blake2xb(unsigned char **msg, size_t msglen, size_t *msgsize, unsigned char **key, size_t keylen, size_t *keysize, @@ -777,6 +818,7 @@ hash_blake2xb(unsigned char **msg, size_t msglen, size_t *msgsize, if (rem) libblake_blake2xb_digest(&state, i, (uint_least8_t)rem, &(*out)[off]); } +#endif int main(void) @@ -790,13 +832,23 @@ main(void) CHECK_HEX(1, 00, 12, 32, 00, 45, 67, 82, 9A, B0, CD, FE, FF, 80, 08, CC, 28); CHECK_HEX(0, 00, 12, 32, 00, 45, 67, 82, 9a, b0, cd, fe, ff, 80, 08, cc, 28); +#if defined(SUPPORT_BLAKE224) || defined(SUPPORT_BLAKE256) || defined(SUPPORT_BLAKE384) || defined(SUPPORT_BLAKE512) failed |= check_blake1(); +#endif /* TODO need tests for BLAKE1 with salt and suffix */ +#ifdef SUPPORT_BLAKE2S failed |= check_kat_file("kat/blake2s", "BLAKE2s", &hash_blake2s); +#endif +#ifdef SUPPORT_BLAKE2B failed |= check_kat_file("kat/blake2b", "BLAKE2b", &hash_blake2b); +#endif /* TODO need tests for BLAKE2[sb] with salt and pepper */ +#ifdef SUPPORT_BLAKE2XS failed |= check_kat_file("kat/blake2xs", "BLAKE2Xs", &hash_blake2xs); +#endif +#ifdef SUPPORT_BLAKE2XB failed |= check_kat_file("kat/blake2xb", "BLAKE2Xb", &hash_blake2xb); +#endif /* TODO test libblake_blake224_update */ /* TODO test libblake_blake256_update */ |
