From e38144177199721c3bf3f5e2cde403c2ce29c67e Mon Sep 17 00:00:00 2001 From: Josh Brown Date: Mon, 20 Dec 2021 05:44:13 -0500 Subject: srp: replace custom powm with modpow (#78) --- srp/src/server.rs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'srp/src/server.rs') 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 SrpServer { let k = params.compute_k::(); // 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 SrpServer { //(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 { -- cgit v1.2.3