attr_encrypted 3.1.0 → 4.1.0

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.
metadata CHANGED
@@ -1,39 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: attr_encrypted
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.0
4
+ version: 4.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Huber
8
8
  - S. Brent Faulkner
9
9
  - William Monk
10
10
  - Stephen Aghaulor
11
- autorequire:
11
+ - Josh Branham
12
+ - Mike Vastola
13
+ autorequire:
12
14
  bindir: bin
13
- cert_chain:
14
- - |
15
- -----BEGIN CERTIFICATE-----
16
- MIIDdDCCAlygAwIBAgIBATANBgkqhkiG9w0BAQUFADBAMRIwEAYDVQQDDAlzYWdo
17
- YXVsb3IxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkWA2Nv
18
- bTAeFw0xODAyMTIwMzMzMThaFw0xOTAyMTIwMzMzMThaMEAxEjAQBgNVBAMMCXNh
19
- Z2hhdWxvcjEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYD
20
- Y29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvOLqbSmj5txfw39a
21
- Ki0g3BJWGrfGBiSRq9aThUGzoiaqyDo/m1WMQdgPioZG+P923okChEWFjhSymBQU
22
- eMdys6JRPm5ortp5sh9gesOWoozqb8R55d8rr1V7pY533cCut53Kb1wiitjkfXjR
23
- efT2HPh6nV6rYjGMJek/URaCNzsZo7HCkRsKdezP+BKr4V4wOka69tfJX5pcvFvR
24
- iiqfaiP4RK12hYdsFnSVKiKP7SAFTFiYcohbL8TUW6ezQQqJCK0M6fu74EWVCnBS
25
- gFVjj931BuD8qhuxMiB6uC6FKxemB5TRGBLzn7RcrOMAo2inMAopjkGeQJUAyVCm
26
- J5US3wIDAQABo3kwdzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU
27
- hJEuSZgvuuIhIsxQ/0pRQTBVzokwHgYDVR0RBBcwFYETc2FnaGF1bG9yQGdtYWls
28
- LmNvbTAeBgNVHRIEFzAVgRNzYWdoYXVsb3JAZ21haWwuY29tMA0GCSqGSIb3DQEB
29
- BQUAA4IBAQCsBS2cxqTmV4nXJEH/QbdgjVDAZbK6xf2gpM3vCRlYsy7Wz6GEoOpD
30
- bzRkjxZwGNbhXShMUZwm6zahYQ/L1/HFztLoMBMkm8EIfPxH0PDrP4aWl0oyWxmU
31
- OLm0/t9icSWRPPJ1tLJvuAaDdVpY5dEHd6VdnNJGQC5vHKRInt1kEyqEttIJ/xmJ
32
- leSEFyMeoFsR+C/WPG9WSC+xN0eXqakCu6YUJoQzCn/7znv8WxpHEbeZjNIHq0qb
33
- nbqZ/ZW1bwzj1T/NIbnMr37wqV29XwkI4+LbewMkb6/bDPYl0qZpAkCxKtGYCCJp
34
- l6KPs9K/72yH00dxuAhiTXikTkcLXeQJ
35
- -----END CERTIFICATE-----
36
- date: 2018-02-11 00:00:00.000000000 Z
15
+ cert_chain: []
16
+ date: 2024-05-30 00:00:00.000000000 Z
37
17
  dependencies:
38
18
  - !ruby/object:Gem::Dependency
39
19
  name: encryptor
@@ -53,44 +33,30 @@ dependencies:
53
33
  name: activerecord
54
34
  requirement: !ruby/object:Gem::Requirement
55
35
  requirements:
56
- - - "~>"
36
+ - - ">="
57
37
  - !ruby/object:Gem::Version
58
- version: 4.1.16
38
+ version: 2.0.0
59
39
  type: :development
60
40
  prerelease: false
61
41
  version_requirements: !ruby/object:Gem::Requirement
