aboutsummaryrefslogtreecommitdiffstats
path: root/blake256.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--blake256.c59
1 files changed, 58 insertions, 1 deletions
diff --git a/blake256.c b/blake256.c
index 4e3951b..412b28f 100644
--- a/blake256.c
+++ b/blake256.c
@@ -69,8 +69,65 @@ static struct testcase testcases[] = {
#endif
+static int
+kat_test(void)
+{
+ TEST_MAIN("BLAKE256", BLAKE256);
+}
+
+
int
main(void)
{
- TEST_MAIN("BLAKE256", BLAKE256);
+#ifdef SUPPORT_BLAKE256
+ struct libhashsum_hasher hasher1, hasher2;
+ char salt1[16], salt2[16];
+#endif
+
+ int r = kat_test();
+ if (r)
+ return r;
+
+#ifdef SUPPORT_BLAKE256
+ memset(salt1, 0, sizeof(salt1));
+ memset(salt2, 0xAB, sizeof(salt2));
+
+ ASSERT(!libhashsum_init_blake256_hasher(&hasher1, NULL));
+ ASSERT(!libhashsum_init_blake256_hasher(&hasher2, salt1));
+ ASSERT(!strcmp(hasher1.algorithm_string, "BLAKE256"));
+ ASSERT(!strcmp(hasher2.algorithm_string, "BLAKE256"));
+ ASSERT(!hasher1.finalise_const(&hasher1, NULL, 0, 0));
+ ASSERT(!hasher2.finalise_const(&hasher2, NULL, 0, 0));
+ ASSERT(!memcmp(hasher1.hash_output, hasher2.hash_output, hasher1.hash_size));
+
+ ASSERT(!libhashsum_init_blake256_hasher(&hasher1, NULL));
+ ASSERT(!libhashsum_init_blake256_hasher(&hasher2, salt1));
+ ASSERT(!hasher1.finalise_const(&hasher1, "testdata", 8U, 0));
+ ASSERT(!hasher2.finalise_const(&hasher2, "testdata", 8U, 0));
+ ASSERT(!memcmp(hasher1.hash_output, hasher2.hash_output, hasher1.hash_size));
+
+ ASSERT(!libhashsum_init_blake256_hasher(&hasher1, salt1));
+ ASSERT(!libhashsum_init_blake256_hasher(&hasher2, salt2));
+ ASSERT(!strcmp(hasher1.algorithm_string, "BLAKE256"));
+ ASSERT(!strcmp(hasher2.algorithm_string, "BLAKE256[salt=abababababababababababababababab]"));
+ ASSERT(!hasher1.finalise_const(&hasher1, NULL, 0, 0));
+ ASSERT(!hasher2.finalise_const(&hasher2, NULL, 0, 0));
+ ASSERT(memcmp(hasher1.hash_output, hasher2.hash_output, hasher1.hash_size));
+
+ ASSERT(!libhashsum_init_blake256_hasher(&hasher1, salt1));
+ ASSERT(!libhashsum_init_blake256_hasher(&hasher2, salt2));
+ ASSERT(!hasher1.finalise_const(&hasher1, "testdata", 8U, 0));
+ ASSERT(!hasher2.finalise_const(&hasher2, "testdata", 8U, 0));
+ ASSERT(memcmp(hasher1.hash_output, hasher2.hash_output, hasher1.hash_size));
+
+ ASSERT(!libhashsum_init_hasher_from_string(&hasher1, "BLAKE256[salt=00000000000000000000000000000000]"));
+ ASSERT(!libhashsum_init_hasher_from_string(&hasher2, "BLAKE256[salt=abababababababababababababababab]"));
+ ASSERT(!strcmp(hasher1.algorithm_string, "BLAKE256"));
+ ASSERT(!strcmp(hasher2.algorithm_string, "BLAKE256[salt=abababababababababababababababab]"));
+ ASSERT(!hasher1.finalise_const(&hasher1, NULL, 0, 0));
+ ASSERT(!hasher2.finalise_const(&hasher2, NULL, 0, 0));
+ ASSERT(memcmp(hasher1.hash_output, hasher2.hash_output, hasher1.hash_size));
+#endif
+
+ return 0;
}