aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattias Andrée <m@maandree.se>2026-05-19 17:59:06 +0200
committerMattias Andrée <m@maandree.se>2026-05-19 17:59:18 +0200
commit0b02792660db30e3f2251c0a03c2bb6ed80306ef (patch)
treede901dbaa7979bb67d08a3dab8f6e190a38dc6a5
parentUpdate year (diff)
downloadlibblake-master.tar.gz
libblake-master.tar.bz2
libblake-master.tar.xz
Make it possible to select which functions to implementHEAD3.0.2.1master
Signed-off-by: Mattias Andrée <m@maandree.se>
-rw-r--r--Makefile111
-rw-r--r--config.mk15
-rw-r--r--mk/support-blake224=no.mk0
-rw-r--r--mk/support-blake224=yes.mk12
-rw-r--r--mk/support-blake256=no.mk0
-rw-r--r--mk/support-blake256=yes.mk13
-rw-r--r--mk/support-blake2b=no.mk0
-rw-r--r--mk/support-blake2b=yes.mk12
-rw-r--r--mk/support-blake2s=no.mk0
-rw-r--r--mk/support-blake2s=yes.mk12
-rw-r--r--mk/support-blake2xb=no.mk0
-rw-r--r--mk/support-blake2xb=yes.mk18
-rw-r--r--mk/support-blake2xs=no.mk0
-rw-r--r--mk/support-blake2xs=yes.mk18
-rw-r--r--mk/support-blake384=no.mk0
-rw-r--r--mk/support-blake384=yes.mk12
-rw-r--r--mk/support-blake512=no.mk0
-rw-r--r--mk/support-blake512=yes.mk13
-rw-r--r--test.c64
19 files changed, 231 insertions, 69 deletions
diff --git a/Makefile b/Makefile
index 3d770b2..552887a 100644
--- a/Makefile
+++ b/Makefile
@@ -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)
diff --git a/config.mk b/config.mk
index 4aca96b..97a6677 100644
--- a/config.mk
+++ b/config.mk
@@ -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
diff --git a/test.c b/test.c
index 83a58b1..cb4d939 100644
--- a/test.c
+++ b/test.c
@@ -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 */