diff options
-rw-r--r-- | lib/srp/client.rb | 8 | ||||
-rw-r--r-- | test/auth_test.rb | 10 |
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 |