attr_encrypted 1.3.3 → 3.0.1

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.
data/test/run.sh CHANGED
@@ -1,52 +1,12 @@
1
- #!/bin/sh
2
-
3
- set -e
4
-
5
- export RBENV_VERSION=ree-1.8.7-2012.02
6
- rbenv version
7
-
8
- export ACTIVERECORD=2.3.8
9
- bundle
10
- bundle exec rake
11
- export ACTIVERECORD=3.0.0
12
- bundle
13
- bundle exec rake
14
- export ACTIVERECORD=3.1.0
15
- bundle
16
- bundle exec rake
17
- export ACTIVERECORD=3.2.0
18
- bundle
19
- bundle exec rake
20
-
21
- export RBENV_VERSION=1.9.3-p484
22
- rbenv version
23
-
24
- export ACTIVERECORD=3.0.0
25
- bundle
26
- bundle exec rake
27
- export ACTIVERECORD=3.1.0
28
- bundle
29
- bundle exec rake
30
- export ACTIVERECORD=3.2.0
31
- bundle
32
- bundle exec rake
33
- export ACTIVERECORD=4.0.0
34
- bundle
35
- bundle exec rake
36
-
37
- export RBENV_VERSION=2.0.0-p353
38
- rbenv version
39
-
40
- export ACTIVERECORD=3.2.0
41
- bundle
42
- bundle exec rake
43
- export ACTIVERECORD=4.0.0
44
- bundle
45
- bundle exec rake
46
-
47
- export RBENV_VERSION=2.1.0
48
- rbenv version
49
-
50
- export ACTIVERECORD=4.0.0
51
- bundle
52
- bundle exec rake
1
+ #!/usr/bin/env sh -e
2
+
3
+ for RUBY in 1.9.3 2.0.0 2.1 2.2
4
+ do
5
+ for RAILS in 2.3.8 3.0.0 3.1.0 3.2.0 4.0.0 4.1.0 4.2.0
6
+ do
7
+ if [[ $RUBY -gt 1.9.3 && $RAILS -lt 4.0.0 ]]; then
8
+ continue
9
+ fi
10
+ RBENV_VERSION=$RUBY ACTIVERECORD=$RAILS bundle && bundle exec rake
11
+ done
12
+ done
data/test/sequel_test.rb CHANGED
@@ -1,4 +1,4 @@
1
- require File.expand_path('../test_helper', __FILE__)
1
+ require_relative 'test_helper'
2
2
 
3
3
  DB.create_table :humans do
4
4
  primary_key :id
@@ -22,7 +22,7 @@ class Human < Sequel::Model(:humans)
22
22
  end
23
23
  end
24
24
 
25
- class SequelTest < Test::Unit::TestCase
25
+ class SequelTest < Minitest::Test
26
26
 
27
27
  def setup
28
28
  Human.all.each(&:destroy)
@@ -31,8 +31,8 @@ class SequelTest < Test::Unit::TestCase
31
31
  def test_should_encrypt_email
32
32
  @human = Human.new :email => 'test@example.com'
33
33
  assert @human.save
34
- assert_not_nil @human.encrypted_email
35
- assert_not_equal @human.email, @human.encrypted_email
34
+ refute_nil @human.encrypted_email
35
+ refute_equal @human.email, @human.encrypted_email
36
36
  assert_equal @human.email, Human.first.email
37
37
  end
38
38
 
@@ -40,8 +40,8 @@ class SequelTest < Test::Unit::TestCase
40
40
 
41
41
  @human = Human.new :credentials => { :username => 'example', :password => 'test' }
42
42
  assert @human.save
43
- assert_not_nil @human.encrypted_credentials
44
- assert_not_equal @human.credentials, @human.encrypted_credentials
43
+ refute_nil @human.encrypted_credentials
44
+ refute_equal @human.credentials, @human.encrypted_credentials
45
45
  assert_equal @human.credentials, Human.first.credentials
46
46
  assert Human.first.credentials.is_a?(Hash)
47
47
  end
