summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzul <azul@riseup.net>2012-10-05 16:34:47 +0200
committerAzul <azul@riseup.net>2012-10-05 16:51:39 +0200
commite9e4f99c524bd74fe04edf664130a49f9de11818 (patch)
tree02d97db5d262ca29d0bffba5a79d775e9f586340
parentb35bf766a6bbd5857853ac25d27091a7cf566539 (diff)
add to_json for session so it's easy to use in rails controllers
-rw-r--r--lib/srp/session.rb15
1 files changed, 14 insertions, 1 deletions
diff --git a/lib/srp/session.rb b/lib/srp/session.rb
index db8d428..7b0331a 100644
--- a/lib/srp/session.rb
+++ b/lib/srp/session.rb
@@ -27,12 +27,24 @@ module SRP
def authenticate(m)
if(m == calculate_m(server_secret))
- return calculate_m2
+ return @m2 = calculate_m2
+ end
+ end
+
+ def to_json(options={})
+ if @m2
+ { :M2 => @m2.to_s(16) }.to_json(options)
+ else
+ { :B => bb.to_s(16),
+# :b => @b.to_s(16), # only use for debugging
+ :salt => @user.salt.to_s(16)
+ }.to_json(options)
end
end
protected
+
# only seed b for testing purposes.
def initialize_server(aa, b = nil)
@aa = aa
@@ -80,6 +92,7 @@ module SRP
def calculate_u
sha256_int(@aa, @bb).hex
end
+
end
end