aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Warner <warner@lothar.com>2017-05-22 18:04:17 -0700
committerBrian Warner <warner@lothar.com>2017-05-22 18:04:17 -0700
commit441f2da853aac8663970043055a28a32aec0f6eb (patch)
tree334417dd46b0463715c8d00fea847a8258bae08e
parent57a38426b5e4716f6f14e639e5b3b923ca7e3319 (diff)
downloadPAKEs-441f2da853aac8663970043055a28a32aec0f6eb.tar.xz
more
-rw-r--r--src/spake2.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/spake2.rs b/src/spake2.rs
index ab9ee86..3dc2631 100644
--- a/src/spake2.rs
+++ b/src/spake2.rs
@@ -10,6 +10,7 @@ trait Group {
type Element;
// const element_length: usize; // in unstable, or u8
//type ElementBytes : Index<usize, Output=u8>+IndexMut<usize>; // later
+ fn hash_to_scalar(s: &[u8]) -> Self::Scalar;
fn random_scalar() -> Self::Scalar;
fn basepoint_mult(s: &Self::Scalar) -> Self::Element;
fn scalarmult(e: &Self::Element, s: &Self::Scalar) -> Self::Element;
@@ -25,6 +26,9 @@ impl Group for Ed25519Group {
//type ElementBytes = [u8; 32];
//type ScalarBytes
+ fn hash_to_scalar(s: &[u8]) -> c2_Scalar {
+ c2_Scalar::hash_from_bytes(&s)
+ }
fn random_scalar() -> c2_Scalar {
let mut cspring: OsRng = OsRng::new().unwrap();
c2_Scalar::random(&mut cspring)
@@ -54,7 +58,8 @@ struct SPAKE2<G: Group> {
impl<G: Group> SPAKE2<G> {
pub fn new(password: &[u8], idA: &[u8], idB: &[u8]) -> (SPAKE2<G>, Vec<u8>) {
- let pw: G::Scalar = hash_to_scalar::<G::Scalar>(password);
+ //let pw: G::Scalar = hash_to_scalar::<G::Scalar>(password);
+ let pw: G::Scalar = G::hash_to_scalar(password);
let x: G::Scalar = random_scalar::<G::Scalar>;
let M1: G::Element = unimplemented!();