attr_cipher 1.2.0 → 1.3.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +13 -0
- data/README.md +3 -3
- data/lib/attr_cipher/attr_cipher.rb +6 -11
- data/lib/attr_cipher/cipher.rb +6 -0
- data/lib/attr_cipher/version.rb +1 -1
- metadata +3 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6a896f093962e62296aec6818f68b36736daff46
|
4
|
+
data.tar.gz: 37ef1ffb2afbd1c8d5754c470ca7626897f8dd57
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dbb6c823857f19d4d9fd51ca1f5b2e2a6bd1a9d08c03bf17ea4469d3ec476115baf855f0e021f2600c62bd3870a440add418bcfc028129ac4a23f721e33070e3
|
7
|
+
data.tar.gz: 0fc52af26991b33c20c25345a342012d630df41cb8650e79e94242e9e785db31ea23ed96b9549d2fe90fe5ce8e4903a2419260e8a03237134d8491746459b5ed
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,17 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
##v1.3.0
|
4
|
+
- Loosened ActiveRecord version to >= 4.2.6 only.
|
5
|
+
- Loosened ActiveSupport version to >= 4.2.6 only.
|
6
|
+
- Moved secret length validator to encrypt and decrypt functions of Cipher module to remove false positive warnings at startup.
|
7
|
+
- Updated specs with changes.
|
8
|
+
|
9
|
+
##v1.2.0
|
10
|
+
- Updated README.
|
11
|
+
- Updated Gem description.
|
12
|
+
|
13
|
+
##v1.1.0
|
14
|
+
- Updated Gem description.
|
15
|
+
|
3
16
|
##v1.0.0
|
4
17
|
- Initial release.
|
data/README.md
CHANGED
@@ -22,8 +22,8 @@ And run `bundle install`.
|
|
22
22
|
## Dependencies
|
23
23
|
|
24
24
|
Runtime:
|
25
|
-
- activerecord (>= 4.2.6
|
26
|
-
- activesupport (>= 4.2.6
|
25
|
+
- activerecord (>= 4.2.6)
|
26
|
+
- activesupport (>= 4.2.6)
|
27
27
|
|
28
28
|
Development/Test:
|
29
29
|
- rake (~> 10.5)
|
@@ -115,7 +115,7 @@ bundle exec rake
|
|
115
115
|
|
116
116
|
## Credit
|
117
117
|
|
118
|
-
I would like to thank [Nando Vieira](http://nandovieira.com/) for his [encrypt_attr](https://github.com/fnando/encrypt_attr) gem from which some of the code was derived.
|
118
|
+
I would like to thank [Nando Vieira](http://nandovieira.com/) for his [encrypt_attr](https://github.com/fnando/encrypt_attr) gem from which some of the code was derived. The `encrypt_attr` gem is a better fit for non-ActiveRecord use.
|
119
119
|
|
120
120
|
This gem was written and is maintained by [Jurgen Jocubeit](https://github.com/JurgenJocubeit), CEO and President Brightcommerce, Inc.
|
121
121
|
|
@@ -4,31 +4,26 @@ require 'active_support/all'
|
|
4
4
|
module AttrCipher
|
5
5
|
extend ActiveSupport::Concern
|
6
6
|
|
7
|
+
class Error < ::StandardError
|
8
|
+
end
|
9
|
+
|
10
|
+
class SecretTooShortException < Error
|
11
|
+
end
|
12
|
+
|
7
13
|
class << self
|
8
14
|
attr_accessor :cipher
|
9
15
|
attr_reader :secret
|
10
16
|
end
|
11
17
|
|
12
18
|
def self.secret=(value)
|
13
|
-
validate_secret(value.to_s)
|
14
19
|
@secret = value.to_s
|
15
20
|
end
|
16
21
|
|
17
|
-
def self.validate_secret(value)
|
18
|
-
if value.size < 100
|
19
|
-
offending_line = caller.reject { |entry|
|
20
|
-
entry.include?(__dir__) || entry.include?("forwardable.rb")
|
21
|
-
}.first[/^(.*?:\d+)/, 1]
|
22
|
-
warn "[attr_cipher] secret must have at least 100 characters (called from #{offending_line})"
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
22
|
self.cipher = Cipher
|
27
23
|
self.secret = ''
|
28
24
|
|
29
25
|
module ClassMethods
|
30
26
|
def attr_cipher(*args, secret: AttrCipher.secret, cipher: AttrCipher.cipher)
|
31
|
-
AttrCipher.validate_secret(secret)
|
32
27
|
args.each do |attribute|
|
33
28
|
define_cipher_attribute(attribute, secret, cipher)
|
34
29
|
end
|
data/lib/attr_cipher/cipher.rb
CHANGED
@@ -25,6 +25,9 @@ module AttrCipher
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def decrypt(value)
|
28
|
+
raise ::AttrCipher::SecretTooShortException.new(
|
29
|
+
"Secret must have at least 100 characters"
|
30
|
+
) if @secret.size < 100
|
28
31
|
cipher(:decrypt, decode(value))
|
29
32
|
end
|
30
33
|
|
@@ -33,6 +36,9 @@ module AttrCipher
|
|
33
36
|
end
|
34
37
|
|
35
38
|
def encrypt(value)
|
39
|
+
raise ::AttrCipher::SecretTooShortException.new(
|
40
|
+
"Secret must have at least 100 characters"
|
41
|
+
) if @secret.size < 100
|
36
42
|
encode(cipher(:encrypt, value))
|
37
43
|
end
|
38
44
|
|
data/lib/attr_cipher/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: attr_cipher
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jurgen Jocubeit
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-08-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -17,9 +17,6 @@ dependencies:
|
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 4.2.6
|
20
|
-
- - "<"
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 5.2.0
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -27,9 +24,6 @@ dependencies:
|
|
27
24
|
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: 4.2.6
|
30
|
-
- - "<"
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: 5.2.0
|
33
27
|
- !ruby/object:Gem::Dependency
|
34
28
|
name: activerecord
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -37,9 +31,6 @@ dependencies:
|
|
37
31
|
- - ">="
|
38
32
|
- !ruby/object:Gem::Version
|
39
33
|
version: 4.2.6
|
40
|
-
- - "<"
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
version: 5.2.0
|
43
34
|
type: :runtime
|
44
35
|
prerelease: false
|
45
36
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -47,9 +38,6 @@ dependencies:
|
|
47
38
|
- - ">="
|
48
39
|
- !ruby/object:Gem::Version
|
49
40
|
version: 4.2.6
|
50
|
-
- - "<"
|
51
|
-
- !ruby/object:Gem::Version
|
52
|
-
version: 5.2.0
|
53
41
|
- !ruby/object:Gem::Dependency
|
54
42
|
name: rake
|
55
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -159,5 +147,5 @@ rubyforge_project:
|
|
159
147
|
rubygems_version: 2.5.1
|
160
148
|
signing_key:
|
161
149
|
specification_version: 4
|
162
|
-
summary: AttrCipher v1.
|
150
|
+
summary: AttrCipher v1.3.0
|
163
151
|
test_files: []
|