class EncryptedStore::Instance

Public Instance Methods

config(&block) click to toggle source
# File lib/encrypted_store/instance.rb, line 3
def config(&block)
  (@__config ||= Config.new).tap { |config|
    if block_given?
      config.define(&block)
    end
  }
end
decrypt_key(dek, primary = false) click to toggle source
# File lib/encrypted_store/instance.rb, line 22
def decrypt_key(dek, primary = false)
  config.decrypt_key? ? config.decrypt_key.last.call(dek, primary) : dek
end
encrypt_key(dek, primary = false) click to toggle source
# File lib/encrypted_store/instance.rb, line 26
def encrypt_key(dek, primary = false)
  config.encrypt_key? ? config.encrypt_key.last.call(dek, primary) : dek
end
preload_keys(amount = 12) click to toggle source

Preloads the most recent `amount` keys.

# File lib/encrypted_store/instance.rb, line 17
def preload_keys(amount = 12)
  keys = EncryptedStore::ActiveRecord.preload_keys(amount)
  keys.each { |k| (@_decrypted_keys ||= {})[k.id] = k.decrypted_key }
end
retrieve_dek(key_model, key_id) click to toggle source
# File lib/encrypted_store/instance.rb, line 30
def retrieve_dek(key_model, key_id)
  (@_decrypted_keys ||= {})[key_id] ||= key_model.find(key_id).decrypted_key
end
rotate_keys() click to toggle source
# File lib/encrypted_store/instance.rb, line 11
def rotate_keys
  EncryptedStore::ActiveRecord.rotate_keys
end