Module: KmsRails::ActiveRecord::InstanceMethods

Defined in:
lib/kms_rails/active_record.rb

Instance Method Summary collapse

Instance Method Details

#clear_retained(field) ⇒ Object



91
92
93
94
95
96
# File 'lib/kms_rails/active_record.rb', line 91

def clear_retained(field)
  @_retained ||= {}
  return if !@_retained.include?(field) || @_retained[field].nil?
  Core.shred_string(@_retained[field]) if @_retained[field].class == String
  @_retained[field] = nil
end

#get_hash(field) ⇒ Object



70
71
72
73
# File 'lib/kms_rails/active_record.rb', line 70

def get_hash(field)
  hash = read_attribute("#{field}_enc")
  hash ? MessagePack.unpack(hash) : nil
end

#get_retained(field) ⇒ Object



75
76
77
78
# File 'lib/kms_rails/active_record.rb', line 75

def get_retained(field)
  @_retained ||= {}
  @_retained[field]
end

#set_retained(field, plaintext) ⇒ Object



80
81
82
83
84
85
86
87
88
89
# File 'lib/kms_rails/active_record.rb', line 80

def set_retained(field, plaintext)
  @_retained ||= {}

  if @_retained[field]
    Core.shred_string(@_retained[field]) if @_retained[field].class == String
    @_retained[field] = nil
  end

  @_retained[field] = plaintext.dup
end

#store_hash(field, data) ⇒ Object



66
67
68
# File 'lib/kms_rails/active_record.rb', line 66

def store_hash(field, data)
  self["#{field}_enc"] = data.to_msgpack
end