Sha256: 1826af5b83b031fa1825f4f4b109970ce54cfeec0f232b6c2da84455071dee10
Contents?: true
Size: 816 Bytes
Versions: 2
Compression:
Stored size: 816 Bytes
Contents
require File.expand_path(File.dirname(__FILE__) + '/util') module SRP class Client include Util attr_reader :salt, :verifier, :username def initialize(username, password, salt = nil) @username = username @password = password @salt = salt || bigrand(4).hex calculate_verifier end def authenticate(server) @session = SRP::Session.new(self) @session.handshake(server) @session.validate(server) end def private_key @private_key ||= calculate_private_key end protected def calculate_verifier @verifier ||= modpow(GENERATOR, private_key) end def calculate_private_key shex = '%x' % [@salt] inner = sha256_str([@username, @password].join(':')) sha256_hex(shex, inner).hex end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ruby-srp-0.1.1 | lib/srp/client.rb |
ruby-srp-0.1.0 | lib/srp/client.rb |