adjusted user model to use srp
[ruby_srp.git] / example / models / user.rb
index f3f86ba..3ad8147 100644 (file)
@@ -6,20 +6,32 @@ class User
   end
 
   attr_accessor :login
-  attr_accessor :password
+  attr_accessor :salt
+  attr_accessor :verifier
   attr_accessor :active
+  attr_accessor :srp
 
   def signup!(params)
     self.login = params.delete('login')
-    self.password = params.delete('password')
+    self.salt = params.delete('salt').to_i
+    self.verifier = params.delete('verifier').to_i
     self.active = false
   end
 
-  def login!(params)
-    self.active = valid_login?(params[:login], params[:password])
+  def initialize_auth(params)
+    self.srp = SRP::Server.new(self.salt, self.verifier)
+    bb, u = self.srp.initialize_auth(params.delete('A').to_i)
+    return {:B => bb, :u => u}
   end
 
-  def valid_login?(login, password)
-    (self.login == login) and (self.password == password)
+  def authenticate(params)
+    if m2 = self.srp.authenticate(params.delete('aa').to_i, params.delete('M').to_i)
+      self.active = true
+      return {:M2 => m2}
+    else
+      self.active = false
+      return {:error => "Access Denied"}
+    end
   end
+
 end