symmetric-encryption 4.0.1 → 4.1.0.beta1
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/README.md +0 -7
- data/lib/symmetric_encryption.rb +1 -1
- data/lib/symmetric_encryption/cipher.rb +2 -2
- data/lib/symmetric_encryption/cli.rb +27 -23
- data/lib/symmetric_encryption/key.rb +0 -62
- data/lib/symmetric_encryption/keystore.rb +143 -27
- data/lib/symmetric_encryption/keystore/aws.rb +172 -0
- data/lib/symmetric_encryption/keystore/environment.rb +5 -29
- data/lib/symmetric_encryption/keystore/file.rb +7 -29
- data/lib/symmetric_encryption/keystore/heroku.rb +22 -0
- data/lib/symmetric_encryption/keystore/memory.rb +3 -2
- data/lib/symmetric_encryption/railtie.rb +2 -2
- data/lib/symmetric_encryption/utils/aws.rb +139 -0
- data/lib/symmetric_encryption/utils/re_encrypt_files.rb +10 -3
- data/lib/symmetric_encryption/version.rb +1 -1
- data/test/key_test.rb +0 -157
- data/test/keystore/aws_test.rb +133 -0
- data/test/keystore/environment_test.rb +3 -51
- data/test/keystore/file_test.rb +13 -52
- data/test/keystore/heroku_test.rb +70 -0
- data/test/keystore_test.rb +199 -3
- data/test/test_db.sqlite3 +0 -0
- data/test/test_helper.rb +1 -0
- data/test/utils/aws_test.rb +75 -0
- metadata +13 -4
data/test/test_db.sqlite3
CHANGED
Binary file
|
data/test/test_helper.rb
CHANGED
@@ -6,6 +6,7 @@ require 'minitest/stub_any_instance'
|
|
6
6
|
require 'awesome_print'
|
7
7
|
require 'active_record'
|
8
8
|
require 'symmetric-encryption'
|
9
|
+
require 'fileutils'
|
9
10
|
|
10
11
|
# Load Symmetric Encryption keys
|
11
12
|
SymmetricEncryption.load!(File.join(File.dirname(__FILE__), 'config', 'symmetric-encryption.yml'), 'test')
|
@@ -0,0 +1,75 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
require 'stringio'
|
3
|
+
|
4
|
+
module SymmetricEncryption
|
5
|
+
module Utils
|
6
|
+
class AwsTest < Minitest::Test
|
7
|
+
describe SymmetricEncryption::Utils::Aws do
|
8
|
+
before do
|
9
|
+
unless (ENV['AWS_ACCESS_KEY_ID'] && ENV['AWS_SECRET_ACCESS_KEY']) || ENV['AWS_CONFIG_FILE']
|
10
|
+
# For example: export AWS_CONFIG_FILE=~/.aws/credentials
|
11
|
+
skip 'Set AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY, or AWS_CONFIG_FILE to run AWS KMS tests'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
let :region do
|
16
|
+
'us-east-1'
|
17
|
+
end
|
18
|
+
|
19
|
+
let :master_key_alias do
|
20
|
+
'alias/symmetric-encryption/test'
|
21
|
+
end
|
22
|
+
|
23
|
+
let :aws do
|
24
|
+
SymmetricEncryption::Utils::Aws.new(region: region, master_key_alias: master_key_alias)
|
25
|
+
end
|
26
|
+
|
27
|
+
describe '#key_spec' do
|
28
|
+
it 'converts aes-256-cbc' do
|
29
|
+
assert_equal 'AES_256', aws.key_spec('aes-256-cbc')
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'converts aes-128-cbc' do
|
33
|
+
assert_equal 'AES_128', aws.key_spec('aes-128-cbc')
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe '#create_master_key' do
|
38
|
+
it 'creates a new master key' do
|
39
|
+
skip "Only run if really needed, gets tested once as part of the CMK auto-create"
|
40
|
+
aws.delete_master_key(retention_days: 7)
|
41
|
+
aws.create_master_key
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
describe '#generate_data_key' do
|
46
|
+
it 'creates a new data key' do
|
47
|
+
assert aws.generate_data_key('aes-128-cbc')
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe '#generate_encrypted_data_key' do
|
52
|
+
it 'creates a new data key' do
|
53
|
+
assert aws.generate_encrypted_data_key('aes-128-cbc')
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
describe '#encrypt' do
|
58
|
+
it 'encrypts a block of data' do
|
59
|
+
assert aws.encrypt('hello')
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
describe '#decrypt' do
|
64
|
+
it 'decrypts a previously encrypted block of data' do
|
65
|
+
message = 'hello world this is a top secret message'
|
66
|
+
encrypted = aws.encrypt(message)
|
67
|
+
decrypted = aws.decrypt(encrypted)
|
68
|
+
assert_equal message, decrypted
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: symmetric-encryption
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.
|
4
|
+
version: 4.1.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Reid Morrison
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-07-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: coercible
|
@@ -51,14 +51,17 @@ files:
|
|
51
51
|
- lib/symmetric_encryption/header.rb
|
52
52
|
- lib/symmetric_encryption/key.rb
|
53
53
|
- lib/symmetric_encryption/keystore.rb
|
54
|
+
- lib/symmetric_encryption/keystore/aws.rb
|
54
55
|
- lib/symmetric_encryption/keystore/environment.rb
|
55
56
|
- lib/symmetric_encryption/keystore/file.rb
|
57
|
+
- lib/symmetric_encryption/keystore/heroku.rb
|
56
58
|
- lib/symmetric_encryption/keystore/memory.rb
|
57
59
|
- lib/symmetric_encryption/railtie.rb
|
58
60
|
- lib/symmetric_encryption/railties/symmetric_encryption_validator.rb
|
59
61
|
- lib/symmetric_encryption/reader.rb
|
60
62
|
- lib/symmetric_encryption/rsa_key.rb
|
61
63
|
- lib/symmetric_encryption/symmetric_encryption.rb
|
64
|
+
- lib/symmetric_encryption/utils/aws.rb
|
62
65
|
- lib/symmetric_encryption/utils/re_encrypt_files.rb
|
63
66
|
- lib/symmetric_encryption/version.rb
|
64
67
|
- lib/symmetric_encryption/writer.rb
|
@@ -76,14 +79,17 @@ files:
|
|
76
79
|
- test/encoder_test.rb
|
77
80
|
- test/header_test.rb
|
78
81
|
- test/key_test.rb
|
82
|
+
- test/keystore/aws_test.rb
|
79
83
|
- test/keystore/environment_test.rb
|
80
84
|
- test/keystore/file_test.rb
|
85
|
+
- test/keystore/heroku_test.rb
|
81
86
|
- test/keystore_test.rb
|
82
87
|
- test/mongoid_test.rb
|
83
88
|
- test/reader_test.rb
|
84
89
|
- test/symmetric_encryption_test.rb
|
85
90
|
- test/test_db.sqlite3
|
86
91
|
- test/test_helper.rb
|
92
|
+
- test/utils/aws_test.rb
|
87
93
|
- test/writer_test.rb
|
88
94
|
homepage: http://rocketjob.github.io/symmetric-encryption/
|
89
95
|
licenses:
|
@@ -100,9 +106,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
100
106
|
version: '2.3'
|
101
107
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
102
108
|
requirements:
|
103
|
-
- - "
|
109
|
+
- - ">"
|
104
110
|
- !ruby/object:Gem::Version
|
105
|
-
version:
|
111
|
+
version: 1.3.1
|
106
112
|
requirements: []
|
107
113
|
rubyforge_project:
|
108
114
|
rubygems_version: 2.7.6
|
@@ -113,6 +119,8 @@ summary: Encrypt ActiveRecord and Mongoid attributes, files and passwords in con
|
|
113
119
|
test_files:
|
114
120
|
- test/keystore/environment_test.rb
|
115
121
|
- test/keystore/file_test.rb
|
122
|
+
- test/keystore/heroku_test.rb
|
123
|
+
- test/keystore/aws_test.rb
|
116
124
|
- test/symmetric_encryption_test.rb
|
117
125
|
- test/config/test_secondary_1.key
|
118
126
|
- test/config/mongoid.yml
|
@@ -129,6 +137,7 @@ test_files:
|
|
129
137
|
- test/keystore_test.rb
|
130
138
|
- test/reader_test.rb
|
131
139
|
- test/encoder_test.rb
|
140
|
+
- test/utils/aws_test.rb
|
132
141
|
- test/key_test.rb
|
133
142
|
- test/header_test.rb
|
134
143
|
- test/test_helper.rb
|