class Ribbon::EncryptedStore::Instance

Public Instance Methods

config(&block) click to toggle source
# File lib/ribbon/encrypted_store/instance.rb, line 3
def config(&block)
  (@__config ||= Ribbon::Config.new).tap { |config|
    if block_given?
      config.define(&block)
    end
  }
end
decrypt_key(dek, primary=false) click to toggle source
# File lib/ribbon/encrypted_store/instance.rb, line 18
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/ribbon/encrypted_store/instance.rb, line 22
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/ribbon/encrypted_store/instance.rb, line 13
def preload_keys(amount=12)
  keys = Mixins::ActiveRecordMixin.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/ribbon/encrypted_store/instance.rb, line 26
def retrieve_dek(key_model, key_id)
  (@_decrypted_keys ||= {})[key_id] ||= key_model.find(key_id).decrypted_key
end