class ActiveRecord::Encryption::Context

  • A message serializer
    * A cipher, the encryption algorithm
    * An encryptor, the facade to encrypt data
    * A key generator
    * A key provider
    An encryption context configures the different entities used to perform encryption:

def build_default_key_provider

def build_default_key_provider
  ActiveRecord::Encryption::DerivedSecretKeyProvider.new(ActiveRecord::Encryption.config.primary_key)
end

def initialize

def initialize
  set_defaults
end

def key_provider

def key_provider
  @key_provider ||= build_default_key_provider
end

def set_defaults

def set_defaults
  self.frozen_encryption = false
  self.key_generator = ActiveRecord::Encryption::KeyGenerator.new
  self.cipher = ActiveRecord::Encryption::Cipher.new
  self.encryptor = ActiveRecord::Encryption::Encryptor.new
  self.message_serializer = ActiveRecord::Encryption::MessageSerializer.new
end