summaryrefslogtreecommitdiff
path: root/lib/srp/server.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/srp/server.rb')
-rw-r--r--lib/srp/server.rb19
1 files changed, 12 insertions, 7 deletions
diff --git a/lib/srp/server.rb b/lib/srp/server.rb
index 02d5d8b..cf213c9 100644
--- a/lib/srp/server.rb
+++ b/lib/srp/server.rb
@@ -11,19 +11,23 @@ module SRP
end
def initialize_auth(aa)
+ @aa = aa
@b = bigrand(32).hex
# B = g^b + k v (mod N)
@bb = (modpow(GENERATOR, @b, PRIME_N) + multiplier * @verifier) % PRIME_N
- u = calculate_u(aa, @bb, PRIME_N)
+ u = calculate_u(@aa, @bb, PRIME_N)
return @bb, u
end
- def authenticate(aa, m)
- u = calculate_u(aa, @bb, PRIME_N)
- base = (modpow(@verifier, u, PRIME_N) * aa) % PRIME_N
+ def authenticate(m)
+ u = calculate_u(@aa, @bb, PRIME_N)
+ base = (modpow(@verifier, u, PRIME_N) * @aa) % PRIME_N
server_s = modpow(base, @b, PRIME_N)
- if(m == calculate_m(aa, @bb, server_s))
- return calculate_m(aa, m, server_s)
+ if(m == calculate_m(@aa, @bb, server_s))
+ puts "A = %x" % [@aa]
+ puts "M = %x" % [m]
+ puts "s = %x" % [server_s]
+ return calculate_m(@aa, m, server_s)
end
end
@@ -34,9 +38,10 @@ module SRP
nlen = 2 * ((('%x' % [n]).length * 4 + 7) >> 3)
aahex = '%x' % [aa]
bbhex = '%x' % [bb]
+ return sha256_str("%x%x" % [aa, bb]).hex
hashin = '0' * (nlen - aahex.length) + aahex \
+ '0' * (nlen - bbhex.length) + bbhex
- sha256_hex(hashin).hex
+ sha256_str(hashin).hex
end
end