attr_encrypted 3.1.0 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'test_helper'
2
4
 
5
+ RAILS_VERSION = Gem::Version.new(::ActiveRecord::VERSION::STRING).freeze
3
6
  ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:')
4
7
 
5
8
  def create_tables
@@ -43,16 +46,14 @@ end
43
46
 
44
47
  ActiveRecord::MissingAttributeError = ActiveModel::MissingAttributeError unless defined?(ActiveRecord::MissingAttributeError)
45
48
 
46
- if ::ActiveRecord::VERSION::STRING > "4.0"
47
- module Rack
48
- module Test
49
- class UploadedFile; end
50
- end
49
+ module Rack
50
+ module Test
51
+ class UploadedFile; end
51
52
  end
52
-
53
- require 'action_controller/metal/strong_parameters'
54
53
  end
55
54
 
55
+ require 'action_controller/metal/strong_parameters'
56
+
56
57
  class Person < ActiveRecord::Base
57
58
  self.attr_encrypted_options[:mode] = :per_attribute_iv_and_salt
58
59
  attr_encrypted :email, key: SECRET_KEY
@@ -83,7 +84,7 @@ class Account < ActiveRecord::Base
83
84
  attr_encrypted :password, key: :password_encryption_key
84
85
 
85
86
  def encrypting?(attr)
86
- encrypted_attributes[attr][:operation] == :encrypting
87
+ attr_encrypted_encrypted_attributes[attr][:operation] == :encrypting
87
88
  end
88
89
 
89
90
  def password_encryption_key
@@ -104,7 +105,6 @@ end
104
105
  class UserWithProtectedAttribute < ActiveRecord::Base
105
106
  self.table_name = 'users'
106
107
  attr_encrypted :password, key: SECRET_KEY
107
- attr_protected :is_admin if ::ActiveRecord::VERSION::STRING < "4.0"
108
108
  end
109
109
 
110
110
  class PersonUsingAlias < ActiveRecord::Base
@@ -219,52 +219,53 @@ class ActiveRecordTest < Minitest::Test
219
219
  assert_equal pw.reverse, account.password
220
220
  end
221
221
 
222
- if ::ActiveRecord::VERSION::STRING > "4.0"
223
- def test_should_assign_attributes
224
- @user = UserWithProtectedAttribute.new(login: 'login', is_admin: false)
225
- @user.attributes = ActionController::Parameters.new(login: 'modified', is_admin: true).permit(:login)
226
- assert_equal 'modified', @user.login
222
+ if Gem::Requirement.new('>= 5.2').satisfied_by?(RAILS_VERSION)
223
+ def test_should_create_will_save_change_to_predicate
224
+ person = Person.create!(email: 'test@example.com')
225
+ refute person.will_save_change_to_email?
226
+ person.email = 'test@example.com'
227
+ refute person.will_save_change_to_email?
228
+ person.email = 'test2@example.com'
229
+ assert person.will_save_change_to_email?
227
230
  end
228
231
 
229
- def test_should_not_assign_protected_attributes
230
- @user = UserWithProtectedAttribute.new(login: 'login', is_admin: false)
231
- @user.attributes = ActionController::Parameters.new(login: 'modified', is_admin: true).permit(:login)
232
- assert !@user.is_admin?
232
+ def test_should_create_saved_change_to_predicate
233
+ person = Person.create!(email: 'test@example.com')
234
+ assert person.saved_change_to_email?
235
+ person.reload
236
+ person.email = 'test@example.com'
237
+ refute person.saved_change_to_email?
238
+ person.email = nil
239
+ refute person.saved_change_to_email?
240
+ person.email = 'test2@example.com'
241
+ refute person.saved_change_to_email?
242
+ person.save
243
+ assert person.saved_change_to_email?
233
244
  end
245
+ end
234
246
 
235
- def test_should_raise_exception_if_not_permitted
236
- @user = UserWithProtectedAttribute.new(login: 'login', is_admin: false)
237
- assert_raises ActiveModel::ForbiddenAttributesError do
238
- @user.attributes = ActionController::Parameters.new(login: 'modified', is_admin: true)
239
- end
240
- end
247
+ def test_should_assign_attributes
248
+ @user = UserWithProtectedAttribute.new(login: 'login', is_admin: false)
249
+ @user.attributes = ActionController::Parameters.new(login: 'modified', is_admin: true).permit(:login)
250
+ assert_equal 'modified', @user.login
251
+ end
241
252
 
