68TEST(schnorr, hmac_signature_consistency)
70 std::string message_a =
"The quick brown fox jumped over the lazy dog.";
71 std::string message_b =
"The quick brown dog jumped over the lazy fox.";
76 ASSERT_NE(account_a.private_key, account_b.private_key);
77 ASSERT_NE(account_a.public_key, account_b.public_key);
81 schnorr_construct_signature<KeccakHasher, grumpkin::fq, grumpkin::fr, grumpkin::g1>(message_a, account_a);
83 schnorr_construct_signature<KeccakHasher, grumpkin::fq, grumpkin::fr, grumpkin::g1>(message_a, account_a);
85 ASSERT_NE(signature_a.e, signature_b.e);
86 ASSERT_NE(signature_a.s, signature_b.s);
90 schnorr_construct_signature<KeccakHasher, grumpkin::fq, grumpkin::fr, grumpkin::g1>(message_a, account_a);
92 schnorr_construct_signature<KeccakHasher, grumpkin::fq, grumpkin::fr, grumpkin::g1>(message_a, account_b);
94 ASSERT_NE(signature_c.e, signature_d.e);
95 ASSERT_NE(signature_c.s, signature_d.s);
99 schnorr_construct_signature<KeccakHasher, grumpkin::fq, grumpkin::fr, grumpkin::g1>(message_a, account_a);
101 schnorr_construct_signature<KeccakHasher, grumpkin::fq, grumpkin::fr, grumpkin::g1>(message_b, account_a);
103 ASSERT_NE(signature_e.e, signature_f.e);
104 ASSERT_NE(signature_e.s, signature_f.s);
108 schnorr_construct_signature<KeccakHasher, grumpkin::fq, grumpkin::fr, grumpkin::g1>(message_a, account_a);
110 schnorr_construct_signature<KeccakHasher, grumpkin::fq, grumpkin::fr, grumpkin::g1>(message_b, account_b);
112 ASSERT_NE(signature_g.e, signature_h.e);
113 ASSERT_NE(signature_g.s, signature_h.s);
115 bool res = schnorr_verify_signature<KeccakHasher, grumpkin::fq, grumpkin::fr, grumpkin::g1>(
116 message_a, account_a.public_key, signature_a);
117 EXPECT_EQ(res,
true);
118 res = schnorr_verify_signature<KeccakHasher, grumpkin::fq, grumpkin::fr, grumpkin::g1>(
119 message_a, account_a.public_key, signature_b);
120 EXPECT_EQ(res,
true);
121 res = schnorr_verify_signature<KeccakHasher, grumpkin::fq, grumpkin::fr, grumpkin::g1>(
122 message_a, account_a.public_key, signature_c);
123 EXPECT_EQ(res,
true);
124 res = schnorr_verify_signature<KeccakHasher, grumpkin::fq, grumpkin::fr, grumpkin::g1>(
125 message_a, account_b.public_key, signature_d);
126 EXPECT_EQ(res,
true);
127 res = schnorr_verify_signature<KeccakHasher, grumpkin::fq, grumpkin::fr, grumpkin::g1>(
128 message_a, account_a.public_key, signature_e);
129 EXPECT_EQ(res,
true);
130 res = schnorr_verify_signature<KeccakHasher, grumpkin::fq, grumpkin::fr, grumpkin::g1>(
131 message_b, account_a.public_key, signature_f);
132 EXPECT_EQ(res,
true);
133 res = schnorr_verify_signature<KeccakHasher, grumpkin::fq, grumpkin::fr, grumpkin::g1>(
134 message_a, account_a.public_key, signature_g);
135 EXPECT_EQ(res,
true);
136 res = schnorr_verify_signature<KeccakHasher, grumpkin::fq, grumpkin::fr, grumpkin::g1>(
137 message_b, account_b.public_key, signature_h);
138 EXPECT_EQ(res,
true);