123456789_123456789_123456789_123456789_123456789_

Class: ActiveRecord::Encryption::DerivedSecretKeyProvider

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Subclasses:
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
self, KeyProvider
Instance Chain:
self, KeyProvider
Inherits: ActiveRecord::Encryption::KeyProvider
Defined in: activerecord/lib/active_record/encryption/derived_secret_key_provider.rb

Overview

A KeyProvider that derives keys from passwords.

Class Method Summary

Instance Method Summary

KeyProvider - Inherited

#decryption_keys

Returns the list of decryption keys.

#encryption_key

Returns the last key in the list as the active key to perform encryptions.

#keys_grouped_by_id

Constructor Details

.new(passwords, key_generator: ActiveRecord::Encryption.key_generator) ⇒ DerivedSecretKeyProvider

[ GitHub ]

  
# File 'activerecord/lib/active_record/encryption/derived_secret_key_provider.rb', line 7

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

Instance Method Details

#derive_key_from(password, using: key_generator) (private)

[ GitHub ]

  
# File 'activerecord/lib/active_record/encryption/derived_secret_key_provider.rb', line 12

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