242
- def test_should_raise_exception_on_init_if_not_permitted
243
- assert_raises ActiveModel::ForbiddenAttributesError do
244
- @user = UserWithProtectedAttribute.new ActionController::Parameters.new(login: 'modified', is_admin: true)
245
- end
246
- end
247
- else
248
- def test_should_assign_attributes
249
- @user = UserWithProtectedAttribute.new(login: 'login', is_admin: false)
250
- @user.attributes = { login: 'modified', is_admin: true }
251
- assert_equal 'modified', @user.login
252
- end
253
+ def test_should_not_assign_protected_attributes
254
+ @user = UserWithProtectedAttribute.new(login: 'login', is_admin: false)
255
+ @user.attributes = ActionController::Parameters.new(login: 'modified', is_admin: true).permit(:login)
256
+ assert !@user.is_admin?
257
+ end
253
258
 
254
- def test_should_not_assign_protected_attributes
255
- @user = UserWithProtectedAttribute.new(login: 'login', is_admin: false)
256
- @user.attributes = { login: 'modified', is_admin: true }
257
- assert !@user.is_admin?
259
+ def test_should_raise_exception_if_not_permitted
260
+ @user = UserWithProtectedAttribute.new(login: 'login', is_admin: false)
261
+ assert_raises ActiveModel::ForbiddenAttributesError do
262
+ @user.attributes = ActionController::Parameters.new(login: 'modified', is_admin: true)
258
263
  end
264
+ end
259
265
 
260
- def test_should_assign_protected_attributes
261
- @user = UserWithProtectedAttribute.new(login: 'login', is_admin: false)
262
- if ::ActiveRecord::VERSION::STRING > "3.1"
263
- @user.send(:assign_attributes, { login: 'modified', is_admin: true }, without_protection: true)
264
- else
265
- @user.send(:attributes=, { login: 'modified', is_admin: true }, false)
266
- end
267
- assert @user.is_admin?
266
+ def test_should_raise_exception_on_init_if_not_permitted
267
+ assert_raises ActiveModel::ForbiddenAttributesError do
268
+ @user = UserWithProtectedAttribute.new ActionController::Parameters.new(login: 'modified', is_admin: true)
268
269
  end
269
270
  end
270
271
 
@@ -277,23 +278,21 @@ class ActiveRecordTest < Minitest::Test
277
278
  @person = PersonWithProcMode.create(email: 'test@example.com', credentials: 'password123')
278
279
 
279
280
  # Email is :per_attribute_iv_and_salt
280
- assert_equal @person.class.encrypted_attributes[:email][:mode].class, Proc
281
- assert_equal @person.class.encrypted_attributes[:email][:mode].call, :per_attribute_iv_and_salt
281
+ assert_equal @person.class.attr_encrypted_encrypted_attributes[:email][:mode].class, Proc
282
+ assert_equal @person.class.attr_encrypted_encrypted_attributes[:email][:mode].call, :per_attribute_iv_and_salt
282
283
  refute_nil @person.encrypted_email_salt
283
284
  refute_nil @person.encrypted_email_iv
284
285
 
285
286
  # Credentials is :single_iv_and_salt
286
- assert_equal @person.class.encrypted_attributes[:credentials][:mode].class, Proc
287
- assert_equal @person.class.encrypted_attributes[:credentials][:mode].call, :single_iv_and_salt
287
+ assert_equal @person.class.attr_encrypted_encrypted_attributes[:credentials][:mode].class, Proc
288
+ assert_equal @person.class.attr_encrypted_encrypted_attributes[:credentials][:mode].call, :single_iv_and_salt
288
289
  assert_nil @person.encrypted_credentials_salt
289
290
  assert_nil @person.encrypted_credentials_iv
290
291
  end
291
292
 
292
- if ::ActiveRecord::VERSION::STRING > "3.1"
293
- def test_should_allow_assign_attributes_with_nil
294
- @person = Person.new
295
- assert_nil(@person.assign_attributes nil)
296
- end
293
+ def test_should_allow_assign_attributes_with_nil
294
+ @person = Person.new
295
+ assert_nil(@person.assign_attributes nil)
297
296
  end
298
297
 
299
298
  def test_that_alias_encrypts_column
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # encoding: UTF-8
2
4
  require_relative 'test_helper'
3
5
 
@@ -81,11 +83,11 @@ class AttrEncryptedTest < Minitest::Test
81
83
  end
82
84
 
83
85
  def test_should_store_email_in_encrypted_attributes
