mongoid-kms 0.0.13 → 0.0.14

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: 0f6fdccad54f35b050fad1a7b6ed44f44c2e5695
4
- data.tar.gz: 6018d81befadc6b8b18c86114dc5444f7dc237ee
3
+ metadata.gz: 49b32845a5b6f1ca1f9d205d59915df58e7425e1
4
+ data.tar.gz: 1c9dbdf7f83534f9b1f94d7e1e03e83d1aef930f
5
5
  SHA512:
6
- metadata.gz: 8a29f80035d0b3c784ac777f81033aa9068f4cdc0dec3f755d76cd4dccbcd5c530b58cabf823be2c578e7637fd6784ec0571c2da1a2463357263252aa94faee3
7
- data.tar.gz: 2e8d5805ff35eb508ed445bd96b3ce38cbcfaef08dd8b55ad7035275a0ef2f0ace0e6537194f313a2ed0ec3f2447ecb37d12222b4da6756603a8c8a87e45cc05
6
+ metadata.gz: 85e1bf962a3660b1bd10f844c117383fb590c8777f5575e012fa1cb85a9526ef822d0c9d4066862301928fdb696009faf92ed6c7a8b86dd07387f598cf47580f
7
+ data.tar.gz: dd9bfa5812eccc83711c2c39538558e39a4f9950af12ee93c73cdba7d370b3acb1e8cc36cd2b8ea4a97783033b21b8ef93ea483355a6d7332a6828c2b8c62205
@@ -1,5 +1,5 @@
1
1
  module Mongoid
2
2
  module Kms
3
- VERSION = "0.0.13"
3
+ VERSION = "0.0.14"
4
4
  end
5
5
  end
data/lib/mongoid/kms.rb CHANGED
@@ -44,6 +44,8 @@ module Mongoid
44
44
  plaintext: value,
45
45
  encryption_context: kms_context(object, field_name)
46
46
  })[:ciphertext_blob].force_encoding('UTF-8')
47
+ rescue ArgumentError
48
+ raise "Error using KMS context. If you use an object's field for context, set your encrypted fields explicitly: myobject.#{field_name} = #{value.inspect}"
47
49
  end
48
50
 
49
51
  def decrypt_field(object, field_name, data)
@@ -75,7 +77,7 @@ module Mongoid
75
77
  instance_variable_get("@#{field_name}") || begin
76
78
  raw = send("kms_secure_#{field_name}")
77
79
 
78
- if raw.blank?
80
+ if raw.nil?
79
81
  raw
80
82
  else
81
83
  v = self.class.decrypt_field(self, field_name, raw)
@@ -88,7 +90,7 @@ module Mongoid
88
90
  define_method("#{field_name}=") do |value|
89
91
  instance_variable_set("@#{field_name}", value)
90
92
 
91
- if value.blank?
93
+ if value.nil?
92
94
  self.send("#{encrypted_field_name}=", nil)
93
95
  else
94
96
  self.send("#{encrypted_field_name}=", self.class.encrypt_field(self, field_name, value))
@@ -3,7 +3,8 @@ require 'spec_helper'
3
3
  describe Mongoid::Kms do
4
4
 
5
5
  it "encrypts the secure fields" do
6
- o = MyClass.new(secure: "batman", unsecure: "robin")
6
+ o = MyClass.new(unsecure: "robin")
7
+ o.secure = "batman"
7
8
  o.save!
8
9
 
9
10
  expect(o.secure).to eq("batman")
@@ -11,7 +12,8 @@ describe Mongoid::Kms do
11
12
  end
12
13
 
13
14
  it "descripts the secure fields" do
14
- o = MyClass.new(secure: "batman", unsecure: "robin")
15
+ o = MyClass.new(unsecure: "robin")
16
+ o.secure = "batman"
15
17
  o.save!
16
18
 
17
19
  o = MyClass.find(o.id)
@@ -19,4 +21,14 @@ describe Mongoid::Kms do
19
21
  expect(o.unsecure).to eq("robin")
20
22
  end
21
23
 
24
+ it "encrypts teh other fields" do
25
+ o = OtherClass.new(unsecure: "pengiun")
26
+ o.super_secure = "joker"
27
+ o.save!
28
+
29
+ o = OtherClass.find(o.id)
30
+ expect(o.super_secure).to eq("joker")
31
+ expect(o.unsecure).to eq("pengiun")
32
+ end
33
+
22
34
  end
data/spec/spec_helper.rb CHANGED
@@ -9,12 +9,17 @@ class MyClass
9
9
  include Mongoid::Document
10
10
  include Mongoid::Kms
11
11
 
12
- secure_field :secure, type: String, context: lambda { |d| {name: d.name} }
12
+ secure_field :secure, type: String, context: lambda { |d| {name: d.unsecure} }
13
13
  field :unsecure
14
+ end
15
+
16
+ class OtherClass
17
+ include Mongoid::Document
18
+ include Mongoid::Kms
14
19
 
15
- def name
16
- @name ||= "me-#{Time.now.to_i}"
17
- end
20
+ secure_field :super_secure, type: String, context: lambda { |d| {some_name: d.unsecure} }
21
+ field :unsecure
18
22
  end
19
23
 
24
+
20
25
  Mongoid::Kms.configure({region: "us-east-1", key: ENV['AWS_KMS_KEY_ID']})
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.13
4
+ version: 0.0.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Winslett