data/test/test_helper.rb CHANGED
@@ -1,33 +1,42 @@
1
- if RUBY_VERSION >= '1.9.3'
2
- require 'simplecov'
3
- require 'simplecov-rcov'
1
+ require 'simplecov'
2
+ require 'simplecov-rcov'
3
+ require "codeclimate-test-reporter"
4
4
 
5
- SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
5
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new(
6
+ [
6
7
  SimpleCov::Formatter::HTMLFormatter,
7
8
  SimpleCov::Formatter::RcovFormatter,
9
+ CodeClimate::TestReporter::Formatter
8
10
  ]
11
+ )
9
12
 
10
- SimpleCov.start do
11
- add_filter 'test'
12
- end
13
+ SimpleCov.start do
14
+ add_filter 'test'
15
+ end
16
+
17
+ CodeClimate::TestReporter.start
18
+
19
+ require 'minitest/autorun'
20
+
21
+ # Rails 4.0.x pins to an old minitest
22
+ unless defined?(MiniTest::Test)
23
+ MiniTest::Test = MiniTest::Unit::TestCase
13
24
  end
14
25
 
15
- require 'test/unit'
16
- require 'digest/sha2'
17
- require 'rubygems'
18
- gem 'activerecord', ENV['ACTIVE_RECORD_VERSION'] if ENV['ACTIVE_RECORD_VERSION']
19
26
  require 'active_record'
20
27
  require 'data_mapper'
28
+ require 'digest/sha2'
21
29
  require 'sequel'
22
- require 'mocha/test_unit'
23
30
 
24
31
  $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
25
32
  $:.unshift(File.dirname(__FILE__))
26
33
  require 'attr_encrypted'
27
34
 
28
- puts "\nTesting with ActiveRecord #{ActiveRecord::VERSION::STRING rescue ENV['ACTIVE_RECORD_VERSION']}"
29
-
30
- DB = Sequel.sqlite
35
+ DB = if defined?(RUBY_ENGINE) && RUBY_ENGINE.to_sym == :jruby
36
+ Sequel.jdbc('jdbc:sqlite::memory:')
37
+ else
38
+ Sequel.sqlite
39
+ end
31
40
 
32
41
  # The :after_initialize hook was removed in Sequel 4.0
33
42
  # and had been deprecated for a while before that:
@@ -35,5 +44,8 @@ DB = Sequel.sqlite
35
44
  # This plugin re-enables it.
36
45
  Sequel::Model.plugin :after_initialize
37
46
 
38
- SECRET_KEY = 4.times.map { Digest::SHA256.hexdigest((Time.now.to_i * rand(5)).to_s) }.join
47
+ SECRET_KEY = SecureRandom.random_bytes(32)
39
48
 
49
+ def base64_encoding_regex
50
+ /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=|[A-Za-z0-9+\/]{4})$/
51
+ end
metadata CHANGED
@@ -1,195 +1,234 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: attr_encrypted
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.3
5
- prerelease:
4
+ version: 3.0.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Sean Huber
9
8
  - S. Brent Faulkner
10
9
  - William Monk
10
+ - Stephen Aghaulor
11
11
  autorequire:
12
12
  bindir: bin
