module KmsRails::ActiveJob::ClassMethods
Public Instance Methods
kms_arg(field_number, key_id:, msgpack: false, context_key: nil, context_value: nil)
click to toggle source
# File lib/kms_rails/active_job.rb, line 14 def kms_arg(field_number, key_id:, msgpack: false, context_key: nil, context_value: nil) kms_args([field_number], key_id: key_id, msgpack: msgpack, context_key: context_key, context_value: context_value) end
kms_args(field_numbers, key_id:, msgpack: false, context_key: nil, context_value: nil)
click to toggle source
Calls superclass method
# File lib/kms_rails/active_job.rb, line 18 def kms_args(field_numbers, key_id:, msgpack: false, context_key: nil, context_value: nil) enc = Core.new(key_id: key_id, context_key: context_key, msgpack: msgpack, context_value: context_value) define_method 'serialize_arguments' do |args| args = args.dup field_numbers.each do |i| # We skip encoding if nil or if already encrypted unless args[i].nil? || (args[i].class == Hash && args[i].keys.to_set == ['key', 'iv', 'blob'].to_set) args[i] = enc.encrypt64(args[i]) end end super(args) end define_method 'deserialize_arguments' do |args| args = super(args).dup field_numbers.each do |i| args[i] = enc.decrypt64(args[i]) unless args[i].nil? end args end end