attr_encrypted 1.3.3 → 3.0.1

Sign up to get free protection for your applications and to get access to all the features.
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