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.
Binary file
@@ -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.1
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-05-03 00:00:00.000000000 Z
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: '0'
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