62
42
  requirements:
63
- - - "~>"
43
+ - - ">="
64
44
  - !ruby/object:Gem::Version
65
- version: 4.1.16
45
+ version: 2.0.0
66
46
  - !ruby/object:Gem::Dependency
67
47
  name: actionpack
68
- requirement: !ruby/object:Gem::Requirement
69
- requirements:
70
- - - "~>"
71
- - !ruby/object:Gem::Version
72
- version: 4.1.16
73
- type: :development
74
- prerelease: false
75
- version_requirements: !ruby/object:Gem::Requirement
76
- requirements:
77
- - - "~>"
78
- - !ruby/object:Gem::Version
79
- version: 4.1.16
80
- - !ruby/object:Gem::Dependency
81
- name: datamapper
82
48
  requirement: !ruby/object:Gem::Requirement
83
49
  requirements:
84
50
  - - ">="
85
51
  - !ruby/object:Gem::Version
86
- version: '0'
52
+ version: 2.0.0
87
53
  type: :development
88
54
  prerelease: false
89
55
  version_requirements: !ruby/object:Gem::Requirement
90
56
  requirements:
91
57
  - - ">="
92
58
  - !ruby/object:Gem::Version
93
- version: '0'
59
+ version: 2.0.0
94
60
  - !ruby/object:Gem::Dependency
95
61
  name: rake
96
62
  requirement: !ruby/object:Gem::Requirement
@@ -137,16 +103,16 @@ dependencies:
137
103
  name: sqlite3
138
104
  requirement: !ruby/object:Gem::Requirement
139
105
  requirements:
140
- - - ">="
106
+ - - '='
141
107
  - !ruby/object:Gem::Version
142
- version: '0'
108
+ version: 1.5.4
143
109
  type: :development
144
110
  prerelease: false
145
111
  version_requirements: !ruby/object:Gem::Requirement
146
112
  requirements:
147
- - - ">="
113
+ - - '='
148
114
  - !ruby/object:Gem::Version
149
- version: '0'
115
+ version: 1.5.4
150
116
  - !ruby/object:Gem::Dependency
151
117
  name: dm-sqlite-adapter
152
118
  requirement: !ruby/object:Gem::Requirement
@@ -162,7 +128,7 @@ dependencies:
162
128
  - !ruby/object:Gem::Version
163
129
  version: '0'
164
130
  - !ruby/object:Gem::Dependency
165
- name: simplecov
131
+ name: pry
166
132
  requirement: !ruby/object:Gem::Requirement
167
133
  requirements:
168
134
  - - ">="
@@ -176,7 +142,7 @@ dependencies:
176
142
  - !ruby/object:Gem::Version
177
143
  version: '0'
178
144
  - !ruby/object:Gem::Dependency
179
- name: simplecov-rcov
145
+ name: simplecov
180
146
  requirement: !ruby/object:Gem::Requirement
181
147
  requirements:
182
148
  - - ">="
@@ -190,38 +156,39 @@ dependencies:
190
156
  - !ruby/object:Gem::Version
191
157
  version: '0'
192
158
  - !ruby/object:Gem::Dependency
193
- name: codeclimate-test-reporter
159
+ name: simplecov-rcov
194
160
  requirement: !ruby/object:Gem::Requirement
195
161
  requirements:
196
- - - "<="
162
+ - - ">="
197
163
  - !ruby/object:Gem::Version
198
- version: 0.6.0
164
+ version: '0'
199
165
  type: :development
200
166
  prerelease: false
201
167
  version_requirements: !ruby/object:Gem::Requirement
202
168
  requirements:
203
- - - "<="
169
+ - - ">="
204
170
  - !ruby/object:Gem::Version
205
- version: 0.6.0
171
+ version: '0'
206
172
  description: Generates attr_accessors that encrypt and decrypt attributes transparently
207
173
  email:
208
174
  - seah@shuber.io
