summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/srp/client.rb8
-rw-r--r--test/auth_test.rb10
2 files changed, 14 insertions, 4 deletions
diff --git a/lib/srp/client.rb b/lib/srp/client.rb
index 667d5ba..be94072 100644
--- a/lib/srp/client.rb
+++ b/lib/srp/client.rb
@@ -19,10 +19,10 @@ module SRP
x = calculate_x(username, password, salt)
a = bigrand(32).hex
aa = modpow(GENERATOR, a, PRIME_N) # A = g^a (mod N)
- session = server.initialize_auth(aa)
- u = calculate_u(aa, session.bb, PRIME_N)
- client_s = calculate_client_s(x, a, session.bb, u)
- server.authenticate(calculate_m(aa,session.bb,client_s), session)
+ bb = server.handshake(aa)
+ u = calculate_u(aa, bb, PRIME_N)
+ client_s = calculate_client_s(x, a, bb, u)
+ server.validate(calculate_m(aa, bb, client_s))
end
protected
diff --git a/test/auth_test.rb b/test/auth_test.rb
index b8c3c05..182722f 100644
--- a/test/auth_test.rb
+++ b/test/auth_test.rb
@@ -10,6 +10,16 @@ class User
@salt = salt
@verifier = verifier
end
+
+ def handshake(aa)
+ @session = initialize_auth(aa)
+ return @session.bb
+ end
+
+ def validate(m)
+ authenticate(m, @session)
+ end
+
end
class AuthTest < Test::Unit::TestCase