class MultiPassword::Strategies::Argon2

Public Instance Methods

create(password, options = {}) click to toggle source
# File lib/multi_password/strategies/argon2.rb, line 11
def create(password, options = {})
  ::Argon2::Password.new(validate_options(options)).create(password)
end
validate_options(options) click to toggle source
# File lib/multi_password/strategies/argon2.rb, line 19
def validate_options(options)
  return options if options.empty?

  t_cost = options[:t_cost]
  m_cost = options[:m_cost]

  if t_cost && (!t_cost.is_a?(Integer) || t_cost < 1 || t_cost > 750)
    raise InvalidOptions.new('argon2', 't_cost must be an integer between 1 and 750')
  end

  if m_cost && (!m_cost.is_a?(Integer) || m_cost < 1 || m_cost > 31)
    raise InvalidOptions.new('argon2', 'm_cost must be an integer between 1 and 31')
  end

  options
end
verify(password, encrypted_password) click to toggle source
# File lib/multi_password/strategies/argon2.rb, line 15
def verify(password, encrypted_password)
  ::Argon2::Password.verify_password(password, encrypted_password)
end