crypt_keeper 0.9.0.pre → 0.10.0.pre

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZGQwYmQ4OGE0MDcwMGM5YzI2MDBkMmMxNGViMzMwM2NkM2IxMmFiYQ==
5
+ data.tar.gz: !binary |-
6
+ MzhmNzMxOWI3ZTljYzAwODNlODNlYTRmOGQ1NTQxODliNThmYTM4Mg==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ NjAwMTZkYTY2OWM3YTVhNzYzMzFlNzc3OTExMjQ4NDE3ZWZmNjgzYWZkN2Vm
10
+ NjkxZTA0MjU5ZTI0NTRhNzQ0YjFkNTI2ZmRjMzkwNTg3NmY3OGRjMzQ0NGQ5
11
+ ZTZjNDY2MmY2NGM1NDY5NTg2ZDllYjhiYTgxYWZhOTMwMTc2NWU=
12
+ data.tar.gz: !binary |-
13
+ ZTIyYTAzNGNhYjViMTQwMzMyZWJhMTg2YjQxOGNkZjIwMTc4YjA3YzJhMWY4
14
+ NTc5MGY0OTBhMjAyZmUxZTRhZDE3M2Q0ZWVmOTFjMzAyOTI0YjI4OTI4NzU4
15
+ ZGQzMzkzZjM0YWRjYjE5YTFiODcxNDYyNzQ5NTMxMDA0YzYyMzY=
@@ -29,8 +29,11 @@ module CryptKeeper
29
29
 
30
30
  # Public: Encrypt a string
31
31
  #
32
- # Returns a string
32
+ # Note: nil and empty strings are not encryptable with AES.
33
+ # When they are encountered, the orignal value is returned.
34
+ # Otherwise, returns the encrypted string
33
35
  def encrypt(value)
36
+ return value if value == '' || value.nil?
34
37
  aes.encrypt
35
38
  aes.key = key
36
39
  Base64::encode64("#{aes.random_iv}#{SEPARATOR}#{aes.update(value.to_s) + aes.final}")
@@ -38,8 +41,11 @@ module CryptKeeper
38
41
 
39
42
  # Public: Decrypt a string
40
43
  #
41
- # Returns a string
44
+ # Note: nil and empty strings are not encryptable with AES (and thus cannot be decrypted).
45
+ # When they are encountered, the orignal value is returned.
46
+ # Otherwise, returns the decrypted string
42
47
  def decrypt(value)
48
+ return value if value == '' || value.nil?
43
49
  iv, value = Base64::decode64(value.to_s).split(SEPARATOR)
44
50
  aes.decrypt
45
51
  aes.key = key
@@ -48,4 +54,4 @@ module CryptKeeper
48
54
  end
49
55
  end
50
56
  end
51
- end
57
+ end
@@ -1,3 +1,3 @@
1
1
  module CryptKeeper
2
- VERSION = "0.9.0.pre"
2
+ VERSION = "0.10.0.pre"
3
3
  end
@@ -21,6 +21,22 @@ module CryptKeeper
21
21
 
22
22
  specify { encrypted.should_not == 'string' }
23
23
  specify { encrypted.should_not be_blank }
24
+
25
+ context "an empty string" do
26
+ let(:encrypted) do
27
+ subject.encrypt ''
28
+ end
29
+
30
+ specify { encrypted.should == '' }
31
+ end
32
+
33
+ context "a nil" do
34
+ let(:encrypted) do
35
+ subject.encrypt nil
36
+ end
37
+
38
+ specify { encrypted.should be_nil }
39
+ end
24
40
  end
25
41
 
26
42
  describe "#decrypt" do
@@ -29,7 +45,23 @@ module CryptKeeper
29
45
  end
30
46
 
31
47
  specify { decrypted.should == 'string' }
48
+
49
+ context "an empty string" do
50
+ let(:decrypted) do
51
+ subject.decrypt ''
52
+ end
53
+
54
+ specify { decrypted.should == '' }
55
+ end
56
+
57
+ context "a nil" do
58
+ let(:decrypted) do
59
+ subject.decrypt nil
60
+ end
61
+
62
+ specify { decrypted.should be_nil }
63
+ end
32
64
  end
33
65
  end
34
66
  end
35
- end
67
+ end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: crypt_keeper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0.pre
5
- prerelease: 6
4
+ version: 0.10.0.pre
6
5
  platform: ruby
7
6
  authors:
8
7
  - Justin Mazzi
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-03-19 00:00:00.000000000 Z
11
+ date: 2013-04-15 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activerecord
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ! '>='
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ! '>='
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: activesupport
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ! '>='
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ! '>='
44
39
  - !ruby/object:Gem::Version
