adjusted user model to use srp
[ruby_srp.git] / example / models / user.rb
1 class User
2
3   def self.current
4     # p "getting #{@current ? @current.login : 'nil'}"
5     @current ||= User.new
6   end
7
8   attr_accessor :login
9   attr_accessor :salt
10   attr_accessor :verifier
11   attr_accessor :active
12   attr_accessor :srp
13
14   def signup!(params)
15     self.login = params.delete('login')
16     self.salt = params.delete('salt').to_i
17     self.verifier = params.delete('verifier').to_i
18     self.active = false
19   end
20
21   def initialize_auth(params)
22     self.srp = SRP::Server.new(self.salt, self.verifier)
23     bb, u = self.srp.initialize_auth(params.delete('A').to_i)
24     return {:B => bb, :u => u}
25   end
26
27   def authenticate(params)
28     if m2 = self.srp.authenticate(params.delete('aa').to_i, params.delete('M').to_i)
29       self.active = true
30       return {:M2 => m2}
31     else
32       self.active = false
33       return {:error => "Access Denied"}
34     end
35   end
36
37 end