77TEST(grumpkin, CheckPrecomputedGenerators)
79 ASSERT_TRUE((bb::check_precomputed_generators<grumpkin::g1, "pedersen_hash_length", 1UL>()));
80 ASSERT_TRUE((bb::check_precomputed_generators<grumpkin::g1, "DEFAULT_DOMAIN_SEPARATOR", 8UL>()));
86TEST(grumpkin, ScalarMulNegativeK2Regression)
91 {{ 0x71922da036dca5f4, 0xd970a56127fb8227, 0x59e26bcea0d48bac, 0x0 },
"m=1"},
92 {{ 0xe3245b406db94be8, 0xb2e14ac24ff7044e, 0xb3c4d79d41a91759, 0x0 },
"m=2"},
93 {{ 0x54b688e0a495f1dc, 0x8c51f02377f28676, 0x0da7436be27da306, 0x1 },
"m=3"},
97 for (
const auto& tc : boundary_cases) {
98 grumpkin::fr base_scalar{ tc.limbs[0], tc.limbs[1], tc.limbs[2], tc.limbs[3] };
104 EXPECT_EQ(naive_result.
on_curve(),
true) << tc.tag;
105 EXPECT_EQ(endo_result.
on_curve(),
true) << tc.tag;
106 EXPECT_EQ(endo_result, naive_result) << tc.tag;
109 for (
size_t i = 0; i < 100; ++i) {
117 EXPECT_EQ(naive_res.
on_curve(),
true) << tc.tag <<
" offset " << i;
118 EXPECT_EQ(endo_res.
on_curve(),
true) << tc.tag <<
" offset " << i;
119 EXPECT_EQ(endo_res, naive_res) << tc.tag <<
" offset " << i;