Skip to content

Commit 389bfb3

Browse files
committed
Fix slice problem in schnorr_proof.rs
1 parent 068d8ce commit 389bfb3

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

src/toolbox/sigma/schnorr_proof.rs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,12 @@ where
103103
for i in 0..scalar_nb {
104104
let start = i * point_size;
105105
let end = start + point_size;
106+
106107
let mut buf = vec![0u8; point_size];
108+
let mut repr_array = G::Repr::default();
109+
repr_array.as_mut().copy_from_slice(&buf);
107110
buf.copy_from_slice(&data[start..end]);
108-
let elem_ct = G::from_bytes(&buf);
111+
let elem_ct = G::from_bytes(&repr_array);
109112
if !bool::from(elem_ct.is_some()) {
110113
return None;
111114
}
@@ -116,9 +119,12 @@ where
116119
for i in 0..scalar_nb {
117120
let start = scalar_nb * point_size + i * scalar_size;
118121
let end = start + scalar_size;
119-
let mut buf = [0u8; scalar_size];
122+
123+
let mut buf = vec![0u8; scalar_size];
124+
let mut repr_array = <<G as Group>::Scalar as PrimeField>::Repr::default();
125+
repr_array.as_mut().copy_from_slice(&buf);
120126
buf.copy_from_slice(&data[start..end]);
121-
let scalar_ct = G::Scalar::from_repr(buf);
127+
let scalar_ct = G::Scalar::from_repr(repr_array);
122128
if !bool::from(scalar_ct.is_some()) {
123129
return None;
124130
}

tests/non_interactive_protocol.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
use group::Group;
21
use rand::rngs::OsRng;
32
use curve25519_dalek::ristretto::RistrettoPoint;
43
use curve25519_dalek::scalar::Scalar;
54

6-
use lox_zkp::toolbox::sigma::group_mophism::GroupMorphismPreimage;
5+
use lox_zkp::toolbox::sigma::group_morphism::GroupMorphismPreimage;
76
use lox_zkp::toolbox::sigma::schnorr_proof::SchnorrProof;
87
use lox_zkp::toolbox::sigma::transcript::transcriptcodec::KeccakTranscript;
98
use lox_zkp::toolbox::sigma::fiat_shamir::NISigmaProtocol;
@@ -36,7 +35,7 @@ fn fiat_shamir_schnorr_proof_ristretto() {
3635
let protocol = SchnorrProof { morphismp };
3736

3837
// Fiat-Shamir wrapper
39-
let mut nizk = NISigmaProtocol::<_, KeccakTranscript<G>, G>::new(domain_sep, protocol);
38+
let mut nizk = NISigmaProtocol::<SchnorrProof<G>, KeccakTranscript<G>, G>::new(domain_sep, protocol);
4039

4140
// Prove
4241
let proof_bytes = nizk.prove(&w, &mut rng);

0 commit comments

Comments
 (0)