kms_rails 0.0.10 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +12 -9
- data/README.md +1 -1
- data/kms_rails.gemspec +20 -21
- data/lib/kms_rails/core.rb +6 -6
- data/lib/kms_rails/kms_client_mock.rb +1 -1
- data/lib/kms_rails/version.rb +1 -1
- metadata +5 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4262167f60f496910dab0e409a0fc7bc1dc68fd8
|
4
|
+
data.tar.gz: face00d402ebbef3493be1865cdcc722cc61e890
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4efc755fa75e3943b25f348023de52bf2767b22ab7334109bd5efd4c5d4de13b0fee1a4e3d38784d4affbfa6dfa1ff54c0d15f955044f4c62e89a3e6658bb5b4
|
7
|
+
data.tar.gz: d52ddf74f34fd2a938babf03d490705fc7b2484ea55f7781c3cb1d6d0d3f6d38edb04aae81e7af18c5c2f8a9a9164e3b2345dbfba876fdaff9c4b7373eb7f1fd
|
data/.travis.yml
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
env:
|
2
|
+
global:
|
3
|
+
- CC_TEST_REPORTER_ID=156fab7dad33afa6dd4b24ab5721a01e5bbb41c3f07c380195695102b7363e0a
|
4
|
+
|
1
5
|
language: ruby
|
2
6
|
rvm:
|
3
7
|
- 2.1
|
@@ -5,13 +9,12 @@ rvm:
|
|
5
9
|
- 2.3
|
6
10
|
- 2.4
|
7
11
|
- 2.5
|
8
|
-
|
9
|
-
addons:
|
10
|
-
code_climate:
|
11
|
-
repo_token: 156fab7dad33afa6dd4b24ab5721a01e5bbb41c3f07c380195695102b7363e0a
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
13
|
+
before_script:
|
14
|
+
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
15
|
+
- chmod +x ./cc-test-reporter
|
16
|
+
- ./cc-test-reporter before-build
|
17
|
+
script:
|
18
|
+
- bundle exec rspec spec
|
19
|
+
after_script:
|
20
|
+
- ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
|
data/README.md
CHANGED
@@ -145,7 +145,7 @@ Directly specifying a key_id as a UUID or with the `alias/` prefix explicitly de
|
|
145
145
|
## Other stuff
|
146
146
|
|
147
147
|
### Notes
|
148
|
-
This gem has been developed against Ruby 2.3.1, Rails 4.2, and AWS SDK
|
148
|
+
This gem has been developed against Ruby 2.3.1, Rails 4.2, and AWS SDK v3. Credit where credit is due, strongbox by spikex was used as an inspiration and guide when creating this. https://github.com/spikex/strongbox
|
149
149
|
|
150
150
|
### Disclaimer
|
151
151
|
No claims are made about enhanced security when using this gem.
|
data/kms_rails.gemspec
CHANGED
@@ -4,35 +4,34 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'kms_rails/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
7
|
+
spec.name = 'kms_rails'
|
8
8
|
spec.version = KmsRails::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
9
|
+
spec.authors = ['Ash Tyndall', 'Justin Ouellette']
|
10
|
+
spec.email = ['ash@appbot.co']
|
11
11
|
|
12
12
|
spec.summary = %q{AWS KMS encryption for ActiveRecord & ActiveJob.}
|
13
13
|
spec.description = %q{Quickly add KMS encryption and decryption to your ActiveRecord model attributes and ActiveJob parameters. Improves upon kms_attrs with ActiveJob support, more efficient binary serialization and a test suite.}
|
14
|
-
spec.homepage =
|
15
|
-
spec.license =
|
14
|
+
spec.homepage = 'https://github.com/appbot/kms_rails'
|
15
|
+
spec.license = 'GPLv3'
|
16
16
|
|
17
17
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
18
|
-
spec.bindir =
|
18
|
+
spec.bindir = 'exe'
|
19
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
|
-
spec.require_paths = [
|
20
|
+
spec.require_paths = ['lib']
|
21
21
|
spec.required_ruby_version = '>= 2.1'
|
22
22
|
|
23
|
-
spec.add_runtime_dependency
|
24
|
-
spec.add_runtime_dependency
|
25
|
-
spec.add_runtime_dependency
|
26
|
-
spec.add_runtime_dependency
|
23
|
+
spec.add_runtime_dependency 'activerecord', '>= 4'
|
24
|
+
spec.add_runtime_dependency 'activejob', '>= 4'
|
25
|
+
spec.add_runtime_dependency 'aws-sdk-kms', '~> 1'
|
26
|
+
spec.add_runtime_dependency 'msgpack'
|
27
27
|
|
28
|
-
spec.add_development_dependency
|
29
|
-
spec.add_development_dependency
|
30
|
-
spec.add_development_dependency
|
31
|
-
spec.add_development_dependency
|
32
|
-
spec.add_development_dependency
|
33
|
-
spec.add_development_dependency
|
34
|
-
spec.add_development_dependency
|
35
|
-
spec.add_development_dependency
|
36
|
-
spec.add_development_dependency
|
37
|
-
spec.add_development_dependency "database_cleaner"
|
28
|
+
spec.add_development_dependency 'bundler', '~> 1.12'
|
29
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
30
|
+
spec.add_development_dependency 'rspec'
|
31
|
+
spec.add_development_dependency 'rspec-mocks'
|
32
|
+
spec.add_development_dependency 'simplecov'
|
33
|
+
spec.add_development_dependency 'with_model'
|
34
|
+
spec.add_development_dependency 'byebug'
|
35
|
+
spec.add_development_dependency 'sqlite3'
|
36
|
+
spec.add_development_dependency 'database_cleaner'
|
38
37
|
end
|
data/lib/kms_rails/core.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'base64'
|
2
2
|
require 'openssl'
|
3
3
|
require 'msgpack'
|
4
|
-
require 'aws-sdk'
|
4
|
+
require 'aws-sdk-kms'
|
5
5
|
require 'kms_rails/configuration'
|
6
6
|
|
7
7
|
module KmsRails
|
@@ -41,15 +41,15 @@ module KmsRails
|
|
41
41
|
return nil if data_obj.nil?
|
42
42
|
|
43
43
|
decrypted = decrypt_attr(
|
44
|
-
data_obj['blob'],
|
44
|
+
data_obj['blob'],
|
45
45
|
aws_decrypt_key(data_obj['key']),
|
46
46
|
data_obj['iv']
|
47
47
|
)
|
48
|
-
|
48
|
+
|
49
49
|
decrypted = MessagePack.unpack(decrypted) if @msgpack
|
50
50
|
decrypted
|
51
51
|
end
|
52
|
-
|
52
|
+
|
53
53
|
def decrypt64(data_obj)
|
54
54
|
return nil if data_obj.nil?
|
55
55
|
decrypt( self.class.from64(data_obj) )
|
@@ -61,7 +61,7 @@ module KmsRails
|
|
61
61
|
@base_key_id.call
|
62
62
|
when String
|
63
63
|
if @base_key_id =~ /\A\w{8}-\w{4}-\w{4}-\w{4}-\w{12}\z/ || @base_key_id.start_with?('alias/') # if UUID or direct alias
|
64
|
-
@base_key_id
|
64
|
+
@base_key_id
|
65
65
|
else
|
66
66
|
'alias/' + KmsRails.configuration.alias_prefix + @base_key_id
|
67
67
|
end
|
@@ -85,7 +85,7 @@ module KmsRails
|
|
85
85
|
data_obj.map { |k,v| [k, Base64.strict_decode64(v)] }.to_h
|
86
86
|
end
|
87
87
|
|
88
|
-
private
|
88
|
+
private
|
89
89
|
|
90
90
|
def apply_context(args, key, value)
|
91
91
|
if key && value
|
data/lib/kms_rails/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kms_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ash Tyndall
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-
|
12
|
+
date: 2018-05-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
@@ -40,19 +40,19 @@ dependencies:
|
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '4'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
|
-
name: aws-sdk
|
43
|
+
name: aws-sdk-kms
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
46
|
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: '
|
48
|
+
version: '1'
|
49
49
|
type: :runtime
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
53
|
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: '
|
55
|
+
version: '1'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: msgpack
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -137,20 +137,6 @@ dependencies:
|
|
137
137
|
- - ">="
|
138
138
|
- !ruby/object:Gem::Version
|
139
139
|
version: '0'
|
140
|
-
- !ruby/object:Gem::Dependency
|
141
|
-
name: codeclimate-test-reporter
|
142
|
-
requirement: !ruby/object:Gem::Requirement
|
143
|
-
requirements:
|
144
|
-
- - ">="
|
145
|
-
- !ruby/object:Gem::Version
|
146
|
-
version: '0'
|
147
|
-
type: :development
|
148
|
-
prerelease: false
|
149
|
-
version_requirements: !ruby/object:Gem::Requirement
|
150
|
-
requirements:
|
151
|
-
- - ">="
|
152
|
-
- !ruby/object:Gem::Version
|
153
|
-
version: '0'
|
154
140
|
- !ruby/object:Gem::Dependency
|
155
141
|
name: with_model
|
156
142
|
requirement: !ruby/object:Gem::Requirement
|