209
175
  - sbfaulkner@gmail.com
210
176
  - billy.monk@gmail.com
211
177
  - saghaulor@gmail.com
178
+ - josh.php@gmail.com
179
+ - Mike@Vasto.la
212
180
  executables: []
213
181
  extensions: []
214
182
  extra_rdoc_files: []
215
183
  files:
184
+ - ".github/workflows/CI.yml"
216
185
  - ".gitignore"
217
- - ".travis.yml"
218
186
  - CHANGELOG.md
219
187
  - Gemfile
220
188
  - MIT-LICENSE
221
189
  - README.md
222
190
  - Rakefile
223
191
  - attr_encrypted.gemspec
224
- - certs/saghaulor.pem
225
192
  - checksum/attr_encrypted-3.0.0.gem.sha256
226
193
  - checksum/attr_encrypted-3.0.0.gem.sha512
227
194
  - checksum/attr_encrypted-3.0.1.gem.sha256
@@ -230,19 +197,18 @@ files:
230
197
  - checksum/attr_encrypted-3.0.2.gem.sha512
231
198
  - checksum/attr_encrypted-3.0.3.gem.sha256
232
199
  - checksum/attr_encrypted-3.0.3.gem.sha512
200
+ - checksum/attr_encrypted-3.1.0.gem.sha256
201
+ - checksum/attr_encrypted-3.1.0.gem.sha512
233
202
  - lib/attr_encrypted.rb
234
203
  - lib/attr_encrypted/adapters/active_record.rb
235
- - lib/attr_encrypted/adapters/data_mapper.rb
236
204
  - lib/attr_encrypted/adapters/sequel.rb
237
205
  - lib/attr_encrypted/version.rb
238
206
  - test/active_record_test.rb
239
207
  - test/attr_encrypted_test.rb
240
208
  - test/compatibility_test.rb
241
- - test/data_mapper_test.rb
242
209
  - test/legacy_active_record_test.rb
243
210
  - test/legacy_attr_encrypted_test.rb
244
211
  - test/legacy_compatibility_test.rb
245
- - test/legacy_data_mapper_test.rb
246
212
  - test/legacy_sequel_test.rb
247
213
  - test/run.sh
248
214
  - test/sequel_test.rb
@@ -255,48 +221,37 @@ post_install_message: |2+
255
221
 
256
222
 
257
223
 
258
- WARNING: Several insecure default options and features were deprecated in attr_encrypted v2.0.0.
259
-
260
- Additionally, there was a bug in Encryptor v2.0.0 that insecurely encrypted data when using an AES-*-GCM algorithm.
261
-
262
- This bug was fixed but introduced breaking changes between v2.x and v3.x.
263
-
264
- Please see the README for more information regarding upgrading to attr_encrypted v3.0.0.
224
+ WARNING: Using `#encrypted_attributes` is no longer supported. Instead, use `#attr_encrypted_encrypted_attributes` to avoid
225
+ collision with Active Record 7 native encryption.
265
226
 
266
227
 
267
- rdoc_options:
268
- - "--line-numbers"
269
- - "--inline-source"
270
- - "--main"
271
- - README.rdoc
228
+ rdoc_options: []
272
229
  require_paths:
273
230
  - lib
274
231
  required_ruby_version: !ruby/object:Gem::Requirement
275
232
  requirements:
276
233
  - - ">="
277
234
  - !ruby/object:Gem::Version
278
- version: 2.0.0
235
+ version: 2.6.0
279
236
  required_rubygems_version: !ruby/object:Gem::Requirement
280
237
  requirements:
281
238
  - - ">="
282
239
  - !ruby/object:Gem::Version
283
240
  version: '0'
284
241
  requirements: []
285
- rubyforge_project:
286
- rubygems_version: 2.6.13
287
- signing_key:
242
+ rubygems_version: 3.4.10
243
+ signing_key:
288
244
  specification_version: 4