@@ -46,7 +41,6 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: appraisal
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ~>
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - ~>
60
53
  - !ruby/object:Gem::Version
@@ -62,7 +55,6 @@ dependencies:
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: rspec
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - ~>
68
60
  - !ruby/object:Gem::Version
@@ -70,7 +62,6 @@ dependencies:
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
66
  - - ~>
76
67
  - !ruby/object:Gem::Version
@@ -78,7 +69,6 @@ dependencies:
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: guard
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
73
  - - ~>
84
74
  - !ruby/object:Gem::Version
@@ -86,7 +76,6 @@ dependencies:
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
80
  - - ~>
92
81
  - !ruby/object:Gem::Version
@@ -94,7 +83,6 @@ dependencies:
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: guard-rspec
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
87
  - - ~>
100
88
  - !ruby/object:Gem::Version
@@ -102,7 +90,6 @@ dependencies:
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
94
  - - ~>
108
95
  - !ruby/object:Gem::Version
@@ -110,7 +97,6 @@ dependencies:
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: rake
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
101
  - - ~>
116
102
  - !ruby/object:Gem::Version
@@ -118,7 +104,6 @@ dependencies:
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
108
  - - ~>
124
109
  - !ruby/object:Gem::Version
@@ -126,7 +111,6 @@ dependencies:
126
111
  - !ruby/object:Gem::Dependency
127
112
  name: rb-fsevent
128
113
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
114
  requirements:
131
115
  - - ~>
132
116
  - !ruby/object:Gem::Version
@@ -134,7 +118,6 @@ dependencies:
134
118
  type: :development
135
119
  prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
121
  requirements:
139
122
  - - ~>
140
123
  - !ruby/object:Gem::Version
@@ -142,7 +125,6 @@ dependencies:
142
125
  - !ruby/object:Gem::Dependency
143
126
  name: sqlite3
144
127
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
128
  requirements:
147
129
  - - ! '>='
148
130
  - !ruby/object:Gem::Version
@@ -150,7 +132,6 @@ dependencies:
150
132
  type: :development
151
133
  prerelease: false
152
134
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
135
  requirements:
155
136
  - - ! '>='
156
137
  - !ruby/object:Gem::Version
@@ -158,7 +139,6 @@ dependencies:
158
139
  - !ruby/object:Gem::Dependency
159
140
  name: pg
160
141
  requirement: !ruby/object:Gem::Requirement
161
- none: false
162
142
  requirements:
163
143
  - - ~>
164
144
  - !ruby/object:Gem::Version
@@ -166,7 +146,6 @@ dependencies:
166
146
  type: :development
167
147
  prerelease: false
168
148
  version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
149
  requirements:
171
150
  - - ~>
172
151
  - !ruby/object:Gem::Version
@@ -174,7 +153,6 @@ dependencies:
174
153
  - !ruby/object:Gem::Dependency
175
154
  name: mysql2
176
155
  requirement: !ruby/object:Gem::Requirement
177
- none: false
178
156
  requirements:
179
157
  - - ~>
180
158
  - !ruby/object:Gem::Version
@@ -182,7 +160,6 @@ dependencies:
182
160
  type: :development
183
161
  prerelease: false
184
162
  version_requirements: !ruby/object:Gem::Requirement
185
- none: false
186
163
  requirements:
187
164
  - - ~>
188
165
  - !ruby/object:Gem::Version
@@ -231,30 +208,26 @@ files:
231
208
  - spec/support/encryptors.rb
232
209
  homepage: http://jmazzi.github.com/crypt_keeper/
233
210
  licenses: []
211
+ metadata: {}
234
212
  post_install_message:
235
213
  rdoc_options: []
236
214
  require_paths:
237
215
  - lib
238
216
  required_ruby_version: !ruby/object:Gem::Requirement
239
- none: false
240
217
  requirements:
241
218
  - - ! '>='
242
219
  - !ruby/object:Gem::Version
243
220
  version: '0'
244
- segments:
245
- - 0
246
- hash: 3463799705679216715
247
221
  required_rubygems_version: !ruby/object:Gem::Requirement
248
- none: false
249
222
  requirements:
250
223
  - - ! '>'
251
224
  - !ruby/object:Gem::Version
252
225
  version: 1.3.1
253
226
  requirements: []
254
227
  rubyforge_project:
255
- rubygems_version: 1.8.24
228
+ rubygems_version: 2.0.3
256
229
  signing_key:
257
- specification_version: 3
230
+ specification_version: 4
258
231
  summary: Transparent encryption for ActiveRecord that isn't over-engineered
259
232
  test_files:
260
233
  - spec/default.database.yml