Skip to content

Commit 0efb3d9

Browse files
committed
Rename Group methods
- `random_nonzero_scalar` -> `random_scalar` - `scalar_as_bytes` -> `serialize_scalar` - `scalar_invert` -> `invert_scalar`
1 parent f8cd7a1 commit 0efb3d9

File tree

7 files changed

+30
-30
lines changed

7 files changed

+30
-30
lines changed

src/group/mod.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,13 +83,13 @@ pub trait Group {
8383
fn deserialize_scalar(scalar_bits: &GenericArray<u8, Self::ScalarLen>) -> Result<Self::Scalar>;
8484

8585
/// picks a scalar at random
86-
fn random_nonzero_scalar<R: RngCore + CryptoRng>(rng: &mut R) -> Self::Scalar;
86+
fn random_scalar<R: RngCore + CryptoRng>(rng: &mut R) -> Self::Scalar;
8787

8888
/// Serializes a scalar to bytes
89-
fn scalar_as_bytes(scalar: Self::Scalar) -> GenericArray<u8, Self::ScalarLen>;
89+
fn serialize_scalar(scalar: Self::Scalar) -> GenericArray<u8, Self::ScalarLen>;
9090

9191
/// The multiplicative inverse of this scalar
92-
fn scalar_invert(scalar: &Self::Scalar) -> Self::Scalar;
92+
fn invert_scalar(scalar: Self::Scalar) -> Self::Scalar;
9393

9494
/// Return an element from its fixed-length bytes representation. This is
9595
/// the unchecked version, which does not check for deserializing the

src/group/p256.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -150,16 +150,16 @@ impl Group for NistP256 {
150150
.map_err(|_| Error::ScalarError)
151151
}
152152

153-
fn random_nonzero_scalar<R: RngCore + CryptoRng>(rng: &mut R) -> Self::Scalar {
154-
Scalar::random(rng)
153+
fn random_scalar<R: RngCore + CryptoRng>(rng: &mut R) -> Self::Scalar {
154+
*SecretKey::random(rng).to_nonzero_scalar()
155155
}
156156

157-
fn scalar_as_bytes(scalar: Self::Scalar) -> GenericArray<u8, Self::ScalarLen> {
157+
fn serialize_scalar(scalar: Self::Scalar) -> GenericArray<u8, Self::ScalarLen> {
158158
scalar.into()
159159
}
160160

161-
fn scalar_invert(scalar: &Self::Scalar) -> Self::Scalar {
162-
scalar.invert().unwrap_or(Scalar::zero())
161+
fn invert_scalar(scalar: Self::Scalar) -> Self::Scalar {
162+
Option::from(scalar.invert()).unwrap()
163163
}
164164

165165
fn from_element_slice_unchecked(

src/group/ristretto.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ impl Group for Ristretto255 {
3131

3232
type Elem = RistrettoPoint;
3333

34+
type ElemLen = U32;
35+
3436
type Scalar = Scalar;
3537

3638
type ScalarLen = U32;
@@ -84,7 +86,7 @@ impl Group for Ristretto255 {
8486
.ok_or(Error::ScalarError)
8587
}
8688

87-
fn random_nonzero_scalar<R: RngCore + CryptoRng>(rng: &mut R) -> Self::Scalar {
89+
fn random_scalar<R: RngCore + CryptoRng>(rng: &mut R) -> Self::Scalar {
8890
loop {
8991
let scalar = {
9092
let mut scalar_bytes = [0u8; 64];
@@ -98,16 +100,14 @@ impl Group for Ristretto255 {
98100
}
99101
}
100102

101-
fn scalar_as_bytes(scalar: Self::Scalar) -> GenericArray<u8, Self::ScalarLen> {
103+
fn serialize_scalar(scalar: Self::Scalar) -> GenericArray<u8, Self::ScalarLen> {
102104
scalar.to_bytes().into()
103105
}
104106

105-
fn scalar_invert(scalar: &Self::Scalar) -> Self::Scalar {
107+
fn invert_scalar(scalar: Self::Scalar) -> Self::Scalar {
106108
scalar.invert()
107109
}
108110

109-
// The byte length necessary to represent group elements
110-
type ElemLen = U32;
111111
fn from_element_slice_unchecked(
112112
element_bits: &GenericArray<u8, Self::ElemLen>,
113113
) -> Result<Self::Elem> {

src/group/tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ fn test_identity_element_error<G: Group>() -> Result<()> {
4545
// Checks that the zero scalar cannot be deserialized
4646
fn test_zero_scalar_error<G: Group>() -> Result<()> {
4747
let zero_scalar = G::scalar_zero();
48-
let result = G::deserialize_scalar(&G::scalar_as_bytes(zero_scalar));
48+
let result = G::deserialize_scalar(&G::serialize_scalar(zero_scalar));
4949
assert!(matches!(result, Err(Error::ScalarError)));
5050

5151
Ok(())

src/serialization.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ use crate::{
3030
impl<G: Group, H: BlockSizeUser + Digest + FixedOutputReset> NonVerifiableClient<G, H> {
3131
/// Serialization into bytes
3232
pub fn serialize(&self) -> GenericArray<u8, G::ScalarLen> {
33-
G::scalar_as_bytes(self.blind)
33+
G::serialize_scalar(self.blind)
3434
}
3535

3636
/// Deserialization from bytes
@@ -53,7 +53,7 @@ impl<G: Group, H: BlockSizeUser + Digest + FixedOutputReset> VerifiableClient<G,
5353
G::ScalarLen: Add<G::ElemLen>,
5454
Sum<G::ScalarLen, G::ElemLen>: ArrayLength<u8>,
5555
{
56-
G::scalar_as_bytes(self.blind).concat(G::to_arr(self.blinded_element))
56+
G::serialize_scalar(self.blind).concat(G::to_arr(self.blinded_element))
5757
}
5858

5959
/// Deserialization from bytes
@@ -74,7 +74,7 @@ impl<G: Group, H: BlockSizeUser + Digest + FixedOutputReset> VerifiableClient<G,
7474
impl<G: Group, H: BlockSizeUser + Digest + FixedOutputReset> NonVerifiableServer<G, H> {
7575
/// Serialization into bytes
7676
pub fn serialize(&self) -> GenericArray<u8, G::ScalarLen> {
77-
G::scalar_as_bytes(self.sk)
77+
G::serialize_scalar(self.sk)
7878
}
7979

8080
/// Deserialization from bytes
@@ -97,7 +97,7 @@ impl<G: Group, H: BlockSizeUser + Digest + FixedOutputReset> VerifiableServer<G,
9797
G::ScalarLen: Add<G::ElemLen>,
9898
Sum<G::ScalarLen, G::ElemLen>: ArrayLength<u8>,
9999
{
100-
G::scalar_as_bytes(self.sk).concat(G::to_arr(self.pk))
100+
G::serialize_scalar(self.sk).concat(G::to_arr(self.pk))
101101
}
102102

103103
/// Deserialization from bytes
@@ -122,7 +122,7 @@ impl<G: Group, H: BlockSizeUser + Digest + FixedOutputReset> Proof<G, H> {
122122
G::ScalarLen: Add<G::ScalarLen>,
123123
Sum<G::ScalarLen, G::ScalarLen>: ArrayLength<u8>,
124124
{
125-
G::scalar_as_bytes(self.c_scalar).concat(G::scalar_as_bytes(self.s_scalar))
125+
G::serialize_scalar(self.c_scalar).concat(G::serialize_scalar(self.s_scalar))
126126
}
127127

128128
/// Deserialization from bytes

src/tests/voprf_test_vectors.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ fn test_base_seed_to_key<G: Group, H: BlockSizeUser + Digest + FixedOutputReset>
153153

154154
assert_eq!(
155155
&parameters.sksm,
156-
&G::scalar_as_bytes(server.get_private_key()).to_vec()
156+
&G::serialize_scalar(server.get_private_key()).to_vec()
157157
);
158158
}
159159
Ok(())
@@ -167,7 +167,7 @@ fn test_verifiable_seed_to_key<G: Group, H: BlockSizeUser + Digest + FixedOutput
167167

168168
assert_eq!(
169169
&parameters.sksm,
170-
&G::scalar_as_bytes(server.get_private_key()).to_vec()
170+
&G::serialize_scalar(server.get_private_key()).to_vec()
171171
);
172172
assert_eq!(
173173
&parameters.pksm,
@@ -192,7 +192,7 @@ fn test_base_blind<G: Group, H: BlockSizeUser + Digest + FixedOutputReset>(
192192

193193
assert_eq!(
194194
&parameters.blind[i],
195-
&G::scalar_as_bytes(client_result.state.blind).to_vec()
195+
&G::serialize_scalar(client_result.state.blind).to_vec()
196196
);
197197
assert_eq!(
198198
parameters.blinded_element[i].as_slice(),
@@ -218,7 +218,7 @@ fn test_verifiable_blind<G: Group, H: BlockSizeUser + Digest + FixedOutputReset>
218218

219219
assert_eq!(
220220
&parameters.blind[i],
221-
&G::scalar_as_bytes(client_blind_result.state.get_blind()).to_vec()
221+
&G::serialize_scalar(client_blind_result.state.get_blind()).to_vec()
222222
);
223223
assert_eq!(
224224
parameters.blinded_element[i].as_slice(),

src/voprf.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ impl<G: Group, H: BlockSizeUser + Digest + FixedOutputReset> NonVerifiableClient
255255
evaluation_element: &EvaluationElement<G, H>,
256256
metadata: Option<&[u8]>,
257257
) -> Result<Output<H>> {
258-
let unblinded_element = evaluation_element.value * &G::scalar_invert(&self.blind);
258+
let unblinded_element = evaluation_element.value * &G::invert_scalar(self.blind);
259259
let mut outputs = finalize_after_unblind::<G, H, _, _>(
260260
Some((input, unblinded_element)).into_iter(),
261261
metadata.unwrap_or_default(),
@@ -459,7 +459,7 @@ impl<G: Group, H: BlockSizeUser + Digest + FixedOutputReset> NonVerifiableServer
459459
GenericArray::from(STR_HASH_TO_SCALAR).concat(get_context_string::<G>(Mode::Base));
460460
let m = G::hash_to_scalar::<H, _, _>(context, dst)?;
461461
let t = self.sk + &m;
462-
let evaluation_element = blinded_element.value * &G::scalar_invert(&t);
462+
let evaluation_element = blinded_element.value * &G::invert_scalar(t);
463463
Ok(NonVerifiableServerEvaluateResult {
464464
message: EvaluationElement {
465465
value: evaluation_element,
@@ -600,7 +600,7 @@ impl<G: Group, H: BlockSizeUser + Digest + FixedOutputReset> VerifiableServer<G,
600600
let evaluation_elements = blinded_elements
601601
// To make a return type possible, we have to convert to a `fn` pointer, which isn't
602602
// possible if we `move` from context.
603-
.zip(iter::repeat(G::scalar_invert(&t)))
603+
.zip(iter::repeat(G::invert_scalar(t)))
604604
.map(<fn((&BlindedElement<G, H>, _)) -> _>::from(|(x, t)| {
605605
PreparedEvaluationElement(EvaluationElement {
606606
value: x.value * &t,
@@ -843,7 +843,7 @@ fn blind<G: Group, H: BlockSizeUser + Digest + FixedOutputReset, R: RngCore + Cr
843843
mode: Mode,
844844
) -> Result<(G::Scalar, G::Elem)> {
845845
// Choose a random scalar that must be non-zero
846-
let blind = G::random_nonzero_scalar(blinding_factor_rng);
846+
let blind = G::random_scalar(blinding_factor_rng);
847847
let blinded_element = deterministic_blind_unchecked::<G, H>(input, &blind, mode)?;
848848
Ok((blind, blinded_element))
849849
}
@@ -919,7 +919,7 @@ where
919919

920920
Ok(blinds
921921
.zip(messages.into_iter())
922-
.map(|(blind, x)| x.value * &G::scalar_invert(&blind)))
922+
.map(|(blind, x)| x.value * &G::invert_scalar(blind)))
923923
}
924924

925925
#[allow(clippy::many_single_char_names)]
@@ -937,7 +937,7 @@ fn generate_proof<
937937
) -> Result<Proof<G, H>> {
938938
let (m, z) = compute_composites(Some(k), b, cs, ds)?;
939939

940-
let r = G::random_nonzero_scalar(rng);
940+
let r = G::random_scalar(rng);
941941
let t2 = a * &r;
942942
let t3 = m * &r;
943943

@@ -1134,7 +1134,7 @@ mod tests {
11341134
let dst = GenericArray::from(STR_HASH_TO_SCALAR).concat(get_context_string::<G>(mode));
11351135
let m = G::hash_to_scalar::<H, _, _>(context, dst).unwrap();
11361136

1137-
let res = point * &G::scalar_invert(&(key + &m));
1137+
let res = point * &G::invert_scalar(key + &m);
11381138

11391139
finalize_after_unblind::<G, H, _, _>(Some((input, res)).into_iter(), info, mode)
11401140
.unwrap()

0 commit comments

Comments
 (0)