13
- cert_chain: []
14
- date: 2014-08-27 00:00:00.000000000 Z
13
+ cert_chain:
14
+ - |
15
+ -----BEGIN CERTIFICATE-----
16
+ MIIDdDCCAlygAwIBAgIBATANBgkqhkiG9w0BAQUFADBAMRIwEAYDVQQDDAlzYWdo
17
+ YXVsb3IxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkWA2Nv
18
+ bTAeFw0xNjAxMTEyMjQyMDFaFw0xNzAxMTAyMjQyMDFaMEAxEjAQBgNVBAMMCXNh
19
+ Z2hhdWxvcjEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYD
20
+ Y29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx0xdQYk2GwCpQ1n/
21
+ n2mPVYHLYqU5TAn/82t5kbqBUWjbcj8tHAi41tJ19+fT/hH0dog8JHvho1zmOr71
22
+ ZIqreJQo60TqP6oE9a5HncUpjqbRp7tOmHo9E+mOW1yT4NiXqFf1YINExQKy2XND
23
+ WPQ+T50ZNUsGMfHFWB4NAymejRWXlOEY3bvKW0UHFeNmouP5he51TjoP8uCc9536
24
+ 4AIWVP/zzzjwrFtC7av7nRw4Y+gX2bQjrkK2k2JS0ejiGzKBIEMJejcI2B+t79zT
25
+ kUQq9SFwp2BrKSIy+4kh4CiF20RT/Hfc1MbvTxSIl/bbIxCYEOhmtHExHi0CoCWs
26
+ YCGCXQIDAQABo3kwdzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU
27
+ SCpVzSBvYbO6B3oT3n3RCZmurG8wHgYDVR0RBBcwFYETc2FnaGF1bG9yQGdtYWls
28
+ LmNvbTAeBgNVHRIEFzAVgRNzYWdoYXVsb3JAZ21haWwuY29tMA0GCSqGSIb3DQEB
29
+ BQUAA4IBAQAeiGdC3e0WiZpm0cF/b7JC6hJYXC9Yv9VsRAWD9ROsLjFKwOhmonnc
30
+ +l/QrmoTjMakYXBCai/Ca3L+k5eRrKilgyITILsmmFxK8sqPJXUw2Jmwk/dAky6x
31
+ hHKVZAofT1OrOOPJ2USoZyhR/VI8epLaD5wUmkVDNqtZWviW+dtRa55aPYjRw5Pj
32
+ wuj9nybhZr+BbEbmZE//2nbfkM4hCuMtxxxilPrJ22aYNmeWU0wsPpDyhPYxOUgU
33
+ ZjeLmnSDiwL6doiP5IiwALH/dcHU67ck3NGf6XyqNwQrrmtPY0mv1WVVL4Uh+vYE
34
+ kHoFzE2no0BfBg78Re8fY69P5yES5ncC
35
+ -----END CERTIFICATE-----
36
+ date: 2016-04-02 00:00:00.000000000 Z
15
37
  dependencies:
16
38
  - !ruby/object:Gem::Dependency
17
39
  name: encryptor
18
40
  requirement: !ruby/object:Gem::Requirement
19
- none: false
20
41
  requirements:
21
- - - ! '>='
42
+ - - "~>"
22
43
  - !ruby/object:Gem::Version
23
- version: 1.3.0
44
+ version: 3.0.0
24
45
  type: :runtime
25
46
  prerelease: false
26
47
  version_requirements: !ruby/object:Gem::Requirement
27
- none: false
28
48
  requirements:
29
- - - ! '>='
49
+ - - "~>"
30
50
  - !ruby/object:Gem::Version
31
- version: 1.3.0
51
+ version: 3.0.0
32
52
  - !ruby/object:Gem::Dependency
33
53
  name: activerecord
34
54
  requirement: !ruby/object:Gem::Requirement
35
- none: false
36
55
  requirements:
37
- - - ! '>='
56
+ - - ">="
38
57
  - !ruby/object:Gem::Version
39
58
  version: 2.0.0
40
59
  type: :development
41
60
  prerelease: false
42
61
  version_requirements: !ruby/object:Gem::Requirement
43
- none: false
44
62
  requirements:
45
- - - ! '>='
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: 2.0.0
66
+ - !ruby/object:Gem::Dependency
67
+ name: actionpack
68
+ requirement: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 2.0.0
73
+ type: :development
74
+ prerelease: false
75
+ version_requirements: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ">="
46
78
  - !ruby/object:Gem::Version
47
79
  version: 2.0.0
48
80
  - !ruby/object:Gem::Dependency
49
81
  name: datamapper
50
82
  requirement: !ruby/object:Gem::Requirement
51
- none: false
52
83
  requirements:
53
- - - ! '>='
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ type: :development
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: rake
96
+ requirement: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ">="
54
99
  - !ruby/object:Gem::Version
55
100
  version: '0'
56
101
  type: :development
57
102
  prerelease: false
58
103
  version_requirements: !ruby/object:Gem::Requirement
59
- none: false
60
104
  requirements:
61
- - - ! '>='
105
+ - - ">="
62
106
  - !ruby/object:Gem::Version
