aboutsummaryrefslogtreecommitdiff
path: root/srp/src/server.rs
diff options
context:
space:
mode:
Diffstat (limited to 'srp/src/server.rs')
-rw-r--r--srp/src/server.rs6
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(),