mongoid-kms 0.0.10 → 0.0.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/mongoid/kms/version.rb +1 -1
- data/lib/mongoid/kms.rb +8 -8
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c2d91bf34434d5bc952b649c996fb594751110f2
|
4
|
+
data.tar.gz: fca124ca4a8bbd3835ed1842fa7342b94dbef84c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 04c5369054a350a607f471c16613a5ba46f70761aa52ca8d188865ceff80e1cfe506cba3072d0a0d06712ee2502cd2699297300c90723bdf1278af06e08bbc0e
|
7
|
+
data.tar.gz: 9dfcc7c310ac77213c01a86a66a2a6b50fe5c7d7d671e39893f49729e7386f5bf7ec4f40efc184e3a0224e244f9a265da6868566c7aa992b75aadb7a4d705a20
|
data/lib/mongoid/kms/version.rb
CHANGED
data/lib/mongoid/kms.rb
CHANGED
@@ -38,24 +38,24 @@ module Mongoid
|
|
38
38
|
end
|
39
39
|
|
40
40
|
module ClassMethods
|
41
|
-
def encrypt_field(field_name, value)
|
41
|
+
def encrypt_field(object, field_name, value)
|
42
42
|
Mongoid::Kms.kms.encrypt({
|
43
43
|
key_id: Mongoid::Kms.key,
|
44
44
|
plaintext: value,
|
45
|
-
encryption_context: kms_context(field_name)
|
45
|
+
encryption_context: kms_context(object, field_name)
|
46
46
|
})[:ciphertext_blob].force_encoding('UTF-8')
|
47
47
|
end
|
48
48
|
|
49
|
-
def decrypt_field(field_name, data)
|
49
|
+
def decrypt_field(object, field_name, data)
|
50
50
|
Mongoid::Kms.kms.decrypt({
|
51
51
|
ciphertext_blob: data,
|
52
|
-
encryption_context: kms_context(field_name)
|
52
|
+
encryption_context: kms_context(object, field_name)
|
53
53
|
})[:plaintext]
|
54
54
|
end
|
55
55
|
|
56
|
-
def kms_context(field_name)
|
56
|
+
def kms_context(object, field_name)
|
57
57
|
c = @kms_field_map[field_name.to_s][:context]
|
58
|
-
c = c.call(
|
58
|
+
c = c.call(object) if c.is_a?(Proc)
|
59
59
|
c
|
60
60
|
end
|
61
61
|
|
@@ -73,7 +73,7 @@ module Mongoid
|
|
73
73
|
|
74
74
|
define_method(field_name) do
|
75
75
|
instance_variable_get("@#{field_name}") || begin
|
76
|
-
v = self.class.decrypt_field(field_name, send("kms_secure_#{field_name}"))
|
76
|
+
v = self.class.decrypt_field(self, field_name, send("kms_secure_#{field_name}"))
|
77
77
|
instance_variable_set("@#{field_name}", v)
|
78
78
|
v
|
79
79
|
end
|
@@ -81,7 +81,7 @@ module Mongoid
|
|
81
81
|
|
82
82
|
define_method("#{field_name}=") do |value|
|
83
83
|
instance_variable_set("@#{field_name}", value)
|
84
|
-
self.send("#{encrypted_field_name}=", self.class.encrypt_field(field_name, value))
|
84
|
+
self.send("#{encrypted_field_name}=", self.class.encrypt_field(self, field_name, value))
|
85
85
|
end
|
86
86
|
end
|
87
87
|
end
|