Sha256: 0f4e274d4627a75c9ad24433b025dc35a8c0fd168c8f040bd3407f5dd15f7eeb

Contents?: true

Size: 816 Bytes

Versions: 11

Compression:

Stored size: 816 Bytes

Contents

class User

  include SRP::Authentication

  def self.current
    @current
  end

  def self.current=(user)
    @current = user
  end

  attr_accessor :login
  attr_accessor :salt
  attr_accessor :verifier
  attr_accessor :active
  attr_accessor :srp

  def initialize(login)
    self.login = login
    self.salt = "5d3055e0acd3ddcfc15".hex
    # OpenSSL::Random.random_bytes(10).unpack("H*")[0]
    self.active = false
    User.current = self
  end

  def handshake(params)
    bb, u = initialize_auth(params.delete('A').hex)
    return {:s => self.salt.to_s(16), :B => bb.to_s(16)}
  end

  def validate(params)
    if m2 = authenticate(params.delete('M').hex)
      self.active = true
      return {:M => m2.to_s(16)}
    else
      self.active = false
      return {:error => "Access Denied"}
    end
  end

end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
ruby-srp-0.2.1 example/models/user.rb
ruby-srp-0.2.0 example/models/user.rb
ruby-srp-0.1.7 example/models/user.rb
ruby-srp-0.1.6 example/models/user.rb
ruby-srp-0.1.5 example/models/user.rb
ruby-srp-0.1.4 example/models/user.rb
ruby-srp-0.1.3 example/models/user.rb
ruby-srp-0.1.2 example/models/user.rb
ruby-srp-0.1.1 example/models/user.rb
ruby-srp-0.1.0 example/models/user.rb
ruby-srp-0.0.2 example/models/user.rb