Skip to content

Commit 40c130c

Browse files
ChausseaumoineGOURIOU Lénaïck
andauthored
Fix/statement absorption (#21)
Co-authored-by: GOURIOU Lénaïck <[email protected]>
1 parent d29a2c2 commit 40c130c

File tree

4 files changed

+13
-20
lines changed

4 files changed

+13
-20
lines changed

src/composition.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -636,19 +636,17 @@ where
636636
G: Group + GroupEncoding,
637637
C: Codec<Challenge = ProtocolChallenge<G>>,
638638
{
639-
fn absorb_statement_and_commitment(&self, codec: &mut C, commitment: &Self::Commitment) {
639+
fn absorb_commitment(&self, codec: &mut C, commitment: &Self::Commitment) {
640640
match (self, commitment) {
641-
(Protocol::Simple(p), ProtocolCommitment::Simple(c)) => {
642-
p.absorb_statement_and_commitment(codec, c)
643-
}
641+
(Protocol::Simple(p), ProtocolCommitment::Simple(c)) => p.absorb_commitment(codec, c),
644642
(Protocol::And(ps), ProtocolCommitment::And(cs)) => {
645643
for (i, p) in ps.iter().enumerate() {
646-
p.absorb_statement_and_commitment(codec, &cs[i]);
644+
p.absorb_commitment(codec, &cs[i]);
647645
}
648646
}
649647
(Protocol::Or(ps), ProtocolCommitment::Or(cs)) => {
650648
for (i, p) in ps.iter().enumerate() {
651-
p.absorb_statement_and_commitment(codec, &cs[i]);
649+
p.absorb_commitment(codec, &cs[i]);
652650
}
653651
}
654652
_ => panic!(),

src/fiat_shamir.rs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ use rand::{CryptoRng, RngCore};
2828
/// # Type Parameters
2929
/// - `C`: the codec used for encoding/decoding messages to/from the IP space.
3030
pub trait FiatShamir<C: Codec>: SigmaProtocol {
31-
fn absorb_statement_and_commitment(&self, codec: &mut C, commitment: &Self::Commitment);
31+
fn absorb_commitment(&self, codec: &mut C, commitment: &Self::Commitment);
3232

3333
fn get_challenge(&self, codec: &mut C) -> Result<Self::Challenge, Error>;
3434
}
@@ -109,8 +109,7 @@ where
109109

110110
let (commitment, prover_state) = self.sigmap.prover_commit(witness, rng)?;
111111
// Fiat Shamir challenge
112-
self.sigmap
113-
.absorb_statement_and_commitment(&mut codec, &commitment);
112+
self.sigmap.absorb_commitment(&mut codec, &commitment);
114113
let challenge = self.sigmap.get_challenge(&mut codec)?;
115114
// Prover's response
116115
let response = self.sigmap.prover_response(prover_state, &challenge)?;
@@ -143,8 +142,7 @@ where
143142
let mut codec = self.hash_state.clone();
144143

145144
// Recompute the challenge
146-
self.sigmap
147-
.absorb_statement_and_commitment(&mut codec, commitment);
145+
self.sigmap.absorb_commitment(&mut codec, commitment);
148146
let expected_challenge = self.sigmap.get_challenge(&mut codec)?;
149147
// Verification of the proof
150148
match *challenge == expected_challenge {
@@ -194,8 +192,7 @@ where
194192
let mut codec = self.hash_state.clone();
195193

196194
// Recompute the challenge
197-
self.sigmap
198-
.absorb_statement_and_commitment(&mut codec, &commitment);
195+
self.sigmap.absorb_commitment(&mut codec, &commitment);
199196
let challenge = self.sigmap.get_challenge(&mut codec)?;
200197
// Verification of the proof
201198
self.sigmap.verifier(&commitment, &challenge, &response)

src/schnorr_protocol.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -438,15 +438,13 @@ where
438438
/// Absorbs statement and commitment into the codec.
439439
///
440440
/// # Parameters
441-
/// - `codec`: the Codec that absorbs commitments.
442-
/// - `commitment`: a commitment of [`SchnorrProtocol`].
443-
fn absorb_statement_and_commitment(&self, codec: &mut C, commitment: &Self::Commitment) {
444-
let mut data = self.0.label();
445-
441+
/// - `codec`: the Codec that absorbs commitments
442+
/// - `commitment`: a commitment of SchnorrProtocol
443+
fn absorb_commitment(&self, codec: &mut C, commitment: &Self::Commitment) {
444+
let mut data = Vec::new();
446445
for commit in commitment {
447446
data.extend_from_slice(commit.to_bytes().as_ref());
448447
}
449-
450448
codec.prover_message(&data);
451449
}
452450

src/tests/spec/custom_schnorr_protocol.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ where
156156
C: Codec<Challenge = <G as Group>::Scalar>,
157157
G: SRandom + GroupEncoding,
158158
{
159-
fn absorb_statement_and_commitment(&self, codec: &mut C, commitment: &Self::Commitment) {
159+
fn absorb_commitment(&self, codec: &mut C, commitment: &Self::Commitment) {
160160
let mut data = Vec::new();
161161
for commit in commitment {
162162
data.extend_from_slice(commit.to_bytes().as_ref());

0 commit comments

Comments
 (0)