84
- assert User.encrypted_attributes.include?(:email)
86
+ assert User.attr_encrypted_encrypted_attributes.include?(:email)
85
87
  end
86
88
 
87
89
  def test_should_not_store_salt_in_encrypted_attributes
88
- refute User.encrypted_attributes.include?(:salt)
90
+ refute User.attr_encrypted_encrypted_attributes.include?(:salt)
89
91
  end
90
92
 
91
93
  def test_attr_encrypted_should_return_true_for_email
@@ -93,7 +95,7 @@ class AttrEncryptedTest < Minitest::Test
93
95
  end
94
96
 
95
97
  def test_attr_encrypted_should_not_use_the_same_attribute_name_for_two_attributes_in_the_same_line
96
- refute_equal User.encrypted_attributes[:email][:attribute], User.encrypted_attributes[:without_encoding][:attribute]
98
+ refute_equal User.attr_encrypted_encrypted_attributes[:email][:attribute], User.attr_encrypted_encrypted_attributes[:without_encoding][:attribute]
97
99
  end
98
100
 
99
101
  def test_attr_encrypted_should_return_false_for_salt
@@ -152,7 +154,7 @@ class AttrEncryptedTest < Minitest::Test
152
154
  def test_should_decrypt_email_when_reading
153
155
  @user = User.new
154
156
  assert_nil @user.email
155
- options = @user.encrypted_attributes[:email]
157
+ options = @user.attr_encrypted_encrypted_attributes[:email]
156
158
  iv = @user.send(:generate_iv, options[:algorithm])
157
159
  encoded_iv = [iv].pack(options[:encode_iv])
158
160
  salt = SecureRandom.random_bytes
@@ -221,7 +223,7 @@ class AttrEncryptedTest < Minitest::Test
221
223
  end
222
224
 
223
225
  def test_should_inherit_encrypted_attributes
224
- assert_equal [User.encrypted_attributes.keys, :testing].flatten.collect { |key| key.to_s }.sort, Admin.encrypted_attributes.keys.collect { |key| key.to_s }.sort
226
+ assert_equal [User.attr_encrypted_encrypted_attributes.keys, :testing].flatten.collect { |key| key.to_s }.sort, Admin.attr_encrypted_encrypted_attributes.keys.collect { |key| key.to_s }.sort
225
227
  end
226
228
 
227
229
  def test_should_inherit_attr_encrypted_options
@@ -231,7 +233,7 @@ class AttrEncryptedTest < Minitest::Test
231
233
 
232
234
  def test_should_not_inherit_unrelated_attributes
233
235
  assert SomeOtherClass.attr_encrypted_options.empty?
234
- assert SomeOtherClass.encrypted_attributes.empty?
236
+ assert SomeOtherClass.attr_encrypted_encrypted_attributes.empty?
235
237
  end
236
238
 
237
239
  def test_should_evaluate_a_symbol_option
@@ -302,7 +304,7 @@ class AttrEncryptedTest < Minitest::Test
302
304
  end
303
305
 
304
306
  def test_should_work_with_aliased_attr_encryptor
305
- assert User.encrypted_attributes.include?(:aliased)
307
+ assert User.attr_encrypted_encrypted_attributes.include?(:aliased)
306
308
  end
307
309
 
308
310
  def test_should_always_reset_options
@@ -379,12 +381,12 @@ class AttrEncryptedTest < Minitest::Test
379
381
  @user2 = User.new
380
382
  @user2.email = 'test@example.com'
381
383
 
382
- assert_equal 'test@example.com', @user1.decrypt(:email, @user1.encrypted_email)
384
+ assert_equal 'test@example.com', @user1.attr_encrypted_decrypt(:email, @user1.encrypted_email)
383
385
  end
384
386
 
385
387
  def test_should_specify_the_default_algorithm
386
- assert YetAnotherClass.encrypted_attributes[:email][:algorithm]
387
- assert_equal YetAnotherClass.encrypted_attributes[:email][:algorithm], 'aes-256-gcm'
388
+ assert YetAnotherClass.attr_encrypted_encrypted_attributes[:email][:algorithm]
389
+ assert_equal YetAnotherClass.attr_encrypted_encrypted_attributes[:email][:algorithm], 'aes-256-gcm'
388
390
  end
389
391
 
390
392
  def test_should_not_encode_iv_when_encode_iv_is_false
@@ -466,4 +468,23 @@ class AttrEncryptedTest < Minitest::Test
466
468
  user.with_true_if = nil
