diff options
author | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-02-17 22:38:24 +0100 |
---|---|---|
committer | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-02-17 22:38:24 +0100 |
commit | eff5cdc41f1d542c2a3d6b7be6f99de29376f5cb (patch) | |
tree | c4e2bef397776efc177c77b444f3467548dc0dcf /srp/src | |
parent | 350e0dc3582af9a0b8c51968937dc096ae786a4a (diff) | |
download | PAKEs-eff5cdc41f1d542c2a3d6b7be6f99de29376f5cb.tar.xz |
exclude password from hash used in client proof
Diffstat (limited to 'srp/src')
-rw-r--r-- | srp/src/client.rs | 6 | ||||
-rw-r--r-- | srp/src/server.rs | 4 |
2 files changed, 7 insertions, 3 deletions
diff --git a/srp/src/client.rs b/srp/src/client.rs index eed1153..845c6f8 100644 --- a/srp/src/client.rs +++ b/srp/src/client.rs @@ -200,11 +200,15 @@ impl<'a, D: Digest> SrpClient<'a, D> { let identity_hash = Self::compute_identity_hash(username, password); let x = Self::compute_x(identity_hash.as_slice(), salt); + let mut d = D::new(); + d.update(username); + let username_hash = d.finalize(); + let key = self.compute_premaster_secret(&b_pub, &k, &x, &a, &u); let m1 = compute_m1::<D>( self.params, - identity_hash.as_slice(), + username_hash.as_slice(), &a_pub.to_bytes_be(), &b_pub.to_bytes_be(), &key.to_bytes_be(), diff --git a/srp/src/server.rs b/srp/src/server.rs index e1eb331..08c0475 100644 --- a/srp/src/server.rs +++ b/srp/src/server.rs @@ -145,13 +145,13 @@ impl<'a, D: Digest> SrpServer<'a, D> { let mut d = D::new(); d.update(username); - let identity_hash = d.finalize(); + let username_hash = d.finalize(); let key = self.compute_premaster_secret(&a_pub, &v, &u, &b); let m1 = compute_m1::<D>( self.params, - identity_hash.as_slice(), + username_hash.as_slice(), &a_pub.to_bytes_be(), &b_pub.to_bytes_be(), &key.to_bytes_be(), |