class DeviseMeteor::BCryptSHA256Hasher

BCryptSHA256Hasher implements a BCrypt password hasher using SHA256.

Public Class Methods

new() click to toggle source
# File lib/devise_meteor/strategies/hasher.rb, line 53
def initialize
  @algorithm = :bcrypt_sha256
  @cost = 10
  @digest = OpenSSL::Digest::SHA256.new
end

Public Instance Methods

encode(password, salt) click to toggle source
# File lib/devise_meteor/strategies/hasher.rb, line 67
def encode(password, salt)
  password = get_password_string(password)
  hash = BCrypt::Engine.hash_secret(password, salt)
  return hash
end
get_password_string(password) click to toggle source
# File lib/devise_meteor/strategies/hasher.rb, line 63
def get_password_string(password)
  @digest.digest(password) unless @digest.nil?
end
salt() click to toggle source
# File lib/devise_meteor/strategies/hasher.rb, line 59
def salt
  BCrypt::Engine.generate_salt(@cost)
end
verify(password, encoded) click to toggle source
# File lib/devise_meteor/strategies/hasher.rb, line 73
def verify(password, encoded)
  password_digest = get_password_string(password)
  hash = BCrypt::Engine.hash_secret(password_digest, encoded)
  Devise.secure_compare(encoded, hash)

  constant_time_compare(encoded, hash)
end