diff options
author | Mattias Andrée <maandree@kth.se> | 2024-09-01 18:12:21 +0200 |
---|---|---|
committer | Mattias Andrée <maandree@kth.se> | 2024-09-01 18:12:21 +0200 |
commit | 85b12e691577b4d4fe09b80b06e91a801dc3dfa9 (patch) | |
tree | 69c64bc9a9fc97826fe8cb2d7ef82f00b1193efc /t/blake512.c | |
parent | Add support for BLAKE2 (but not tree-hashing) (diff) | |
download | libhashsum-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/blake512.c')
-rw-r--r-- | t/blake512.c | 256 |
1 files changed, 256 insertions, 0 deletions
diff --git a/t/blake512.c b/t/blake512.c new file mode 100644 index 0000000..7166769 --- /dev/null +++ b/t/blake512.c @@ -0,0 +1,256 @@ +/* See LICENSE file for copyright and license details. */ +#ifdef SUPPORT_BLAKE512 +# define TEST +# include "../common.h" + + +static struct testcase testcases[] = { + {1, 0, "", + "a8cfbbd73726062df0c6864dda65defe58ef0cc52a5625090fa17601e1eecd1b" + "628e94f396ae402a00acc9eab77b4d4c2e852aaaa25a636d80af3fc7913ef5b8"}, + {1, 0, "The quick brown fox jumps over the lazy dog", + "1f7e26f63b6ad25a0896fd978fd050a1766391d2fd0471a77afb975e5034b7ad" + "2d9ccf8dfb47abbbe656e1b82fbc634ba42ce186e8dc5e1ce09a885d41f43451"}, + {1, 0, "The quick brown fox jumps over the lazy dof", + "a701c2a1f9baabd8b1db6b75aee096900276f0b86dc15d247ecc03937b370324" + "a16a4ffc0c3a85cd63229cfa15c15f4ba6d46ae2e849ed6335e9ff43b764198a"}, + {0, 1, "\xff", + "69269d2195e03088f928a24a4539849727e47dc46d2596f12b2c88491776f20c" + "31b1526912aec62f29e6641221ca2a67e149857be5e6e08fc3f49ec5d7b7138c"}, + {0, 1, "\x7f", + "69269d2195e03088f928a24a4539849727e47dc46d2596f12b2c88491776f20c" + "31b1526912aec62f29e6641221ca2a67e149857be5e6e08fc3f49ec5d7b7138c"}, + {0, 1, "\x01", + "69269d2195e03088f928a24a4539849727e47dc46d2596f12b2c88491776f20c" + "31b1526912aec62f29e6641221ca2a67e149857be5e6e08fc3f49ec5d7b7138c"}, + {0, 1, "\xfe", + "f0a9b5b755802205fd1a1f56e7a03d7573d46e8ba5037517281560fbe6db03c1" + "74b00597fb4e1427747c7382fe63c6692f05a5e0841e99883cb7c272c2a62191"}, + {0, 1, "\x7e", + "f0a9b5b755802205fd1a1f56e7a03d7573d46e8ba5037517281560fbe6db03c1" + "74b00597fb4e1427747c7382fe63c6692f05a5e0841e99883cb7c272c2a62191"}, + {0, 1, "\x00", + "f0a9b5b755802205fd1a1f56e7a03d7573d46e8ba5037517281560fbe6db03c1" + "74b00597fb4e1427747c7382fe63c6692f05a5e0841e99883cb7c272c2a62191"}, + {1, 1, "\x00", + "f0a9b5b755802205fd1a1f56e7a03d7573d46e8ba5037517281560fbe6db03c1" + "74b00597fb4e1427747c7382fe63c6692f05a5e0841e99883cb7c272c2a62191"}, + {1, 2, "\x03", + "777e21c87839badde651fc37334f6d7cdc8316914e7cb76dab2efab90c62ef30" + "7e590936349b85041542f00d94d870633957699e818db79e1e064b0991a9cd1a"}, + {1, 3, "\x03", + "1ffb9a5c5c4c5a0cb91d806fc1398e8a49bdac2cfb549628c886bf388f5a6c6b" + "0854bc9c68155502016592c3f0cd54ded83276463a2aed864436950d99244958"}, + {1, 4, "\x01", + "32ff282bc8a43dc777ab74582fc2354f4294c6d634b25c4f2f606c72e10ae41e" + "f7f9391f3533649ce73a0dc6b5d30497f655bb87ae45aeb03c50c96d4c5218ff"}, + {1, 5, "\x12", + "783a1850bc31594e382e346351cc004572288f1a12d95b6b52fc47a071033efd" + "7ad6fc0424c93b97708da15cf0482bb0afa1b289545ae6cbbcd2970611dabb46"}, + {1, 6, "\x0a", + "fc355cd7b2f3cec08f4fbf64f8d08394c04ea80e9a6c2920312f450183c53739" + "5a6202d2532ff35597a7c2ec719c4174f347a8cf795fd71d2933a7003ecb05d0"}, + {1, 7, "\x19", + "85bb7f4b9119d4495805c6f5ad9d4eb5f9ee363c34741147483abd6dfd24336b" + "d1a5fa566578f861ffaa0ad6c617491a378477d6dd3d8025ff2b9ce6cdfd0b12"}, + {1, 8, "\xcc", + "4f0ef594f20172d23504873f596984c64c1583c7b2abb8d8786aa2aeeae1c46c" + "744b61893d661b0733b76d1fe19257dd68e0ef05422ca25d058dfe6c33d68709"}, + {1, 9, "\x98\x00", + "073cf7ed8216a6b27f882563986489d1c418874f2b797a9a0c5c95394f3a9dbe" + "b7eb3e2e6598fa5f49ad10e87f4add5f08057e5c1cd0b45004f22b63f91787ad"}, + {1, 10, "\x9d\x02", + "48ec88684d8239091d13d3d1d582a1b7cb07f6b67d9e9f1759c117f8dc447d01" + "2d6802748f1c613763a88e88a996a177ec562ba15c7da086502334f0df97d1b7"}, + {1, 11, "\xaa\x01", + "635213e9c8ffb6a535e6eaae9e9231d901e07607afaecd9122e3dfbacb0f11fb" + "388fcb91e68e1d7f05c70f1f8a5dd6549c93f87fb4f25fa31d6c6abb4b9a55c4"}, + {1, 12, "\x98\x0c", + "75d769e87d7c935faf58cd93043019bae5162e6b54d3b8b4aa2ae5fda3705e72" + "1e669dce33e8d59db6db0ad2c4ba7dc5f931ecf67a3448024b1515800b777129"}, + {1, 13, "\x50\x0c", + "8903efd089efa56634fa8d4bd953abcf30d72fca70ebad0ddfccbd4cda514c56" + "79dc763291dbb888a0bc7af7964a3be07f14c37ee696b51099bd91466429b22b"}, + {1, 14, "\x4d\x24", + "9464762c5824a83eef9445571734261e57a453e30e12e9581c4b378a7ec8219b" + "b3f25b0d900aa8dd446f2788395e4216f539ec4d3f8d41090ae7951a43bdf2ed"}, + {1, 15, "\xcb\x7b", + "ae69b3b57792c5909a8482a4006eccceeb14d1f76b15da66018586ae132adae8" + "641890921c13bdc2164be991b1e248d66b5e647a8e4b4eef73e33d3f06a33a5c"}, + {1, 16, "\x41\xfb", + "20afd72afbb66a5a0efd8b4a627cc2c82a5e4b6c63b0c9a78735c188d248c758" + "8fb4ee566b3b6fdcc235a498f7263feb7ab1411582a7055e3ce7a8c976e61fcc"}, + {1, 17, "\x4f\xf4\x00", + "802ad11445c31e09a51f1431a9b735a009f631e192c78de140a484bfba91d5c5" + "482a5539509f1b0fca92f4e5ab6040d1efdb7fe64f107b6cf5a5c79342c10491"}, + {1, 18, "\xfd\x04\x02", + "0e1a3fdc9506b0fb96bd69a14149fa41484c035a4867cc8f9ae8704e7fbf5b24" + "168089c1ae654a46d6dd2375bea3c62df92b2cba320a09a642917c7c7790f199"}, + {1, 19, "\x42\x4d\x00", + "dd05e2ca3219efe375f2bf8edb2f45c5c490fb5e06bddbb2a813e5e232c62f15" + "b70324db66f442be5d2a437b21df736ebbd3eba0b58591550b45ef9838703054"}, + {1, 20, "\x3f\xde\x07", + "8dc0a2797160f1eb1e4fca864f99298e655572adce432a03e5ff3a5dc814bbd8" + "1e3b328bbf8191e9041c57780f27fbecc1618b3fd140da3b96e2d0f769b441a1"}, + {1, 21, "\x33\x57\x16", + "b501b4abc63aed8c5841e691e7f5ff5b096637e19342fa44feb53ddf84f16eb8" + "bc92730c41f2b29131f3c6701f9b3bb6dcb5af7e8a4d900243e7b136a0d60ddb"}, + {1, 22, "\x05\x1e\x3e", + "9d28c92c6b54f7f6888b6d210029eeafde05b7ab95e2a34d1f3979d3b62c8940" + "c4980a1a46cfead4a630cf8e5efb521b5e412059786f626d1054e62b0f2ed916"}, + {1, 23, "\x71\x7f\x31", + "855c53190122aec182624cd98ec4f97b362bc74c01eef9e1d140ce79ab54e127" + "7e8b873df52585c420b8c6d99652b47e5de322225dc1792788e71aa2912861f8"}, + {1, 24, "\x1f\x87\x7c", + "b1211367fd8a886674f74d92716e7585f9b6e933edc5ee7f974facdccc481cfa" + "42a0532375b94f2c0dd73d6189a815c2bafb5686d784be81fbb447b0f291272b"}, + {1, 25, "\xeb\x35\xcf\x01", + "df4050f53c05fa145dd89bf9ac94dcfd81f96f984ca484dbbbf92259f7b8ae19" + "d2fec657853bb2673ddb0ee26f298d8c4923daaeedc2926e7daf2157c697b2ed"}, + {1, 26, "\xb4\x06\xc4\x01", + "f507a52fb135565c74e5905fe9a43dcbfb29b39344faec39c15ad09b0a465fef" + "0be36183433d29243d74f119b8242bd94b0e6b37c2c1039d9d7c5af316fc46d4"}, + {1, 27, "\xce\xe8\x80\x02", + "06228dc4e1b32e816c77273e5e5b66349e82f48c6c7f3eea8876efa5db32d9fc" + "f2e26dd3eeae7355877ca9e7b31c0924c521b5e729cf08c4175dab8a451e5ad8"}, + {1, 28, "\xc5\x84\xdb\x0e", + "fbbbc6cb4832c6545236f9e36fc92f7a7709e38fdf7ea6cb100048409a3c5f36" + "e8a336360e7ab5ec26a8c13d8e663f08cac2b2519f40c61cd3284b9f320463da"}, + {1, 29, "\x53\x58\x7b\x13", + "91f4c152a8f637247a1747e2ca4df130d3be99c2dc3a9f2991df7a60900b1093" + "1fe670d10dc7725dc30e068f3220575f033e8634dd58904ca3136a04158a42ed"}, + {1, 30, "\x69\xa3\x05\x0d", + "5068d281c4eef98502d0d1de51b1f78764059fb599f036fd7f60c0fd4f50b634" + "205a196306ee78eabd3ce8eb8333a6da8bf0c7176d5230bcc6af48700fd7f343"}, + {1, 31, "\xc9\x37\x5e\x73", + "3501607fa6b01de201a10bd1db756621cd2097e3476acf862e8b723d98bc4399" + "84f8de6bc8514ed800265ef21116cf36aba1f68f9f96befb9b48eafbe19bf805"}, + {1, 32, "\xc1\xec\xfd\xfc", + "ccbcdbc1a30ebbcc4fc015fdb1caba6c0ad6719301b4bbad4b0efab1141174a1" + "5e2e8b8b8e5671c1864a0f75ecb20f76dac45159e67786d07d79a29b1827e5a4"}, + {1, 33, "\x8d\x73\xe8\xa2\x01", + "1f41330d6ad6f6fafa54f7c1a698a03ebd96e74025d0e5476138589e02194c13" + "3fad988e47c81a0ed887943670d41e560327761f897d996dc59cb9025b095315"}, + {1, 34, "\x06\xf2\x52\x20\x01", + "4d9fa2dc0049230afd0d72e6195a19523d3d8b4f1983d1108157b7085ae82a0f" + "90542351fc8d66437fc9a9bc6f98807313abdc2b4c6140b819b201df6c62b1da"}, + {1, 35, "\x3e\xf6\xc3\x6f\x04", + "cc14844fa038671773c4201fdd7e106e951d77cef951d253e9da9f07f2bb3040" + "a2569834d6836b30b743d39bee94a7e7721672ca30fd94b1de23bdcb1c218ff5"}, + {1, 36, "\x01\x27\xa1\xd3\x02", + "37f909daa8a5e503b8af6f0826ba02ac14a4e92221a551cbcf4128a4c867d101" + "d4f158232de31bc4d9ed298def8e202db9490a0da1d09cb665bdf18a14f8ff4a"}, + {1, 37, "\x6a\x6a\xb6\xc2\x08", + "4b6c339182ec57c24832313bba724aa37b2d8833e04fc31a1a869c3da3ba1061" + "36bfda897cec7aedd28227c2b118fa417c2592a71216be6e3766b26f04b4ea4d"}, + {1, 38, "\xaf\x31\x75\xe1\x06", + "04548a4bf2fd865da48c060262bf0f17dc084c9d4162a06f2f7aad1aed7244d7" + "422d257e54a9eef9c24c8827e88fa707c9d0ee1ac555b46b7ee8e5ecc6fa8f1d"}, + {1, 39, "\xb6\x66\x09\xed\x61", + "a5b8b8de6cf9c14ced277140d219755a4af5c80e0dbd67721831b1284a501c50" + "92a669390ecf997e406c4c1a43b25903759d0ae5ac09390f5d2ed747ae1bd361"}, + {1, 40, "\x21\xf1\x34\xac\x57", + "ec6eaabc2a128c38dfcddf9aaad5bb6fba397aac06a4b584b2dbdeb0cd7fdb1f" + "d248ef93c0686b73818b2b78c923c70eba63c096f33d842ada959f7674e4730c"}, + {1, 41, "\x3d\xc2\xaa\xdf\xfc\x01", + "eb9dc2c740374e28d9247393afe2d713e843c289977ea48abda51fb2950c3967" + "aea50d48e7eba75b591140062e14495d416934f9817ec832988397c3a781dfeb"}, + {1, 42, "\x92\x02\x73\x6d\x22\x02", + "0c5dfdfd3167a6ca86abf804e71342e893b0270b3ef2d4c81032482538c0f580" + "2817a16d6ec12f541ce947d5579c27b9b7a5ee424554f3fa2c78a2fa8340d444"}, + {1, 43, "\xf2\x19\xbd\x62\x98\x04", + "40f191621e6a183a0bd3f10df6716ddf09339fba20b48dbbb09fb44b82f15be7" + "7ad595bfdd1f1245b930334ea7042e716626d5fb49bc275df0b60639d9aea618"}, + {1, 44, "\xf3\x51\x1e\xe2\xc4\x0d", + "e76cefbc4621956af8d7d5121bd10bdddaeff359ff2b988425f22bba15c8ad4d" + "bbf70f7e8b5cf2ee044eb9625bf36ec9f910e01701bbc8541d8529a13a56cc98"}, + {1, 45, "\x3e\xca\xb6\xbf\x77\x04", + "39b3d2f730b774e16504fd6e5b2eafca5f68c9d5022e62d3bca67793d3260f34" + "d1dd594b95ef5a735aa9b78ff0b6028b484c34a4bcd9adb4ec5a9736ecd434eb"}, + {1, 46, "\xcd\x62\xf6\x88\xf4\x19", + "69b151653d645e84c6eb509665a89a075210f743f8c7218e6c98895c9436e9ee" + "dfa2094597b13533e1c3af6b21907ddf2f4c5c8379e64a71b66add2a170d5689"}, + {1, 47, "\xc2\xcb\xaa\x33\xa9\x1f", + "eac8acd05f04461d8050b53dafa99b0516adfacc8dbd3adc7dacfc7adea4ad92" + "50fa9e10ad43602e15a762a333a2cdb1c040ede1de79ac51b484507b5ae16536"}, + {1, 48, "\xc6\xf5\x0b\xb7\x4e\x29", + "b6e8a7380df1f007d7c271e7255bbca7714f25029ac1fd6fe92ef74cbcd9e99c" + "112f8ae1a45ccb566ce19d9678a122c612beff5f8eeeee3f3f402fd2781182d4"}, + {1, 49, "\x79\xf1\xb4\xcc\xc6\x2a\x00", + "1cc9fe09100fbc45f20382353785aa753fbd19ea0ab655c0d8338e0d07154cca" + "a5659698a6627302c25dd54cdfde00c0ef06905abc55030563399ca8efae2c22"} +}; + + +#else +# define TEST_UNSUPPORTED +# include "../common.h" +#endif + + +static int +kat_test(void) +{ + TEST_MAIN("BLAKE512", BLAKE512); +} + + +int +main(void) +{ +#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; +} |