289
245
  summary: Encrypt and decrypt attributes
290
246
  test_files:
291
247
  - test/active_record_test.rb
292
248
  - test/attr_encrypted_test.rb
293
249
  - test/compatibility_test.rb
294
- - test/data_mapper_test.rb
295
250
  - test/legacy_active_record_test.rb
296
251
  - test/legacy_attr_encrypted_test.rb
297
252
  - test/legacy_compatibility_test.rb
298
- - test/legacy_data_mapper_test.rb
299
253
  - test/legacy_sequel_test.rb
300
254
  - test/run.sh
301
255
  - test/sequel_test.rb
302
256
  - test/test_helper.rb
257
+ ...
checksums.yaml.gz.sig DELETED
@@ -1 +0,0 @@
1
- )��`'\������l{�����-��p.�I�K�y��4�˕��`�{�¹�͏�L������uho� dވE��VHzP ����UO�#�t.���o���/��t�јz}���#3l`a �JDKc�����)^�� ���?�<���^E��2& �BoF�qZ��9��������69Z��s.���(h�U���?�{���zp?�P��\3���� m����N�Kj�#`0n�9J�Otݼ�{ޣ��}�� �)
data/.travis.yml DELETED
@@ -1,60 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- cache: bundler
4
- rvm:
5
- - 2.0
6
- - 2.1
7
- - 2.2.2
8
- - 2.3.0
9
- - 2.4.0
10
- - 2.5.0
11
- - rbx
12
- env:
13
- - ACTIVERECORD=3.0.0
14
- - ACTIVERECORD=3.1.0
15
- - ACTIVERECORD=3.2.0
16
- - ACTIVERECORD=4.0.0
17
- - ACTIVERECORD=4.1.0
18
- - ACTIVERECORD=4.2.0
19
- - ACTIVERECORD=5.0.0
20
- - ACTIVERECORD=5.1.1
21
- matrix:
22
- exclude:
23
- - rvm: 2.0
24
- env: ACTIVERECORD=5.0.0
25
- - rvm: 2.0
26
- env: ACTIVERECORD=5.1.1
27
- - rvm: 2.1
28
- env: ACTIVERECORD=5.0.0
29
- - rvm: 2.1
30
- env: ACTIVERECORD=5.1.1
31
- - rvm: 2.4.0
32
- env: ACTIVERECORD=3.0.0
33
- - rvm: 2.4.0
34
- env: ACTIVERECORD=3.1.0
35
- - rvm: 2.4.0
36
- env: ACTIVERECORD=3.2.0
37
- - rvm: 2.4.0
38
- env: ACTIVERECORD=4.0.0
39
- - rvm: 2.4.0
40
- env: ACTIVERECORD=4.1.0
41
- - rvm: 2.5.0
42
- env: ACTIVERECORD=3.0.0
43
- - rvm: 2.5.0
44
- env: ACTIVERECORD=3.1.0
45
- - rvm: 2.5.0
46
- env: ACTIVERECORD=3.2.0
47
- - rvm: 2.5.0
48
- env: ACTIVERECORD=4.0.0
49
- - rvm: 2.5.0
50
- env: ACTIVERECORD=4.1.0
51
- - rvm: rbx
52
- env: ACTIVERECORD=5.0.0
53
- - rvm: rbx
54
- env: ACTIVERECORD=5.1.1
55
- allow_failures:
56
- - rvm: rbx
57
- fast_finish: true
58
- addons:
59
- code_climate:
60
- repo_token: a90435ed4954dd6e9f3697a20c5bc3754f67d94703f870e8fc7b00f69f5b2d06
data/certs/saghaulor.pem DELETED
@@ -1,21 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIDdDCCAlygAwIBAgIBATANBgkqhkiG9w0BAQUFADBAMRIwEAYDVQQDDAlzYWdo
3
- YXVsb3IxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkWA2Nv
4
- bTAeFw0xODAyMTIwMzMzMThaFw0xOTAyMTIwMzMzMThaMEAxEjAQBgNVBAMMCXNh
5
- Z2hhdWxvcjEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYD
6
- Y29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvOLqbSmj5txfw39a
7
- Ki0g3BJWGrfGBiSRq9aThUGzoiaqyDo/m1WMQdgPioZG+P923okChEWFjhSymBQU
8
- eMdys6JRPm5ortp5sh9gesOWoozqb8R55d8rr1V7pY533cCut53Kb1wiitjkfXjR
9
- efT2HPh6nV6rYjGMJek/URaCNzsZo7HCkRsKdezP+BKr4V4wOka69tfJX5pcvFvR
10
- iiqfaiP4RK12hYdsFnSVKiKP7SAFTFiYcohbL8TUW6ezQQqJCK0M6fu74EWVCnBS
11
- gFVjj931BuD8qhuxMiB6uC6FKxemB5TRGBLzn7RcrOMAo2inMAopjkGeQJUAyVCm
12
- J5US3wIDAQABo3kwdzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU
13
- hJEuSZgvuuIhIsxQ/0pRQTBVzokwHgYDVR0RBBcwFYETc2FnaGF1bG9yQGdtYWls
14
- LmNvbTAeBgNVHRIEFzAVgRNzYWdoYXVsb3JAZ21haWwuY29tMA0GCSqGSIb3DQEB
15
- BQUAA4IBAQCsBS2cxqTmV4nXJEH/QbdgjVDAZbK6xf2gpM3vCRlYsy7Wz6GEoOpD
16
- bzRkjxZwGNbhXShMUZwm6zahYQ/L1/HFztLoMBMkm8EIfPxH0PDrP4aWl0oyWxmU
17
- OLm0/t9icSWRPPJ1tLJvuAaDdVpY5dEHd6VdnNJGQC5vHKRInt1kEyqEttIJ/xmJ
18
- leSEFyMeoFsR+C/WPG9WSC+xN0eXqakCu6YUJoQzCn/7znv8WxpHEbeZjNIHq0qb
19
- nbqZ/ZW1bwzj1T/NIbnMr37wqV29XwkI4+LbewMkb6/bDPYl0qZpAkCxKtGYCCJp
20
- l6KPs9K/72yH00dxuAhiTXikTkcLXeQJ
21
- -----END CERTIFICATE-----
@@ -1,22 +0,0 @@
1
- if defined?(DataMapper)
2
- module AttrEncrypted
3
- module Adapters
4
- module DataMapper
5
- def self.extended(base) # :nodoc:
6
- class << base
7
- alias_method :included_without_attr_encrypted, :included
8
- alias_method :included, :included_with_attr_encrypted
9
- end
10
- end
11
-
12
- def included_with_attr_encrypted(base)
13
- included_without_attr_encrypted(base)
14
- base.extend AttrEncrypted
15
- base.attr_encrypted_options[:encode] = true
16
- end
17
- end
18
- end
19
- end
20
-
21
- DataMapper::Resource.extend AttrEncrypted::Adapters::DataMapper
22
- end
@@ -1,57 +0,0 @@
1
- require_relative 'test_helper'
2
-
3
- DataMapper.setup(:default, 'sqlite3::memory:')
4
-
5
- class Client
6
- include DataMapper::Resource
7
-
8
- property :id, Serial
9
- property :encrypted_email, String
10
- property :encrypted_email_iv, String
11
- property :encrypted_email_salt, String
12
-
13
- property :encrypted_credentials, Text
14
- property :encrypted_credentials_iv, Text
15
- property :encrypted_credentials_salt, Text
16
-
17
- self.attr_encrypted_options[:mode] = :per_attribute_iv_and_salt
18
-
19
- attr_encrypted :email, :key => SECRET_KEY
20
- attr_encrypted :credentials, :key => SECRET_KEY, :marshal => true
21
-
22
- def initialize(attrs = {})
23
- super attrs
24
- self.credentials ||= { :username => 'example', :password => 'test' }
25
- end
26
- end
27
-
28
- DataMapper.auto_migrate!
29
-
30
- class DataMapperTest < Minitest::Test
31
-
32
- def setup
33
- Client.all.each(&:destroy)
34
- end
35
-
36
- def test_should_encrypt_email
37
- @client = Client.new :email => 'test@example.com'
38
- assert @client.save
39
- refute_nil @client.encrypted_email
40
- refute_equal @client.email, @client.encrypted_email
41
- assert_equal @client.email, Client.first.email
42
- end
43
-
44
- def test_should_marshal_and_encrypt_credentials
45
- @client = Client.new
46
- assert @client.save
47
- refute_nil @client.encrypted_credentials
48
- refute_equal @client.credentials, @client.encrypted_credentials
49
- assert_equal @client.credentials, Client.first.credentials
50
- assert Client.first.credentials.is_a?(Hash)
51
- end
52
-
53
- def test_should_encode_by_default
54
- assert Client.attr_encrypted_options[:encode]
55
- end
56
-
57
- end
@@ -1,55 +0,0 @@
1
- require_relative 'test_helper'
2
-
3
- DataMapper.setup(:default, 'sqlite3::memory:')
4
-
5
- class LegacyClient
6
- include DataMapper::Resource
7
- self.attr_encrypted_options[:insecure_mode] = true
8
- self.attr_encrypted_options[:algorithm] = 'aes-256-cbc'
9
- self.attr_encrypted_options[:mode] = :single_iv_and_salt
10
-
11
- property :id, Serial
12
- property :encrypted_email, String
13
- property :encrypted_credentials, Text
14
- property :salt, String
15
-
16
- attr_encrypted :email, :key => 'a secret key', mode: :single_iv_and_salt
17
- attr_encrypted :credentials, :key => Proc.new { |client| Encryptor.encrypt(:value => client.salt, :key => 'some private key', insecure_mode: true, algorithm: 'aes-256-cbc') }, :marshal => true, mode: :single_iv_and_salt
18
-
19
- def initialize(attrs = {})
20
- super attrs
21
- self.salt ||= Digest::SHA1.hexdigest((Time.now.to_i * rand(5)).to_s)
22
- self.credentials ||= { :username => 'example', :password => 'test' }
23
- end
24
- end
25
-
26
- DataMapper.auto_migrate!
27
-
28
- class LegacyDataMapperTest < Minitest::Test
29
-
30
- def setup
31
- LegacyClient.all.each(&:destroy)
32
- end
33
-
34
- def test_should_encrypt_email
35
- @client = LegacyClient.new :email => 'test@example.com'
36
- assert @client.save
37
- refute_nil @client.encrypted_email
38
- refute_equal @client.email, @client.encrypted_email
39
- assert_equal @client.email, LegacyClient.first.email
40
- end
41
-
42
- def test_should_marshal_and_encrypt_credentials
43
- @client = LegacyClient.new
44
- assert @client.save
45
- refute_nil @client.encrypted_credentials
46
- refute_equal @client.credentials, @client.encrypted_credentials
47
- assert_equal @client.credentials, LegacyClient.first.credentials
48
- assert LegacyClient.first.credentials.is_a?(Hash)
49
- end
50
-
51
- def test_should_encode_by_default
52
- assert LegacyClient.attr_encrypted_options[:encode]
53
- end
54
-
55
- end
data.tar.gz.sig DELETED
Binary file
metadata.gz.sig DELETED
@@ -1 +0,0 @@
1
- Ae�mL������6>�o(p���{��~x�O.]L� |ZgfQ �L44uؤ� �:��S!o�@�Ğ���au9s- Xx�6�����M