diff options
Diffstat (limited to 'srp/src/server.rs')
-rw-r--r-- | srp/src/server.rs | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/srp/src/server.rs b/srp/src/server.rs index b7d3eff..e1eb331 100644 --- a/srp/src/server.rs +++ b/srp/src/server.rs @@ -124,6 +124,7 @@ impl<'a, D: Digest> SrpServer<'a, D> { /// v is the provided during initial user registration pub fn process_reply( &self, + username: &str, b: &[u8], v: &[u8], a_pub: &[u8], @@ -142,10 +143,15 @@ impl<'a, D: Digest> SrpServer<'a, D> { let u = compute_u::<D>(&a_pub.to_bytes_be(), &b_pub.to_bytes_be()); + let mut d = D::new(); + d.update(username); + let identity_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(), &a_pub.to_bytes_be(), &b_pub.to_bytes_be(), &key.to_bytes_be(), |