467
469
  assert_nil user.encrypted_with_true_if_iv
468
470
  end
471
+
472
+ def test_encrypted_attributes_state_is_not_shared
473
+ user = User.new
474
+ user.ssn = '123456789'
475
+
476
+ another_user = User.new
477
+
478
+ assert_equal :encrypting, user.attr_encrypted_encrypted_attributes[:ssn][:operation]
479
+ assert_nil another_user.attr_encrypted_encrypted_attributes[:ssn][:operation]
480
+ end
481
+
482
+ def test_should_not_by_default_generate_key_when_attribute_is_empty
483
+ user = User.new
484
+ calls = 0
485
+ user.stub(:secret_key, lambda { calls += 1; SECRET_KEY }) do
486
+ user.ssn
487
+ end
488
+ assert_equal 0, calls
489
+ end
469
490
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # -*- encoding: utf-8 -*-
2
4
  require_relative 'test_helper'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'test_helper'
2
4
 
3
5
  DataMapper.setup(:default, 'sqlite3::memory:')
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # -*- encoding: utf-8 -*-
2
4
  require_relative 'test_helper'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # -*- encoding: utf-8 -*-
2
4
  require_relative 'test_helper'
3
5
 
@@ -56,11 +58,11 @@ end
56
58
  class LegacyAttrEncryptedTest < Minitest::Test
57
59
 
58
60
  def test_should_store_email_in_encrypted_attributes
59
- assert LegacyUser.encrypted_attributes.include?(:email)
61
+ assert LegacyUser.attr_encrypted_encrypted_attributes.include?(:email)
60
62
  end
61
63
 
62
64
  def test_should_not_store_salt_in_encrypted_attributes
63
- assert !LegacyUser.encrypted_attributes.include?(:salt)
65
+ assert !LegacyUser.attr_encrypted_encrypted_attributes.include?(:salt)
64
66
  end
65
67
 
66
68
  def test_attr_encrypted_should_return_true_for_email
@@ -68,7 +70,7 @@ class LegacyAttrEncryptedTest < Minitest::Test
68
70
  end
69
71
 
70
72
  def test_attr_encrypted_should_not_use_the_same_attribute_name_for_two_attributes_in_the_same_line
71
- refute_equal LegacyUser.encrypted_attributes[:email][:attribute], LegacyUser.encrypted_attributes[:without_encoding][:attribute]
73
+ refute_equal LegacyUser.attr_encrypted_encrypted_attributes[:email][:attribute], LegacyUser.attr_encrypted_encrypted_attributes[:without_encoding][:attribute]
72
74
  end
73
75
 
74
76
  def test_attr_encrypted_should_return_false_for_salt
@@ -199,7 +201,7 @@ class LegacyAttrEncryptedTest < Minitest::Test
199
201
  end
200
202
 
201
203
  def test_should_inherit_encrypted_attributes
202
- assert_equal [LegacyUser.encrypted_attributes.keys, :testing].flatten.collect { |key| key.to_s }.sort, LegacyAdmin.encrypted_attributes.keys.collect { |key| key.to_s }.sort
204
+ assert_equal [LegacyUser.attr_encrypted_encrypted_attributes.keys, :testing].flatten.collect { |key| key.to_s }.sort, LegacyAdmin.attr_encrypted_encrypted_attributes.keys.collect { |key| key.to_s }.sort
203
205
  end
204
206
 
205
207
  def test_should_inherit_attr_encrypted_options
@@ -209,7 +211,7 @@ class LegacyAttrEncryptedTest < Minitest::Test
209
211
 
210
212
  def test_should_not_inherit_unrelated_attributes
211
213
  assert LegacySomeOtherClass.attr_encrypted_options.empty?
212
- assert LegacySomeOtherClass.encrypted_attributes.empty?
214
+ assert LegacySomeOtherClass.attr_encrypted_encrypted_attributes.empty?
213
215
  end
214
216
 
215
217
  def test_should_evaluate_a_symbol_option
@@ -266,7 +268,7 @@ class LegacyAttrEncryptedTest < Minitest::Test
266
268
  end
267
269
 
268
270
  def test_should_work_with_aliased_attr_encryptor
269
- assert LegacyUser.encrypted_attributes.include?(:aliased)
271
+ assert LegacyUser.attr_encrypted_encrypted_attributes.include?(:aliased)
270
272
  end
271
273
 
272
274
  def test_should_always_reset_options
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # -*- encoding: utf-8 -*-
2
4
  require_relative 'test_helper'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'test_helper'
