class ActiveRecord::Encryption::DerivedSecretKeyProvider

A KeyProvider that derives keys from passwords.

def derive_key_from(password, using: key_generator)

def derive_key_from(password, using: key_generator)
  secret = using.derive_key_from(password)
  ActiveRecord::Encryption::Key.new(secret)
end

def initialize(passwords, key_generator: ActiveRecord::Encryption.key_generator)

def initialize(passwords, key_generator: ActiveRecord::Encryption.key_generator)
  super(Array(passwords).collect { |password| derive_key_from(password, using: key_generator) })
end