lib/mongoid/kms.rb in mongoid-kms-0.0.13 vs lib/mongoid/kms.rb in mongoid-kms-0.0.14
- old
+ new
@@ -42,10 +42,12 @@
Mongoid::Kms.kms.encrypt({
key_id: Mongoid::Kms.key,
plaintext: value,
encryption_context: kms_context(object, field_name)
})[:ciphertext_blob].force_encoding('UTF-8')
+ rescue ArgumentError
+ raise "Error using KMS context. If you use an object's field for context, set your encrypted fields explicitly: myobject.#{field_name} = #{value.inspect}"
end
def decrypt_field(object, field_name, data)
Mongoid::Kms.kms.decrypt({
ciphertext_blob: data,
@@ -73,11 +75,11 @@
define_method(field_name) do
instance_variable_get("@#{field_name}") || begin
raw = send("kms_secure_#{field_name}")
- if raw.blank?
+ if raw.nil?
raw
else
v = self.class.decrypt_field(self, field_name, raw)
instance_variable_set("@#{field_name}", v)
v
@@ -86,10 +88,10 @@
end
define_method("#{field_name}=") do |value|
instance_variable_set("@#{field_name}", value)
- if value.blank?
+ if value.nil?
self.send("#{encrypted_field_name}=", nil)
else
self.send("#{encrypted_field_name}=", self.class.encrypt_field(self, field_name, value))
end
end