aboutsummaryrefslogtreecommitdiffstats
path: root/blake512.c
diff options
context:
space:
mode:
Diffstat (limited to 'blake512.c')
-rw-r--r--blake512.c63
1 files changed, 62 insertions, 1 deletions
diff --git a/blake512.c b/blake512.c
index 85f13fd..88b20fc 100644
--- a/blake512.c
+++ b/blake512.c
@@ -188,8 +188,69 @@ static struct testcase testcases[] = {
#endif
+static int
+kat_test(void)
+{
+ TEST_MAIN("BLAKE512", BLAKE512);
+}
+
+
int
main(void)
{
- TEST_MAIN("BLAKE512", BLAKE512);
+#ifdef SUPPORT_BLAKE512
+ struct libhashsum_hasher hasher1, hasher2;
+ char salt1[32], salt2[32];
+#endif
+
+ int r = kat_test();
+ if (r)
+ return r;
+
+#ifdef SUPPORT_BLAKE512
+ memset(salt1, 0, sizeof(salt1));
+ memset(salt2, 0xAB, sizeof(salt2));
+
+ ASSERT(!libhashsum_init_blake512_hasher(&hasher1, NULL));
+ ASSERT(!libhashsum_init_blake512_hasher(&hasher2, salt1));
+ ASSERT(!strcmp(hasher1.algorithm_string, "BLAKE512"));
+ ASSERT(!strcmp(hasher2.algorithm_string, "BLAKE512"));
+ 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_blake512_hasher(&hasher1, NULL));
+ ASSERT(!libhashsum_init_blake512_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_blake512_hasher(&hasher1, salt1));
+ ASSERT(!libhashsum_init_blake512_hasher(&hasher2, salt2));
+ ASSERT(!strcmp(hasher1.algorithm_string, "BLAKE512"));
+ ASSERT(!strcmp(hasher2.algorithm_string, "BLAKE512[salt=abababababababababababababababab"
+ "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_blake512_hasher(&hasher1, salt1));
+ ASSERT(!libhashsum_init_blake512_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, "BLAKE512[salt=00000000000000000000000000000000"
+ "00000000000000000000000000000000]"));
+ ASSERT(!libhashsum_init_hasher_from_string(&hasher2, "BLAKE512[salt=abababababababababababababababab"
+ "abababababababababababababababab]"));
+ ASSERT(!strcmp(hasher1.algorithm_string, "BLAKE512"));
+ ASSERT(!strcmp(hasher2.algorithm_string, "BLAKE512[salt=abababababababababababababababab"
+ "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;
}