cryptonite 0.0.3 → 0.0.4

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: ed50ff6fcf3ddaf3a95aed933e81fc266a90828f
4
- data.tar.gz: 384a709f62320d39702b3957385443f57f923483
3
+ metadata.gz: 61b63389dfd44213ac19433d8410d60b9929adc0
4
+ data.tar.gz: 92b6e2b12c1587e944dae4697094c58d6ae0e633
5
5
  SHA512:
6
- metadata.gz: 7f255fe078fdbffa927b9b4fea76c1e92c29709418e7a4ee8fdfe603329241f1688a02b1eacce5285fb6faee15947b9a413f6169e932f4d1c231c4eabb0e73d0
7
- data.tar.gz: a0ee50b3bb3e4dd1e4d32cd04ce63c2257b286877c94623a4686c4e88c479c8dd3eca77c996d3a115a12fb2a620d9acc94d720fbf8c06c3dac37f036be20b5d9
6
+ metadata.gz: e8f067fbb753372ae450dc63f318adb03230b3c6253d543fa279e335b6f856de4d2b9f43c0701004d153192b5f2ab68da1cf16133b7fa4338287d952671a4817
7
+ data.tar.gz: 30f171edf9098386760dc322a9398342ab48e035d22ad13b5de712a3a5fccca33e180a6be40efdaf3153c2cbdc045d10daf68ad6a596cff85c0ea83db48c3d3a
@@ -1,3 +1,3 @@
1
1
  module Cryptonite
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/lib/cryptonite.rb CHANGED
@@ -76,14 +76,14 @@ module Cryptonite
76
76
  # Encrypts a value with public key encryption. Keys should be defined in
77
77
  # environment.
78
78
  def encrypt(value)
79
- Base64.encode64(@key.public_encrypt(value))
79
+ Base64.encode64(@key.public_encrypt(value)) if value
80
80
  end
81
81
  alias :dump :encrypt
82
82
 
83
83
  # Decrypts a value with public key encryption. Keys should be defined in
84
84
  # environment.
85
85
  def decrypt(value)
86
- @key.private_decrypt(Base64.decode64(value))
86
+ @key.private_decrypt(Base64.decode64(value)) if value
87
87
  end
88
88
  alias :load :decrypt
89
89
  end
@@ -26,7 +26,7 @@ describe Cryptonite do
26
26
  end
27
27
  }
28
28
 
29
- context "with both keys" do
29
+ context "with private key" do
30
30
  before do
31
31
  subject.tap { |obj| obj.attr_encrypted :secret, key_pair: PRIVATE_FIXTURE_KEY }
32
32
  end
@@ -51,6 +51,20 @@ describe Cryptonite do
51
51
  end
52
52
  end
53
53
 
54
+ it 'handles nil values' do
55
+ subject.new(secret: nil).tap do |instance|
56
+ expect(
57
+ instance.instance_variable_get(:@attributes).send(:fetch, 'secret').serialized_value
58
+ ).to be_nil
59
+ end
60
+
61
+ subject.new.tap do |instance|
62
+ instance.instance_variable_get(:@attributes).send(:fetch, 'secret').value = nil
63
+
64
+ expect(instance.secret).to be_nil
65
+ end
66
+ end
67
+
54
68
  it 'encrypts and decrypts field in database' do
55
69
  secret = SecureRandom.hex(16)
56
70
 
@@ -88,5 +102,19 @@ describe Cryptonite do
88
102
  expect{ instance.secret }.to raise_error OpenSSL::PKey::RSAError
89
103
  end
90
104
  end
105
+
106
+ it 'handles nil values' do
107
+ subject.new(secret: nil).tap do |instance|
108
+ expect(
109
+ instance.instance_variable_get(:@attributes).send(:fetch, 'secret').serialized_value
110
+ ).to be_nil
111
+ end
112
+
113
+ subject.new.tap do |instance|
114
+ instance.instance_variable_get(:@attributes).send(:fetch, 'secret').value = nil
115
+
116
+ expect(instance.secret).to be_nil
117
+ end
118
+ end
91
119
  end
92
120
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cryptonite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - GaggleAMP
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-14 00:00:00.000000000 Z
11
+ date: 2014-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -147,7 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
147
147
  version: '0'
148
148
  requirements: []
149
149
  rubyforge_project:
150
- rubygems_version: 2.2.2
150
+ rubygems_version: 2.4.2
151
151
  signing_key:
152
152
  specification_version: 4
153
153
  summary: Enables the encryption of specific ActiveRecord attributes.
@@ -156,4 +156,3 @@ test_files:
156
156
  - spec/fixtures/keys/private.pem
157
157
  - spec/fixtures/keys/public.pem
158
158
  - spec/spec_helper.rb
159
- has_rdoc: