diff options
author | Josh Brown <josh9051@gmail.com> | 2021-12-20 05:44:13 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-20 10:44:13 +0000 |
commit | e38144177199721c3bf3f5e2cde403c2ce29c67e (patch) | |
tree | 468b1cf281b5c0a11f7e3e8d34ef1f705832fa32 /srp/src/server.rs | |
parent | a74a157d66586cf7c608ef5a712badde6325dfb8 (diff) | |
download | PAKEs-e38144177199721c3bf3f5e2cde403c2ce29c67e.tar.xz |
srp: replace custom powm with modpow (#78)
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 { |