Module: Sequel::Plugins::ColumnEncryption::DatasetMethods
- Defined in:
- lib/sequel/plugins/column_encryption.rb
Instance Method Summary collapse
-
#needing_reencryption ⇒ Object
Filter the dataset to exclude rows where all encrypted columns are already encrypted with the current key and format.
-
#with_encrypted_value(column, value) ⇒ Object
Filter the dataset to only match rows where the column contains an encrypted version of value.
Instance Method Details
#needing_reencryption ⇒ Object
Filter the dataset to exclude rows where all encrypted columns are already encrypted with the current key and format.
738 739 740 741 742 743 744 745 |
# File 'lib/sequel/plugins/column_encryption.rb', line 738 def needing_reencryption incorrect_column_prefixes = model.send(:column_encryption_metadata).map do |column, | prefix = .key_searcher.call (Sequel[column] < prefix) | (Sequel[column] > prefix + 'B') end where(Sequel.|(*incorrect_column_prefixes)) end |
#with_encrypted_value(column, value) ⇒ Object
Filter the dataset to only match rows where the column contains an encrypted version of value. Only works on searchable encrypted columns.
725 726 727 728 729 730 731 732 733 734 |
# File 'lib/sequel/plugins/column_encryption.rb', line 725 def with_encrypted_value(column, value) = model.send(:column_encryption_metadata)[column] unless && .data_searcher raise Error, "lookup for encrypted column #{column.inspect} is not supported" end prefixes = .data_searcher.call(value) where(Sequel.|(*prefixes.map{|v| Sequel.like(column, "#{escape_like(v)}%")})) end |