50 using NativeFlavor =
typename Flavor::NativeFlavor;
51 using NativeVerificationKey =
typename NativeFlavor::VerificationKey;
59 if constexpr (IsAnyOf<Flavor, TranslatorRecursiveFlavor, ECCVMRecursiveFlavor>) {
63 using InnerBuilder =
typename NativeFlavor::CircuitBuilder;
66 TestFixture::set_default_pairing_points_and_ipa_claim_and_proof(
builder);
71 OuterBuilder outer_builder;
72 StdlibVerificationKey
vk(&outer_builder, native_vk);
75 std::vector<FF> vk_field_elements =
vk.to_field_elements();
76 StdlibTranscript transcript;
77 for (
const auto& field_element : vk_field_elements) {
78 transcript.add_to_independent_hash_buffer(
"vk_element", field_element);
80 FF vk_hash_1 = transcript.hash_independent_buffer();
82 FF vk_hash_2 =
vk.hash(outer_builder);
83 EXPECT_EQ(vk_hash_1.get_value(), vk_hash_2.get_value());
85 if constexpr (!IsAnyOf<Flavor, TranslatorRecursiveFlavor, ECCVMRecursiveFlavor>) {
86 StdlibTranscript transcript_2;
87 FF vk_hash_3 =
vk.hash_through_transcript(
"", transcript_2);
88 EXPECT_EQ(vk_hash_2.get_value(), vk_hash_3.get_value());