aboutsummaryrefslogtreecommitdiffstats
path: root/t/rawshake128.c
diff options
context:
space:
mode:
authorMattias Andrée <maandree@kth.se>2024-09-01 18:12:21 +0200
committerMattias Andrée <maandree@kth.se>2024-09-01 18:12:21 +0200
commit85b12e691577b4d4fe09b80b06e91a801dc3dfa9 (patch)
tree69c64bc9a9fc97826fe8cb2d7ef82f00b1193efc /t/rawshake128.c
parentAdd support for BLAKE2 (but not tree-hashing) (diff)
downloadlibhashsum-85b12e691577b4d4fe09b80b06e91a801dc3dfa9.tar.gz
libhashsum-85b12e691577b4d4fe09b80b06e91a801dc3dfa9.tar.bz2
libhashsum-85b12e691577b4d4fe09b80b06e91a801dc3dfa9.tar.xz
Move test files into t/
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to 't/rawshake128.c')
-rw-r--r--t/rawshake128.c80
1 files changed, 80 insertions, 0 deletions
diff --git a/t/rawshake128.c b/t/rawshake128.c
new file mode 100644
index 0000000..5abc8cf
--- /dev/null
+++ b/t/rawshake128.c
@@ -0,0 +1,80 @@
+/* See LICENSE file for copyright and license details. */
+#ifdef SUPPORT_SHAKE
+# define TEST
+# include "../common.h"
+
+
+#define MSG1600_32 "\xA3\xA3\xA3\xA3"
+#define MSG1600_160 MSG1600_32 MSG1600_32 MSG1600_32 MSG1600_32 MSG1600_32
+#define MSG1600_800 MSG1600_160 MSG1600_160 MSG1600_160 MSG1600_160 MSG1600_160
+#define MSG1600 MSG1600_800 MSG1600_800
+
+
+static struct testcase testcases[] = {
+ {1, 0, "", "fa019a3b17630df6014853b5470773f1"},
+ {1, 0, MSG1600, "96a8092bb1419aefb092e1935190b10e"}
+};
+
+
+#else
+# define TEST_UNSUPPORTED
+# include "../common.h"
+#endif
+
+
+static int
+main_test(void)
+{
+ TEST_MAIN("RawSHAKE128", RAWSHAKE128);
+}
+
+
+int
+main(void)
+{
+#ifdef SUPPORT_RAWSHAKE
+ struct libhashsum_hasher hasher;
+ char hexsum[1024];
+#endif
+
+ int r = main_test();
+ if (r)
+ return r;
+
+ ASSERT(!libhashsum_init_rawshake128_hasher(&hasher, 8));
+ ASSERT(!strcmp(hasher.algorithm_string, "RawSHAKE128[n=8]"));
+ ASSERT(!hasher.finalise_const(&hasher, "", 0, 0));
+ ASSERT(hasher.hash_size == 1);
+ hex(hexsum, hasher.hash_output, hasher.hash_size);
+ ASSERT(!strcmp(hexsum, "fa"));
+
+ ASSERT(!libhashsum_init_rawshake128_hasher(&hasher, 32));
+ ASSERT(!strcmp(hasher.algorithm_string, "RawSHAKE128[n=32]"));
+ ASSERT(!hasher.finalise_const(&hasher, "", 0, 0));
+ ASSERT(hasher.hash_size == 4);
+ hex(hexsum, hasher.hash_output, hasher.hash_size);
+ ASSERT(!strcmp(hexsum, "fa019a3b"));
+
+ ASSERT(!libhashsum_init_rawshake128_hasher(&hasher, 32));
+ ASSERT(!strcmp(hasher.algorithm_string, "RawSHAKE128[n=32]"));
+ ASSERT(!hasher.finalise_const(&hasher, MSG1600, 1600/8, 0));
+ ASSERT(hasher.hash_size == 4);
+ hex(hexsum, hasher.hash_output, hasher.hash_size);
+ ASSERT(!strcmp(hexsum, "96a8092b"));
+
+ ASSERT(!libhashsum_init_rawshake128_hasher(&hasher, 128));
+ ASSERT(!strcmp(hasher.algorithm_string, "RawSHAKE128"));
+ ASSERT(!hasher.finalise_const(&hasher, MSG1600, 1600/8, 0));
+ ASSERT(hasher.hash_size == 128/8);
+ hex(hexsum, hasher.hash_output, hasher.hash_size);
+ ASSERT(!strcmp(hexsum, "96a8092bb1419aefb092e1935190b10e"));
+
+ ASSERT(!libhashsum_init_rawshake128_hasher(&hasher, 256));
+ ASSERT(!strcmp(hasher.algorithm_string, "RawSHAKE128[n=256]"));
+ ASSERT(!hasher.finalise_const(&hasher, MSG1600, 1600/8, 0));
+ ASSERT(hasher.hash_size == 256/8);
+ hex(hexsum, hasher.hash_output, hasher.hash_size);
+ ASSERT(!strcmp(hexsum, "96a8092bb1419aefb092e1935190b10e6323db3b2e8e1ecc546518f20820da7b"));
+
+ return 0;
+}