2
4
 
3
5
  DataMapper.setup(:default, 'sqlite3::memory:')
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'test_helper'
2
4
 
3
5
  DB.create_table :legacy_humans do
data/test/run.sh CHANGED
@@ -1,12 +1,20 @@
1
- #!/usr/bin/env sh -e
1
+ #!/usr/bin/env bash
2
2
 
3
- for RUBY in 1.9.3 2.0.0 2.1 2.2
3
+ set -e
4
+
5
+ for RUBY in 2.6.10 2.7.6
4
6
  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
7
+ for ACTIVERECORD in 5.1.1 5.2.8
6
8
  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
9
+ echo ">>> Testing with Ruby ${RUBY} and ActiveRecord ${ACTIVERECORD}."
10
+ export RBENV_VERSION=$RUBY
11
+ export ACTIVERECORD=$ACTIVERECORD
12
+
13
+ rbenv install $RUBY --skip-existing
14
+ bundle install
15
+ bundle check
16
+ bundle exec rake test
17
+ rm Gemfile.lock
18
+ echo ">>> Finished testing with Ruby ${RUBY} and ActiveRecord ${ACTIVERECORD}."
11
19
  done
12
20
  done
data/test/sequel_test.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'test_helper'
2
4
 
3
5
  DB.create_table :humans do
data/test/test_helper.rb CHANGED
@@ -1,12 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'pry'
1
4
  require 'simplecov'
2
5
  require 'simplecov-rcov'
3
- require "codeclimate-test-reporter"
4
6
 
5
7
  SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new(
6
8
  [
7
9
  SimpleCov::Formatter::HTMLFormatter,
8
- SimpleCov::Formatter::RcovFormatter,
9
- CodeClimate::TestReporter::Formatter
10
+ SimpleCov::Formatter::RcovFormatter
10
11
  ]
11
12
  )
12
13
 
@@ -14,8 +15,6 @@ SimpleCov.start do
14
15
  add_filter 'test'
15
16
  end
16
17
 
17
- CodeClimate::TestReporter.start
18
-
19
18
  require 'minitest/autorun'
20
19
 
21
20
  # Rails 4.0.x pins to an old minitest
metadata CHANGED
@@ -1,7 +1,7 @@
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.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Huber
@@ -10,30 +10,8 @@ authors:
10
10
  - Stephen Aghaulor
11
11
  autorequire:
12
12
  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
13
+ cert_chain: []
14
+ date: 2023-04-06 00:00:00.000000000 Z
37
15
  dependencies:
38
16
  - !ruby/object:Gem::Dependency
39
17
  name: encryptor
@@ -53,30 +31,30 @@ dependencies:
53
31
  name: activerecord
54
32
  requirement: !ruby/object:Gem::Requirement
55
33
  requirements:
56
- - - "~>"
34
+ - - ">="
57
35
  - !ruby/object:Gem::Version
58
- version: 4.1.16
36
+ version: 2.0.0
59
37
  type: :development
60
38
  prerelease: false
61
39
  version_requirements: !ruby/object:Gem::Requirement
62
40
  requirements:
63
- - - "~>"
41
+ - - ">="
64
42
  - !ruby/object:Gem::Version
65
- version: 4.1.16
43
+ version: 2.0.0
66
44
  - !ruby/object:Gem::Dependency
67
45
  name: actionpack
68
46
  requirement: !ruby/object:Gem::Requirement
69
47
  requirements:
70
- - - "~>"
48
+ - - ">="
71
49
  - !ruby/object:Gem::Version
72
- version: 4.1.16
50
+ version: 2.0.0
73
51
  type: :development
74
52
  prerelease: false
75
53
  version_requirements: !ruby/object:Gem::Requirement
76
54
  requirements:
77
- - - "~>"
55
+ - - ">="
78
56
  - !ruby/object:Gem::Version
79
- version: 4.1.16
57
+ version: 2.0.0
80
58
  - !ruby/object:Gem::Dependency
81
59
  name: datamapper
82
60
  requirement: !ruby/object:Gem::Requirement
@@ -137,16 +115,16 @@ dependencies:
137
115
  name: sqlite3
138
116
  requirement: !ruby/object:Gem::Requirement
139
117
  requirements:
140
- - - ">="
118
+ - - '='
141
119
  - !ruby/object:Gem::Version
142
- version: '0'
120
+ version: 1.5.4
143
121
  type: :development
