attr_encrypted 1.4.0 → 3.0.3
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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/.gitignore +6 -0
- data/.travis.yml +31 -0
- data/CHANGELOG.md +87 -0
- data/Gemfile +3 -0
- data/README.md +444 -0
- data/Rakefile +3 -15
- data/attr_encrypted.gemspec +63 -0
- data/certs/saghaulor.pem +21 -0
- data/checksum/attr_encrypted-3.0.0.gem.sha256 +1 -0
- data/checksum/attr_encrypted-3.0.0.gem.sha512 +1 -0
- data/checksum/attr_encrypted-3.0.1.gem.sha256 +1 -0
- data/checksum/attr_encrypted-3.0.1.gem.sha512 +1 -0
- data/checksum/attr_encrypted-3.0.2.gem.sha256 +1 -0
- data/checksum/attr_encrypted-3.0.2.gem.sha512 +1 -0
- data/lib/attr_encrypted/adapters/active_record.rb +38 -19
- data/lib/attr_encrypted/adapters/data_mapper.rb +1 -0
- data/lib/attr_encrypted/adapters/sequel.rb +1 -0
- data/lib/attr_encrypted/version.rb +3 -3
- data/lib/attr_encrypted.rb +198 -115
- data/test/active_record_test.rb +145 -88
- data/test/attr_encrypted_test.rb +101 -39
- data/test/compatibility_test.rb +37 -56
- data/test/data_mapper_test.rb +1 -1
- data/test/legacy_active_record_test.rb +17 -15
- data/test/legacy_attr_encrypted_test.rb +17 -16
- data/test/legacy_compatibility_test.rb +33 -44
- data/test/legacy_data_mapper_test.rb +6 -3
- data/test/legacy_sequel_test.rb +8 -4
- data/test/run.sh +12 -52
- data/test/sequel_test.rb +1 -1
- data/test/test_helper.rb +27 -17
- data.tar.gz.sig +0 -0
- metadata +75 -29
- metadata.gz.sig +0 -0
- data/README.rdoc +0 -344
@@ -1,5 +1,5 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
|
2
|
+
require_relative 'test_helper'
|
3
3
|
|
4
4
|
# Test to ensure that existing representations in database do not break on
|
5
5
|
# migrating to new versions of this gem. This ensures that future versions of
|
@@ -12,10 +12,14 @@ class LegacyCompatibilityTest < Minitest::Test
|
|
12
12
|
PET_BIRTHDATE_SALT = Digest::SHA256.hexdigest('my-really-really-secret-pet-birthdate-salt')
|
13
13
|
PET_BIRTHDATE_KEY = 'my-really-really-secret-pet-birthdate-key'
|
14
14
|
|
15
|
+
self.attr_encrypted_options[:insecure_mode] = true
|
16
|
+
self.attr_encrypted_options[:algorithm] = 'aes-256-cbc'
|
17
|
+
self.attr_encrypted_options[:mode] = :single_iv_and_salt
|
18
|
+
|
15
19
|
attr_encrypted :nickname,
|
16
|
-
:key => proc { Encryptor.encrypt(:value => PET_NICKNAME_SALT, :key => PET_NICKNAME_KEY) }
|
20
|
+
:key => proc { Encryptor.encrypt(:value => PET_NICKNAME_SALT, :key => PET_NICKNAME_KEY, insecure_mode: true, algorithm: 'aes-256-cbc') }
|
17
21
|
attr_encrypted :birthdate,
|
18
|
-
:key => proc { Encryptor.encrypt(:value => PET_BIRTHDATE_SALT, :key => PET_BIRTHDATE_KEY) }
|
22
|
+
:key => proc { Encryptor.encrypt(:value => PET_BIRTHDATE_SALT, :key => PET_BIRTHDATE_KEY, insecure_mode: true, algorithm: 'aes-256-cbc') }
|
19
23
|
end
|
20
24
|
|
21
25
|
class LegacyMarshallingPet < ActiveRecord::Base
|
@@ -24,12 +28,16 @@ class LegacyCompatibilityTest < Minitest::Test
|
|
24
28
|
PET_BIRTHDATE_SALT = Digest::SHA256.hexdigest('my-really-really-secret-pet-birthdate-salt')
|
25
29
|
PET_BIRTHDATE_KEY = 'my-really-really-secret-pet-birthdate-key'
|
26
30
|
|
31
|
+
self.attr_encrypted_options[:insecure_mode] = true
|
32
|
+
self.attr_encrypted_options[:algorithm] = 'aes-256-cbc'
|
33
|
+
self.attr_encrypted_options[:mode] = :single_iv_and_salt
|
34
|
+
|
27
35
|
attr_encrypted :nickname,
|
28
|
-
|
29
|
-
|
36
|
+
:key => proc { Encryptor.encrypt(:value => PET_NICKNAME_SALT, :key => PET_NICKNAME_KEY, insecure_mode: true, algorithm: 'aes-256-cbc') },
|
37
|
+
:marshal => true
|
30
38
|
attr_encrypted :birthdate,
|
31
|
-
|
32
|
-
|
39
|
+
:key => proc { Encryptor.encrypt(:value => PET_BIRTHDATE_SALT, :key => PET_BIRTHDATE_KEY, insecure_mode: true, algorithm: 'aes-256-cbc') },
|
40
|
+
:marshal => true
|
33
41
|
end
|
34
42
|
|
35
43
|
def setup
|
@@ -50,55 +58,36 @@ class LegacyCompatibilityTest < Minitest::Test
|
|
50
58
|
end
|
51
59
|
|
52
60
|
def test_marshalling_backwards_compatibility
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
:name => 'Fido',
|
59
|
-
:encrypted_nickname => 'xhayxWxfkfbNyOS2w1qBMPV49Gfvs6dcZFBopMK2zQA=',
|
60
|
-
:encrypted_birthdate => 'f4ufXun4GXzahH4MQ1eTBQ=='
|
61
|
-
)
|
62
|
-
else
|
63
|
-
pet = LegacyMarshallingPet.create!(
|
64
|
-
:name => 'Fido',
|
65
|
-
:encrypted_nickname => '7RwoT64in4H+fGVBPYtRcN0K4RtriIy1EP4nDojUa8g=',
|
66
|
-
:encrypted_birthdate => 'bSp9sJhXQSp2QlNZHiujtcK4lRVBE8HQhn1y7moQ63bGJR20hvRSZ73ePAmm+wc5'
|
67
|
-
)
|
68
|
-
end
|
61
|
+
pet = LegacyMarshallingPet.create!(
|
62
|
+
:name => 'Fido',
|
63
|
+
:encrypted_nickname => '7RwoT64in4H+fGVBPYtRcN0K4RtriIy1EP4nDojUa8g=',
|
64
|
+
:encrypted_birthdate => 'bSp9sJhXQSp2QlNZHiujtcK4lRVBE8HQhn1y7moQ63bGJR20hvRSZ73ePAmm+wc5'
|
65
|
+
)
|
69
66
|
|
70
67
|
assert_equal 'Fido', pet.name
|
71
68
|
assert_equal 'Mummy\'s little helper', pet.nickname
|
72
69
|
|
73
|
-
|
74
|
-
if RUBY_VERSION < '1.9.3'
|
75
|
-
assert_equal '2011-07-09', pet.birthdate
|
76
|
-
else
|
77
|
-
assert_equal Date.new(2011, 7, 9), pet.birthdate
|
78
|
-
end
|
70
|
+
assert_equal Date.new(2011, 7, 9), pet.birthdate
|
79
71
|
end
|
80
72
|
|
81
73
|
private
|
82
74
|
|
83
75
|
def create_tables
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
t.string :salt
|
97
|
-
end
|
76
|
+
ActiveRecord::Schema.define(:version => 1) do
|
77
|
+
create_table :legacy_nonmarshalling_pets do |t|
|
78
|
+
t.string :name
|
79
|
+
t.string :encrypted_nickname
|
80
|
+
t.string :encrypted_birthdate
|
81
|
+
t.string :salt
|
82
|
+
end
|
83
|
+
create_table :legacy_marshalling_pets do |t|
|
84
|
+
t.string :name
|
85
|
+
t.string :encrypted_nickname
|
86
|
+
t.string :encrypted_birthdate
|
87
|
+
t.string :salt
|
98
88
|
end
|
99
89
|
end
|
100
90
|
end
|
101
91
|
end
|
102
92
|
|
103
93
|
ActiveRecord::Base.establish_connection :adapter => 'sqlite3', :database => ':memory:'
|
104
|
-
|
@@ -1,17 +1,20 @@
|
|
1
|
-
|
1
|
+
require_relative 'test_helper'
|
2
2
|
|
3
3
|
DataMapper.setup(:default, 'sqlite3::memory:')
|
4
4
|
|
5
5
|
class LegacyClient
|
6
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
|
7
10
|
|
8
11
|
property :id, Serial
|
9
12
|
property :encrypted_email, String
|
10
13
|
property :encrypted_credentials, Text
|
11
14
|
property :salt, String
|
12
15
|
|
13
|
-
attr_encrypted :email, :key => 'a secret key'
|
14
|
-
attr_encrypted :credentials, :key => Proc.new { |client| Encryptor.encrypt(:value => client.salt, :key => 'some private key') }, :marshal => true
|
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
|
15
18
|
|
16
19
|
def initialize(attrs = {})
|
17
20
|
super attrs
|
data/test/legacy_sequel_test.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
require_relative 'test_helper'
|
2
2
|
|
3
3
|
DB.create_table :legacy_humans do
|
4
4
|
primary_key :id
|
@@ -8,9 +8,13 @@ DB.create_table :legacy_humans do
|
|
8
8
|
column :salt, :string
|
9
9
|
end
|
10
10
|
|
11
|
-
class LegacyHuman < Sequel::Model(:legacy_humans)
|
12
|
-
|
13
|
-
|
11
|
+
class LegacyHuman < Sequel::Model(:legacy_humans)
|
12
|
+
self.attr_encrypted_options[:insecure_mode] = true
|
13
|
+
self.attr_encrypted_options[:algorithm] = 'aes-256-cbc'
|
14
|
+
self.attr_encrypted_options[:mode] = :single_iv_and_salt
|
15
|
+
|
16
|
+
attr_encrypted :email, :key => 'a secret key', mode: :single_iv_and_salt
|
17
|
+
attr_encrypted :credentials, :key => Proc.new { |human| Encryptor.encrypt(:value => human.salt, :key => 'some private key', insecure_mode: true, algorithm: 'aes-256-cbc') }, :marshal => true, mode: :single_iv_and_salt
|
14
18
|
|
15
19
|
def after_initialize(attrs = {})
|
16
20
|
self.salt ||= Digest::SHA1.hexdigest((Time.now.to_i * rand(5)).to_s)
|
data/test/run.sh
CHANGED
@@ -1,52 +1,12 @@
|
|
1
|
-
#!/bin/sh
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
bundle exec rake
|
11
|
-
|
12
|
-
|
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
data/test/test_helper.rb
CHANGED
@@ -1,35 +1,42 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
require 'simplecov'
|
2
|
+
require 'simplecov-rcov'
|
3
|
+
require "codeclimate-test-reporter"
|
4
4
|
|
5
|
-
|
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
|
-
|
11
|
-
|
12
|
-
end
|
13
|
+
SimpleCov.start do
|
14
|
+
add_filter 'test'
|
13
15
|
end
|
14
16
|
|
17
|
+
CodeClimate::TestReporter.start
|
18
|
+
|
15
19
|
require 'minitest/autorun'
|
16
|
-
|
17
|
-
|
18
|
-
|
20
|
+
|
21
|
+
# Rails 4.0.x pins to an old minitest
|
22
|
+
unless defined?(MiniTest::Test)
|
23
|
+
MiniTest::Test = MiniTest::Unit::TestCase
|
24
|
+
end
|
25
|
+
|
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
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
35
|
+
DB = if defined?(RUBY_ENGINE) && RUBY_ENGINE.to_sym == :jruby
|
36
|
+
Sequel.jdbc('jdbc:sqlite::memory:')
|
37
|
+
else
|
38
|
+
Sequel.sqlite
|
39
|
+
end
|
33
40
|
|
34
41
|
# The :after_initialize hook was removed in Sequel 4.0
|
35
42
|
# and had been deprecated for a while before that:
|
@@ -37,5 +44,8 @@ DB = Sequel.sqlite
|
|
37
44
|
# This plugin re-enables it.
|
38
45
|
Sequel::Model.plugin :after_initialize
|
39
46
|
|
40
|
-
SECRET_KEY =
|
47
|
+
SECRET_KEY = SecureRandom.random_bytes(32)
|
41
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
|
data.tar.gz.sig
ADDED
Binary file
|
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:
|
4
|
+
version: 3.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sean Huber
|
@@ -10,8 +10,30 @@ authors:
|
|
10
10
|
- Stephen Aghaulor
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
|
-
cert_chain:
|
14
|
-
|
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-07-22 00:00:00.000000000 Z
|
15
37
|
dependencies:
|
16
38
|
- !ruby/object:Gem::Dependency
|
17
39
|
name: encryptor
|
@@ -19,14 +41,14 @@ dependencies:
|
|
19
41
|
requirements:
|
20
42
|
- - "~>"
|
21
43
|
- !ruby/object:Gem::Version
|
22
|
-
version:
|
44
|
+
version: 3.0.0
|
23
45
|
type: :runtime
|
24
46
|
prerelease: false
|
25
47
|
version_requirements: !ruby/object:Gem::Requirement
|
26
48
|
requirements:
|
27
49
|
- - "~>"
|
28
50
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
51
|
+
version: 3.0.0
|
30
52
|
- !ruby/object:Gem::Dependency
|
31
53
|
name: activerecord
|
32
54
|
requirement: !ruby/object:Gem::Requirement
|
@@ -42,19 +64,19 @@ dependencies:
|
|
42
64
|
- !ruby/object:Gem::Version
|
43
65
|
version: 2.0.0
|
44
66
|
- !ruby/object:Gem::Dependency
|
45
|
-
name:
|
67
|
+
name: actionpack
|
46
68
|
requirement: !ruby/object:Gem::Requirement
|
47
69
|
requirements:
|
48
70
|
- - ">="
|
49
71
|
- !ruby/object:Gem::Version
|
50
|
-
version:
|
72
|
+
version: 2.0.0
|
51
73
|
type: :development
|
52
74
|
prerelease: false
|
53
75
|
version_requirements: !ruby/object:Gem::Requirement
|
54
76
|
requirements:
|
55
77
|
- - ">="
|
56
78
|
- !ruby/object:Gem::Version
|
57
|
-
version:
|
79
|
+
version: 2.0.0
|
58
80
|
- !ruby/object:Gem::Dependency
|
59
81
|
name: datamapper
|
60
82
|
requirement: !ruby/object:Gem::Requirement
|
@@ -70,33 +92,33 @@ dependencies:
|
|
70
92
|
- !ruby/object:Gem::Version
|
71
93
|
version: '0'
|
72
94
|
- !ruby/object:Gem::Dependency
|
73
|
-
name:
|
95
|
+
name: rake
|
74
96
|
requirement: !ruby/object:Gem::Requirement
|
75
97
|
requirements:
|
76
|
-
- -
|
98
|
+
- - ">="
|
77
99
|
- !ruby/object:Gem::Version
|
78
|
-
version:
|
100
|
+
version: '0'
|
79
101
|
type: :development
|
80
102
|
prerelease: false
|
81
103
|
version_requirements: !ruby/object:Gem::Requirement
|
82
104
|
requirements:
|
83
|
-
- -
|
105
|
+
- - ">="
|
84
106
|
- !ruby/object:Gem::Version
|
85
|
-
version:
|
107
|
+
version: '0'
|
86
108
|
- !ruby/object:Gem::Dependency
|
87
|
-
name:
|
109
|
+
name: minitest
|
88
110
|
requirement: !ruby/object:Gem::Requirement
|
89
111
|
requirements:
|
90
|
-
- - "
|
112
|
+
- - ">="
|
91
113
|
- !ruby/object:Gem::Version
|
92
|
-
version:
|
114
|
+
version: '0'
|
93
115
|
type: :development
|
94
116
|
prerelease: false
|
95
117
|
version_requirements: !ruby/object:Gem::Requirement
|
96
118
|
requirements:
|
97
|
-
- - "
|
119
|
+
- - ">="
|
98
120
|
- !ruby/object:Gem::Version
|
99
|
-
version:
|
121
|
+
version: '0'
|
100
122
|
- !ruby/object:Gem::Dependency
|
101
123
|
name: sequel
|
102
124
|
requirement: !ruby/object:Gem::Requirement
|
@@ -140,21 +162,21 @@ dependencies:
|
|
140
162
|
- !ruby/object:Gem::Version
|
141
163
|
version: '0'
|
142
164
|
- !ruby/object:Gem::Dependency
|
143
|
-
name:
|
165
|
+
name: simplecov
|
144
166
|
requirement: !ruby/object:Gem::Requirement
|
145
167
|
requirements:
|
146
|
-
- -
|
168
|
+
- - ">="
|
147
169
|
- !ruby/object:Gem::Version
|
148
|
-
version: 0
|
170
|
+
version: '0'
|
149
171
|
type: :development
|
150
172
|
prerelease: false
|
151
173
|
version_requirements: !ruby/object:Gem::Requirement
|
152
174
|
requirements:
|
153
|
-
- -
|
175
|
+
- - ">="
|
154
176
|
- !ruby/object:Gem::Version
|
155
|
-
version: 0
|
177
|
+
version: '0'
|
156
178
|
- !ruby/object:Gem::Dependency
|
157
|
-
name: simplecov
|
179
|
+
name: simplecov-rcov
|
158
180
|
requirement: !ruby/object:Gem::Requirement
|
159
181
|
requirements:
|
160
182
|
- - ">="
|
@@ -168,7 +190,7 @@ dependencies:
|
|
168
190
|
- !ruby/object:Gem::Version
|
169
191
|
version: '0'
|
170
192
|
- !ruby/object:Gem::Dependency
|
171
|
-
name:
|
193
|
+
name: codeclimate-test-reporter
|
172
194
|
requirement: !ruby/object:Gem::Requirement
|
173
195
|
requirements:
|
174
196
|
- - ">="
|
@@ -183,7 +205,7 @@ dependencies:
|
|
183
205
|
version: '0'
|
184
206
|
description: Generates attr_accessors that encrypt and decrypt attributes transparently
|
185
207
|
email:
|
186
|
-
- shuber
|
208
|
+
- seah@shuber.io
|
187
209
|
- sbfaulkner@gmail.com
|
188
210
|
- billy.monk@gmail.com
|
189
211
|
- saghaulor@gmail.com
|
@@ -191,9 +213,21 @@ executables: []
|
|
191
213
|
extensions: []
|
192
214
|
extra_rdoc_files: []
|
193
215
|
files:
|
216
|
+
- ".gitignore"
|
217
|
+
- ".travis.yml"
|
218
|
+
- CHANGELOG.md
|
219
|
+
- Gemfile
|
194
220
|
- MIT-LICENSE
|
195
|
-
- README.
|
221
|
+
- README.md
|
196
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
|
+
- checksum/attr_encrypted-3.0.1.gem.sha256
|
228
|
+
- checksum/attr_encrypted-3.0.1.gem.sha512
|
229
|
+
- checksum/attr_encrypted-3.0.2.gem.sha256
|
230
|
+
- checksum/attr_encrypted-3.0.2.gem.sha512
|
197
231
|
- lib/attr_encrypted.rb
|
198
232
|
- lib/attr_encrypted/adapters/active_record.rb
|
199
233
|
- lib/attr_encrypted/adapters/data_mapper.rb
|
@@ -214,7 +248,19 @@ files:
|
|
214
248
|
homepage: http://github.com/attr-encrypted/attr_encrypted
|
215
249
|
licenses: []
|
216
250
|
metadata: {}
|
217
|
-
post_install_message:
|
251
|
+
post_install_message: |2+
|
252
|
+
|
253
|
+
|
254
|
+
|
255
|
+
WARNING: Several insecure default options and features were deprecated in attr_encrypted v2.0.0.
|
256
|
+
|
257
|
+
Additionally, there was a bug in Encryptor v2.0.0 that insecurely encrypted data when using an AES-*-GCM algorithm.
|
258
|
+
|
259
|
+
This bug was fixed but introduced breaking changes between v2.x and v3.x.
|
260
|
+
|
261
|
+
Please see the README for more information regarding upgrading to attr_encrypted v3.0.0.
|
262
|
+
|
263
|
+
|
218
264
|
rdoc_options:
|
219
265
|
- "--line-numbers"
|
220
266
|
- "--inline-source"
|
@@ -226,7 +272,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
226
272
|
requirements:
|
227
273
|
- - ">="
|
228
274
|
- !ruby/object:Gem::Version
|
229
|
-
version:
|
275
|
+
version: 2.0.0
|
230
276
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
231
277
|
requirements:
|
232
278
|
- - ">="
|
metadata.gz.sig
ADDED
Binary file
|