mongoid-kms 0.0.25 → 0.0.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2cb228e647b25e802a9177c9e2f4eee88a630002
4
- data.tar.gz: 4b67ede7c96225fd21b317af50ae3813649fc541
3
+ metadata.gz: 0b721f1617dbd2a4c8b99a82f4f0dd5a9ab1aa91
4
+ data.tar.gz: 8751a588d3a45ea1a10c1fa5abd0d9e6ba0e1881
5
5
  SHA512:
6
- metadata.gz: e97764a5fac3ffa37ce481eff455c1f66c792de64268958af20fc5add2ee604483f3ce7baa7b59b0a09566a4cf82c889063427136ec9e0b2470823bc99119270
7
- data.tar.gz: d53ebd837648518bac3ae1c54a6979bf4891b728da2c7d60880988f9b52ed186baf0d96230d4f1e6a814f6d816008ef5f937000ff47bb458c56cbca544915aea
6
+ metadata.gz: e0dd1407b688f8cb6ceffa37228d4d0f3ab7868f6e9b35080c9ff21b9fb2f6ee4506f0b81d6fc5573503212f0ec0048bc76049eeca95e53716a3c9d74c9d66ea
7
+ data.tar.gz: 9ec33a149e4d181a87556b9a0d7f42df1ee472e3f1dfff901e05ee3f5750b4fb8adef52d85a89ee2623857bb9a8e579ed4e263e23cc67641d85c3c42c1172029
@@ -1,5 +1,5 @@
1
1
  module Mongoid
2
2
  module Kms
3
- VERSION = "0.0.25"
3
+ VERSION = "0.0.26"
4
4
  end
5
5
  end
data/lib/mongoid/kms.rb CHANGED
@@ -58,7 +58,9 @@ module Mongoid
58
58
  encrypted_field_name = self.class.get_encrypted_field_name(field_name)
59
59
 
60
60
  if instance_variable_get("@#{field_name}").nil? && kms_context_value_changed?(field_name)
61
- value = self.class.decrypt_field(self, field_name, self.send(encrypted_field_name), self.class.kms_context_was(self, field_name))
61
+ raw = self.send(encrypted_field_name)
62
+ raw = raw.data if raw.is_a?(Mongoid::Kms.bson_class::Binary)
63
+ value = self.class.decrypt_field(self, field_name, raw, self.class.kms_context_was(self, field_name))
62
64
  else
63
65
  value = send("#{field_name}")
64
66
  end
@@ -66,7 +68,7 @@ module Mongoid
66
68
  if value.nil?
67
69
  self.send("#{encrypted_field_name}=", nil)
68
70
  else
69
- self.send("#{encrypted_field_name}=", self.class.encrypt_field(self, field_name, value))
71
+ self.send("#{encrypted_field_name}=", Mongoid::Kms.bson_class::Binary.new(self.class.encrypt_field(self, field_name, value)))
70
72
  end
71
73
  end
72
74
  end
@@ -88,7 +90,7 @@ module Mongoid
88
90
  key_id: Mongoid::Kms.key,
89
91
  plaintext: value,
90
92
  encryption_context: kms_context(object, field_name)
91
- })[:ciphertext_blob].force_encoding('UTF-8')
93
+ })[:ciphertext_blob]
92
94
  end
93
95
 
94
96
  def decrypt_field(object, field_name, data, encryption_context = nil)
@@ -152,11 +154,12 @@ module Mongoid
152
154
  define_method(field_name) do
153
155
  instance_variable_get("@#{field_name}") || begin
154
156
  raw = send("kms_secure_#{field_name}")
157
+ raw = raw.data if raw.is_a?(Mongoid::Kms.bson_class::Binary)
155
158
 
156
159
  if raw.nil?
157
160
  raw
158
161
  else
159
- v = Mongoid::Kms.bson_class::Binary.new(self.class.decrypt_field(self, field_name, raw))
162
+ v = self.class.decrypt_field(self, field_name, raw)
160
163
  instance_variable_set("@#{field_name}", v)
161
164
  v
162
165
  end
@@ -15,7 +15,7 @@ describe Mongoid::Kms do
15
15
  o.save!
16
16
 
17
17
  o = MyClass.find(o.id)
18
- expect(o.secure).to eq(BSON::Binary.new "batman")
18
+ expect(o.secure).to eq("batman")
19
19
  expect(o.unsecure).to eq("robin")
20
20
  end
21
21
 
@@ -24,7 +24,7 @@ describe Mongoid::Kms do
24
24
  o.save!
25
25
 
26
26
  o = OtherClass.find(o.id)
27
- expect(o.super_secure).to eq(BSON::Binary.new "joker")
27
+ expect(o.super_secure).to eq("joker")
28
28
  expect(o.unsecure).to eq("pengiun")
29
29
  end
30
30
 
@@ -37,7 +37,7 @@ describe Mongoid::Kms do
37
37
  o.save!
38
38
 
39
39
  o = MyClass.find(o.id)
40
- expect(o.secure).to eq(BSON::Binary.new "other")
40
+ expect(o.secure).to eq("other")
41
41
  end
42
42
 
43
43
  it "updates properly" do
@@ -49,7 +49,7 @@ describe Mongoid::Kms do
49
49
  o.save!
50
50
 
51
51
  o = MyClass.find(o.id)
52
- expect(o.secure).to eq(BSON::Binary.new "salted-other")
52
+ expect(o.secure).to eq("salted-other")
53
53
  end
54
54
 
55
55
  it "handles a class without context" do
@@ -57,7 +57,7 @@ describe Mongoid::Kms do
57
57
  o.save!
58
58
 
59
59
  o = MyClass.find(o.id)
60
- expect(o.secure).to eq(BSON::Binary.new("bla"))
60
+ expect(o.secure).to eq("bla")
61
61
  end
62
62
 
63
63
  it "fails to configure without a region" do
@@ -69,7 +69,7 @@ describe Mongoid::Kms do
69
69
  o.save!
70
70
 
71
71
  o = ExtendedClass.find(o.id)
72
- expect(o.additional_secure).to eq(BSON::Binary.new "wha!")
72
+ expect(o.additional_secure).to eq("wha!")
73
73
  o.test_hash_crash
74
74
  end
75
75
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid-kms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.25
4
+ version: 0.0.26
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Winslett