144
122
  prerelease: false
145
123
  version_requirements: !ruby/object:Gem::Requirement
146
124
  requirements:
147
- - - ">="
125
+ - - '='
148
126
  - !ruby/object:Gem::Version
149
- version: '0'
127
+ version: 1.5.4
150
128
  - !ruby/object:Gem::Dependency
151
129
  name: dm-sqlite-adapter
152
130
  requirement: !ruby/object:Gem::Requirement
@@ -162,7 +140,7 @@ dependencies:
162
140
  - !ruby/object:Gem::Version
163
141
  version: '0'
164
142
  - !ruby/object:Gem::Dependency
165
- name: simplecov
143
+ name: pry
166
144
  requirement: !ruby/object:Gem::Requirement
167
145
  requirements:
168
146
  - - ">="
@@ -176,7 +154,7 @@ dependencies:
176
154
  - !ruby/object:Gem::Version
177
155
  version: '0'
178
156
  - !ruby/object:Gem::Dependency
179
- name: simplecov-rcov
157
+ name: simplecov
180
158
  requirement: !ruby/object:Gem::Requirement
181
159
  requirements:
182
160
  - - ">="
@@ -190,19 +168,19 @@ dependencies:
190
168
  - !ruby/object:Gem::Version
191
169
  version: '0'
192
170
  - !ruby/object:Gem::Dependency
193
- name: codeclimate-test-reporter
171
+ name: simplecov-rcov
194
172
  requirement: !ruby/object:Gem::Requirement
195
173
  requirements:
196
- - - "<="
174
+ - - ">="
197
175
  - !ruby/object:Gem::Version
198
- version: 0.6.0
176
+ version: '0'
199
177
  type: :development
200
178
  prerelease: false
201
179
  version_requirements: !ruby/object:Gem::Requirement
202
180
  requirements:
203
- - - "<="
181
+ - - ">="
204
182
  - !ruby/object:Gem::Version
205
- version: 0.6.0
183
+ version: '0'
206
184
  description: Generates attr_accessors that encrypt and decrypt attributes transparently
207
185
  email:
208
186
  - seah@shuber.io
@@ -221,7 +199,6 @@ files:
221
199
  - README.md
222
200
  - Rakefile
223
201
  - attr_encrypted.gemspec
224
- - certs/saghaulor.pem
225
202
  - checksum/attr_encrypted-3.0.0.gem.sha256
226
203
  - checksum/attr_encrypted-3.0.0.gem.sha512
227
204
  - checksum/attr_encrypted-3.0.1.gem.sha256
@@ -230,6 +207,8 @@ files:
230
207
  - checksum/attr_encrypted-3.0.2.gem.sha512
231
208
  - checksum/attr_encrypted-3.0.3.gem.sha256
232
209
  - checksum/attr_encrypted-3.0.3.gem.sha512
210
+ - checksum/attr_encrypted-3.1.0.gem.sha256
211
+ - checksum/attr_encrypted-3.1.0.gem.sha512
233
212
  - lib/attr_encrypted.rb
234
213
  - lib/attr_encrypted/adapters/active_record.rb
235
214
  - lib/attr_encrypted/adapters/data_mapper.rb
@@ -255,35 +234,25 @@ post_install_message: |2+
255
234
 
256
235
 
257
236
 
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.
237
+ WARNING: Using `#encrypted_attributes` is no longer supported. Instead, use `#attr_encrypted_encrypted_attributes` to avoid
238
+ collision with Active Record 7 native encryption.
265
239
 
266
240
 
267
- rdoc_options:
268
- - "--line-numbers"
269
- - "--inline-source"
270
- - "--main"
271
- - README.rdoc
241
+ rdoc_options: []
272
242
  require_paths:
273
243
  - lib
274
244
  required_ruby_version: !ruby/object:Gem::Requirement
275
245
  requirements:
276
246
  - - ">="
277
247
  - !ruby/object:Gem::Version
278
- version: 2.0.0
248
+ version: 2.6.0
279
249
  required_rubygems_version: !ruby/object:Gem::Requirement
280
250
  requirements:
281
251
  - - ">="
282
252
  - !ruby/object:Gem::Version
283
253
  version: '0'
284
254
  requirements: []
285
- rubyforge_project:
286
- rubygems_version: 2.6.13
255
+ rubygems_version: 3.0.3.1
287
256
  signing_key:
288
257
  specification_version: 4
289
258
  summary: Encrypt and decrypt attributes
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/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-----
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