diff options
Diffstat (limited to 'srp/src/server.rs')
-rw-r--r-- | srp/src/server.rs | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/srp/src/server.rs b/srp/src/server.rs index e134861..299c1ce 100644 --- a/srp/src/server.rs +++ b/srp/src/server.rs @@ -39,7 +39,6 @@ use std::marker::PhantomData; use digest::{Digest, Output}; use num_bigint::BigUint; -use crate::tools::powm; use crate::types::{SrpAuthError, SrpGroup}; /// Data provided by users upon registration, usually stored in the database. @@ -81,7 +80,7 @@ impl<D: Digest> SrpServer<D> { let k = params.compute_k::<D>(); // kv + g^b let interm = (k * &v) % ¶ms.n; - let b_pub = (interm + ¶ms.powm(&b)) % ¶ms.n; + let b_pub = (interm + ¶ms.modpow(&b)) % ¶ms.n; // H(A || B) let u = { let mut d = D::new(); @@ -93,8 +92,8 @@ impl<D: Digest> SrpServer<D> { //(Av^u) ^ b let key = { let u = BigUint::from_bytes_be(u.as_slice()); - let t = (&a_pub * powm(&v, &u, ¶ms.n)) % ¶ms.n; - let s = powm(&t, &b, ¶ms.n); + let t = (&a_pub * v.modpow(&u, ¶ms.n)) % ¶ms.n; + let s = t.modpow(&b, ¶ms.n); D::digest(&s.to_bytes_be()) }; Ok(Self { |