Module: Legion::Data::Encryption::SequelPlugin
- Extended by:
- Logging::Helper
- Defined in:
- lib/legion/data/encryption/sequel_plugin.rb
Defined Under Namespace
Modules: ClassMethods, InstanceMethods
Class Method Summary
collapse
handle_exception
Class Method Details
.aad_for(table_name:, primary_key:, column:) ⇒ Object
14
15
16
|
# File 'lib/legion/data/encryption/sequel_plugin.rb', line 14
def aad_for(table_name:, primary_key:, column:)
"#{table_name}:#{primary_key || 0}:#{column}"
end
|
.decrypt_value(blob:, key:, table_name:, primary_key:, column:) ⇒ Object
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/legion/data/encryption/sequel_plugin.rb', line 18
def decrypt_value(blob:, key:, table_name:, primary_key:, column:)
errors = []
aad_candidates(primary_key).each do |aad_primary_key|
aad = aad_for(table_name: table_name, primary_key: aad_primary_key, column: column)
return Legion::Data::Encryption::Cipher.decrypt(blob, key: key, aad: aad)
rescue OpenSSL::Cipher::CipherError, ArgumentError => e
errors << e
end
raise errors.last if errors.any?
end
|