48 for (
size_t i = 0; i < 4; ++i) {
49 std::memcpy(&limbs[i], Data + i * 8,
sizeof(uint64_t));
51 const uint256_t scalar_raw(limbs[0], limbs[1], limbs[2], limbs[3]);
57 const auto output = element_ct::secp256r1_fixed_base_mul(u);
60 if (expected.is_point_at_infinity()) {
62 assert(output.is_point_at_infinity().get_value() &&
"fixed_base_mul: u=0 did not yield infinity");
64 assert(!output.is_point_at_infinity().get_value() &&
"fixed_base_mul: unexpected infinity");
65 assert(output.x().get_value().lo ==
uint256_t(expected.x) &&
"fixed_base_mul: x mismatch");
66 assert(output.y().get_value().lo ==
uint256_t(expected.y) &&
"fixed_base_mul: y mismatch");