63
107
  version: '0'
64
108
  - !ruby/object:Gem::Dependency
65
- name: mocha
109
+ name: minitest
66
110
  requirement: !ruby/object:Gem::Requirement
67
- none: false
68
111
  requirements:
69
- - - ~>
112
+ - - ">="
70
113
  - !ruby/object:Gem::Version
71
- version: 1.0.0
114
+ version: '0'
72
115
  type: :development
73
116
  prerelease: false
74
117
  version_requirements: !ruby/object:Gem::Requirement
75
- none: false
76
118
  requirements:
77
- - - ~>
119
+ - - ">="
78
120
  - !ruby/object:Gem::Version
79
- version: 1.0.0
121
+ version: '0'
80
122
  - !ruby/object:Gem::Dependency
81
123
  name: sequel
82
124
  requirement: !ruby/object:Gem::Requirement
83
- none: false
84
125
  requirements:
85
- - - ! '>='
126
+ - - ">="
86
127
  - !ruby/object:Gem::Version
87
128
  version: '0'
88
129
  type: :development
89
130
  prerelease: false
90
131
  version_requirements: !ruby/object:Gem::Requirement
91
- none: false
92
132
  requirements:
93
- - - ! '>='
133
+ - - ">="
94
134
  - !ruby/object:Gem::Version
95
135
  version: '0'
96
136
  - !ruby/object:Gem::Dependency
97
137
  name: sqlite3
98
138
  requirement: !ruby/object:Gem::Requirement
99
- none: false
100
139
  requirements:
101
- - - ! '>='
140
+ - - ">="
102
141
  - !ruby/object:Gem::Version
103
142
  version: '0'
104
143
  type: :development
105
144
  prerelease: false
106
145
  version_requirements: !ruby/object:Gem::Requirement
107
- none: false
108
146
  requirements:
109
- - - ! '>='
147
+ - - ">="
110
148
  - !ruby/object:Gem::Version
111
149
  version: '0'
112
150
  - !ruby/object:Gem::Dependency
113
151
  name: dm-sqlite-adapter
114
152
  requirement: !ruby/object:Gem::Requirement
115
- none: false
116
153
  requirements:
117
- - - ! '>='
154
+ - - ">="
118
155
  - !ruby/object:Gem::Version
119
156
  version: '0'
120
157
  type: :development
121
158
  prerelease: false
122
159
  version_requirements: !ruby/object:Gem::Requirement
123
- none: false
124
160
  requirements:
125
- - - ! '>='
161
+ - - ">="
126
162
  - !ruby/object:Gem::Version
127
163
  version: '0'
128
164
  - !ruby/object:Gem::Dependency
129
- name: rake
165
+ name: simplecov
130
166
  requirement: !ruby/object:Gem::Requirement
131
- none: false
132
167
  requirements:
133
- - - '='
168
+ - - ">="
134
169
  - !ruby/object:Gem::Version
135
- version: 0.9.2.2
170
+ version: '0'
136
171
  type: :development
137
172
  prerelease: false
138
173
  version_requirements: !ruby/object:Gem::Requirement
139
- none: false
140
174
  requirements:
141
- - - '='
175
+ - - ">="
142
176
  - !ruby/object:Gem::Version
143
- version: 0.9.2.2
177
+ version: '0'
144
178
  - !ruby/object:Gem::Dependency
145
- name: simplecov
179
+ name: simplecov-rcov
146
180
  requirement: !ruby/object:Gem::Requirement
147
- none: false
148
181
  requirements:
149
- - - ! '>='
182
+ - - ">="
150
183
  - !ruby/object:Gem::Version
151
184
  version: '0'
152
185
  type: :development
153
186
  prerelease: false
154
187
  version_requirements: !ruby/object:Gem::Requirement
155
- none: false
156
188
  requirements:
157
- - - ! '>='
189
+ - - ">="
158
190
  - !ruby/object:Gem::Version
159
191
  version: '0'
160
192
  - !ruby/object:Gem::Dependency
161
- name: simplecov-rcov
193
+ name: codeclimate-test-reporter
162
194
  requirement: !ruby/object:Gem::Requirement
