summaryrefslogtreecommitdiff
path: root/lib/srp/server.rb
diff options
context:
space:
mode:
authorAzul <azul@leap.se>2012-07-26 10:51:42 +0200
committerAzul <azul@leap.se>2012-07-26 10:51:42 +0200
commit7de7a78668a83eaab58597ce655ba613d4b477fb (patch)
tree0de1e7bb7af165eb8d165dc4ba296acb7850fdc0 /lib/srp/server.rb
parent1481331f3827711c16a3bcfb0ae0c6e4afd788d9 (diff)
turned server class into authentication module - test green, example broken
The example seems to be broken due to changes in srp-js
Diffstat (limited to 'lib/srp/server.rb')
-rw-r--r--lib/srp/server.rb47
1 files changed, 0 insertions, 47 deletions
diff --git a/lib/srp/server.rb b/lib/srp/server.rb
deleted file mode 100644
index 30f5088..0000000
--- a/lib/srp/server.rb
+++ /dev/null
@@ -1,47 +0,0 @@
-require File.expand_path(File.dirname(__FILE__) + '/util')
-
-module SRP
- class Server
-
- include Util
-
- def initialize(salt, verifier)
- @salt = salt
- @verifier = verifier
- 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)
- return @bb, u
- end
-
- 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)
- end
- end
-
-
- protected
-
- def calculate_u(aa, bb, n)
- 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_str(hashin).hex
- end
-
- end
-end
-
-