Make the group mod public

This commit is contained in:
François Garillot
2020-07-22 11:58:00 -04:00
parent f8285c60ba
commit e93e8fd5a8
3 changed files with 16 additions and 2 deletions
+4
View File
@@ -3,6 +3,9 @@
// This source code is licensed under the MIT license found in the
// LICENSE file in the root directory of this source tree.
//! Defines the Group trait to specify the underlying prime order group used in
//! OPAQUE's OPRF
use crate::errors::InternalPakeError;
use curve25519_dalek::{
@@ -53,6 +56,7 @@ pub trait Group: Sized + for<'a> Mul<&'a <Self as Group>::Scalar, Output = Self>
/// may not be necessary as this function is going to be called with the
/// output of a kdf.
type UniformBytesLen: ArrayLength<u8>;
/// Hashes a slice of pseudo-random bytes of the correct length to a curve point
fn hash_to_curve(uniform_bytes: &GenericArray<u8, Self::UniformBytesLen>) -> Self;
}
+2 -2
View File
@@ -395,8 +395,8 @@ pub mod opaque;
pub mod ciphersuite;
mod envelope;
mod group;
mod map_to_curve;
pub mod group;
pub mod map_to_curve;
pub mod key_exchange;
pub mod keypair;
+10
View File
@@ -1,10 +1,20 @@
// Copyright (c) Facebook, Inc. and its affiliates.
//
// This source code is licensed under the MIT license found in the
// LICENSE file in the root directory of this source tree.
//! Defines the GroupWithMapToCurve trait to specify how to map a password to a
//! curve point
use crate::group::Group;
use curve25519_dalek::{edwards::EdwardsPoint, ristretto::RistrettoPoint};
use generic_array::GenericArray;
use hkdf::Hkdf;
/// A subtrait of Group specifying how to has a password into a point
pub trait GroupWithMapToCurve: Group {
/// transforms a password and optional pepper into a curve point
fn map_to_curve(password: &[u8], pepper: Option<&[u8]>) -> Self;
}