163
- none: false
164
195
  requirements:
165
- - - ! '>='
196
+ - - ">="
166
197
  - !ruby/object:Gem::Version
167
198
  version: '0'
168
199
  type: :development
169
200
  prerelease: false
170
201
  version_requirements: !ruby/object:Gem::Requirement
171
- none: false
172
202
  requirements:
173
- - - ! '>='
203
+ - - ">="
174
204
  - !ruby/object:Gem::Version
175
205
  version: '0'
176
206
  description: Generates attr_accessors that encrypt and decrypt attributes transparently
177
207
  email:
178
- - shuber@huberry.com
208
+ - seah@shuber.io
179
209
  - sbfaulkner@gmail.com
180
210
  - billy.monk@gmail.com
211
+ - saghaulor@gmail.com
181
212
  executables: []
182
213
  extensions: []
183
214
  extra_rdoc_files: []
184
215
  files:
216
+ - ".gitignore"
217
+ - ".travis.yml"
218
+ - CHANGELOG.md
219
+ - Gemfile
220
+ - MIT-LICENSE
221
+ - README.md
222
+ - Rakefile
223
+ - attr_encrypted.gemspec
224
+ - certs/saghaulor.pem
225
+ - checksum/attr_encrypted-3.0.0.gem.sha256
226
+ - checksum/attr_encrypted-3.0.0.gem.sha512
227
+ - lib/attr_encrypted.rb
185
228
  - lib/attr_encrypted/adapters/active_record.rb
186
229
  - lib/attr_encrypted/adapters/data_mapper.rb
187
230
  - lib/attr_encrypted/adapters/sequel.rb
188
231
  - lib/attr_encrypted/version.rb
189
- - lib/attr_encrypted.rb
190
- - MIT-LICENSE
191
- - Rakefile
192
- - README.rdoc
193
232
  - test/active_record_test.rb
194
233
  - test/attr_encrypted_test.rb
195
234
  - test/compatibility_test.rb
@@ -204,31 +243,42 @@ files:
204
243
  - test/test_helper.rb
205
244
  homepage: http://github.com/attr-encrypted/attr_encrypted
206
245
  licenses: []
207
- post_install_message:
246
+ metadata: {}
247
+ post_install_message: |2+
248
+
249
+
250
+
251
+ WARNING: Several insecure default options and features were deprecated in attr_encrypted v2.0.0.
252
+
253
+ Additionally, there was a bug in Encryptor v2.0.0 that insecurely encrypted data when using an AES-*-GCM algorithm.
254
+
255
+ This bug was fixed but introduced breaking changes between v2.x and v3.x.
256
+
257
+ Please see the README for more information regarding upgrading to attr_encrypted v3.0.0.
258
+
259
+
208
260
  rdoc_options:
209
- - --line-numbers
210
- - --inline-source
211
- - --main
261
+ - "--line-numbers"
262
+ - "--inline-source"
263
+ - "--main"
212
264
  - README.rdoc
213
265
  require_paths:
214
266
  - lib
215
267
  required_ruby_version: !ruby/object:Gem::Requirement
216
- none: false
217
268
  requirements:
218
- - - ! '>='
269
+ - - ">="
219
270
  - !ruby/object:Gem::Version
220
- version: '0'
271
+ version: 2.0.0
221
272
  required_rubygems_version: !ruby/object:Gem::Requirement
222
- none: false
223
273
  requirements:
224
- - - ! '>='
274
+ - - ">="
225
275
  - !ruby/object:Gem::Version
226
276
  version: '0'
227
277
  requirements: []
228
278
  rubyforge_project:
229
- rubygems_version: 1.8.23
279
+ rubygems_version: 2.4.5.1
230
280
  signing_key:
231
- specification_version: 3
281
+ specification_version: 4
232
282
  summary: Encrypt and decrypt attributes
233
283
  test_files:
234
284
  - test/active_record_test.rb
@@ -243,3 +293,4 @@ test_files:
243
293
  - test/run.sh
244
294
  - test/sequel_test.rb
245
295
  - test/test_helper.rb
296
+ has_rdoc: false