Skip to content

Commit 7c4d11b

Browse files
committed
refactor: move group-related functions into crate::group.
1 parent ac8183d commit 7c4d11b

File tree

10 files changed

+22
-35
lines changed

10 files changed

+22
-35
lines changed

src/composition.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ use crate::{
2929
errors::Error,
3030
fiat_shamir::Nizk,
3131
linear_relation::{CanonicalLinearRelation, LinearRelation},
32-
serialization::{deserialize_scalars, serialize_scalars},
3332
traits::{SigmaProtocol, SigmaProtocolSimulator},
3433
};
34+
use crate::group::serialization::{deserialize_scalars, serialize_scalars};
3535

3636
/// A protocol proving knowledge of a witness for a composition of linear relations.
3737
///

src/group/mod.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/// Implementation of multi-scalar multiplication (MSM) over scalars and points.
2+
pub mod msm;
3+
4+
/// Implementation of batch serialization functions for scalars and points.
5+
pub mod serialization;
File renamed without changes.
File renamed without changes.

src/lib.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,16 @@
5050
#![deny(unused_variables)]
5151
#![deny(unused_mut)]
5252

53+
pub mod codec;
5354
pub mod composition;
5455
pub mod errors;
55-
pub mod fiat_shamir;
5656
pub mod linear_relation;
57-
pub mod schnorr_protocol;
58-
pub mod serialization;
5957
pub mod traits;
6058

61-
pub mod codec;
62-
pub mod duplex_sponge;
59+
pub(crate) mod duplex_sponge;
60+
pub(crate) mod fiat_shamir;
61+
pub(crate) mod group;
62+
pub(crate) mod schnorr_protocol;
6363

6464
#[cfg(test)]
6565
pub mod tests;

src/linear_relation/canonical.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use subtle::{Choice, ConstantTimeEq};
88

99
use super::{GroupMap, GroupVar, LinearCombination, LinearRelation, ScalarTerm, ScalarVar};
1010
use crate::errors::{Error, InvalidInstance};
11-
use crate::linear_relation::msm::VariableMultiScalarMul;
11+
use crate::group::msm::VariableMultiScalarMul;
1212

1313
// XXX. this definition is uncomfortably similar to LinearRelation, exception made for the weights.
1414
// It'd be nice to better compress potentially duplicated code.
@@ -258,7 +258,7 @@ impl<G: PrimeGroup> CanonicalLinearRelation<G> {
258258
/// ```
259259
pub fn from_label(data: &[u8]) -> Result<Self, Error> {
260260
use crate::errors::InvalidInstance;
261-
use crate::serialization::group_elt_serialized_len;
261+
use crate::group::serialization::group_elt_serialized_len;
262262

263263
let mut offset = 0;
264264

src/linear_relation/mod.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ use group::prime::PrimeGroup;
1616

1717
use crate::codec::Shake128DuplexSponge;
1818
use crate::errors::{Error, InvalidInstance};
19+
use crate::group::msm::VariableMultiScalarMul;
1920
use crate::Nizk;
2021

2122
/// Implementations of conversion operations such as From and FromIterator for var and term types.
@@ -27,10 +28,6 @@ mod ops;
2728
mod canonical;
2829
pub use canonical::CanonicalLinearRelation;
2930

30-
/// Implementation of multi-scalar multiplication (MSM) over scalars and points.
31-
mod msm;
32-
pub use msm::VariableMultiScalarMul;
33-
3431
/// A wrapper representing an index for a scalar variable.
3532
///
3633
/// Used to reference scalars in sparse linear combinations.

src/schnorr_protocol.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,11 @@
55
//! through a group morphism abstraction (see [Maurer09](https://crypto-test.ethz.ch/publications/files/Maurer09.pdf)).
66
77
use crate::errors::Error;
8-
use crate::linear_relation::CanonicalLinearRelation;
9-
use crate::{
10-
serialization::{
11-
deserialize_elements, deserialize_scalars, serialize_elements, serialize_scalars,
12-
},
13-
traits::{SigmaProtocol, SigmaProtocolSimulator},
8+
use crate::group::serialization::{
9+
deserialize_elements, deserialize_scalars, serialize_elements, serialize_scalars,
1410
};
11+
use crate::linear_relation::CanonicalLinearRelation;
12+
use crate::traits::{SigmaProtocol, SigmaProtocolSimulator};
1513

1614
use ff::Field;
1715
use group::prime::PrimeGroup;

src/tests/spec/test_vectors.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ fn test_spec_testvectors() {
6060
.expect("Failed to parse statement");
6161

6262
// Decode the witness from the test vector
63-
let witness = crate::serialization::deserialize_scalars::<G>(
63+
let witness = crate::group::serialization::deserialize_scalars::<G>(
6464
&vector.witness,
6565
parsed_instance.num_scalars,
6666
)

src/tests/test_relations.rs

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ use rand::RngCore;
55

66
use crate::codec::Shake128DuplexSponge;
77
use crate::fiat_shamir::Nizk;
8-
use crate::linear_relation::{CanonicalLinearRelation, Sum};
8+
use crate::linear_relation::{CanonicalLinearRelation, LinearRelation, Sum};
99

10-
use crate::linear_relation::{LinearRelation, VariableMultiScalarMul};
10+
use crate::group::msm::VariableMultiScalarMul;
1111

1212
/// LinearMap for knowledge of a discrete logarithm relative to a fixed basepoint.
1313
#[allow(non_snake_case)]
@@ -269,26 +269,13 @@ pub fn test_range<G: PrimeGroup, R: RngCore>(
269269
.copied()
270270
.collect::<Vec<_>>();
271271

272-
println!("test_range: witness length = {}", witness.len());
273-
274272
instance.set_elements([(var_G, G), (var_H, H)]);
275273
instance.set_element(var_C, G * x + H * r);
276274
for i in 0..BITS {
277275
instance.set_element(var_Ds[i], G * b[i] + H * s[i]);
278276
}
279-
assert!(
280-
instance.canonical().is_ok(),
281-
"{}",
282-
instance.canonical().err().unwrap()
283-
);
284-
285-
let canonical = instance.canonical().unwrap();
286-
println!(
287-
"test_range: relation has {} scalar variables",
288-
canonical.num_scalars
289-
);
290277

291-
(canonical, witness)
278+
(instance.canonical().unwrap(), witness)
292279
}
293280

294281
/// LinearMap for knowledge of an opening for use in a BBS commitment.

0 commit comments

Comments
 (0)