1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-11-21 23:18:13 +00:00

tests(crypto): test groestl512

This commit is contained in:
Ondřej Vejpustek 2024-08-16 13:44:53 +02:00
parent b0e703f988
commit 729da01b88

View File

@ -62,6 +62,7 @@
#include "ed25519-donna/ed25519-keccak.h" #include "ed25519-donna/ed25519-keccak.h"
#include "ed25519-donna/ed25519.h" #include "ed25519-donna/ed25519.h"
#include "elligator2.h" #include "elligator2.h"
#include "groestl.h"
#include "hash_to_curve.h" #include "hash_to_curve.h"
#include "hmac_drbg.h" #include "hmac_drbg.h"
#include "memzero.h" #include "memzero.h"
@ -6501,6 +6502,37 @@ START_TEST(test_mnemonic) {
} }
END_TEST END_TEST
START_TEST(test_groestl512) {
static struct {
const char *msg;
const char *hash;
} tests[] = {
{"",
"6d3ad29d279110eef3adbd66de2a0345a77baede1557f5d099fce0c03d6dc2ba8e6d4a6"
"633dfbd66053c20faa87d1a11f39a7fbe4a6c2f009801370308fc4ad8"},
// abc
{"616263",
"70e1c68c60df3b655339d67dc291cc3f1dde4ef343f11b23fdd44957693815a75a8339c"
"682fc28322513fd1f283c18e53cff2b264e06bf83a2f0ac8c1f6fbff6"},
// 64 bytes
{"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f"
"202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f",
"6e8c9b90e36cea68c029a7d8b95b718c84205d81be227ba61510f567d46b83edd11f301"
"bf1e7041be991b22fdbee82dbdce7ab0e0ee42a795ca965a439532a39"},
};
uint8_t hash[64];
GROESTL512_CTX ctx;
for (size_t i = 0; i < sizeof(tests) / sizeof(*tests); i++) {
groestl512_Init(&ctx);
groestl512_Update(&ctx, fromhex(tests[i].msg), strlen(tests[i].msg) / 2);
groestl512_Final(&ctx, hash);
ck_assert_mem_eq(hash, fromhex(tests[i].hash), 64);
}
}
END_TEST
START_TEST(test_mnemonic_check) { START_TEST(test_mnemonic_check) {
static const char *vectors_ok[] = { static const char *vectors_ok[] = {
"abandon abandon abandon abandon abandon abandon abandon abandon abandon " "abandon abandon abandon abandon abandon abandon abandon abandon abandon "
@ -11558,6 +11590,10 @@ Suite *test_suite(void) {
tcase_add_test(tc, test_blake2s); tcase_add_test(tc, test_blake2s);
suite_add_tcase(s, tc); suite_add_tcase(s, tc);
tc = tcase_create("groestl");
tcase_add_test(tc, test_groestl512);
suite_add_tcase(s, tc);
tc = tcase_create("chacha_drbg"); tc = tcase_create("chacha_drbg");
tcase_add_test(tc, test_chacha_drbg); tcase_add_test(tc, test_chacha_drbg);
suite_add_tcase(s, tc); suite_add_tcase(s, tc);