symmetric-encryption 3.6.0 → 3.7.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/README.md +8 -649
- data/lib/_test_empty +0 -0
- data/lib/symmetric_encryption/cipher.rb +13 -13
- data/lib/symmetric_encryption/exception.rb +15 -0
- data/lib/symmetric_encryption/extensions/mongo_mapper/plugins/encrypted_key.rb +1 -1
- data/lib/symmetric_encryption/extensions/mongoid/encrypted.rb +1 -1
- data/lib/symmetric_encryption/generator.rb +23 -31
- data/lib/symmetric_encryption/railties/symmetric_encryption.rake +1 -1
- data/lib/symmetric_encryption/reader.rb +7 -5
- data/lib/symmetric_encryption/symmetric_encryption.rb +14 -14
- data/lib/symmetric_encryption/version.rb +1 -1
- data/lib/symmetric_encryption/writer.rb +4 -4
- data/lib/symmetric_encryption.rb +1 -0
- data/test/active_record_test.rb +12 -9
- data/test/cipher_test.rb +3 -3
- data/test/mongo_mapper_test.rb +445 -442
- data/test/mongoid_test.rb +11 -4
- data/test/reader_test.rb +16 -10
- data/test/symmetric_encryption_test.rb +15 -2
- data/test/test_db.sqlite3 +0 -0
- data/test/test_helper.rb +8 -6
- data/test/writer_test.rb +2 -2
- metadata +6 -4
data/test/mongoid_test.rb
CHANGED
@@ -1,5 +1,9 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
begin
|
2
|
+
require 'mongoid'
|
3
|
+
require_relative 'test_helper'
|
4
|
+
require_relative '../lib/symmetric_encryption/extensions/mongoid/encrypted'
|
5
|
+
ENV['RACK_ENV'] = 'test'
|
6
|
+
|
3
7
|
Mongoid.logger = SemanticLogger[Mongoid]
|
4
8
|
filename = defined?(Mongoid::VERSION) ? "test/config/mongoid_v3.yml" : "test/config/mongoid_v2.yml"
|
5
9
|
Mongoid.load!(filename)
|
@@ -14,7 +18,7 @@ if defined?(Mongoid)
|
|
14
18
|
field :encrypted_long_string, type: String, encrypted: {random_iv: true, compress: true}
|
15
19
|
|
16
20
|
field :encrypted_integer_value, type: String, encrypted: {type: :integer}
|
17
|
-
field :aiv, type: String, encrypted: {type: :integer,
|
21
|
+
field :aiv, type: String, encrypted: {type: :integer, decrypt_as: :aliased_integer_value}
|
18
22
|
field :encrypted_float_value, type: String, encrypted: {type: :float}
|
19
23
|
field :encrypted_decimal_value, type: String, encrypted: {type: :decimal}
|
20
24
|
field :encrypted_datetime_value, type: String, encrypted: {type: :datetime}
|
@@ -32,7 +36,7 @@ if defined?(Mongoid)
|
|
32
36
|
#
|
33
37
|
# Unit Tests for field encrypted and validation aspects of SymmetricEncryption
|
34
38
|
#
|
35
|
-
class MongoidTest < Test
|
39
|
+
class MongoidTest < Minitest::Test
|
36
40
|
context 'Mongoid' do
|
37
41
|
setup do
|
38
42
|
@bank_account_number = "1234567890"
|
@@ -532,4 +536,7 @@ if defined?(Mongoid)
|
|
532
536
|
|
533
537
|
end
|
534
538
|
end
|
539
|
+
|
540
|
+
rescue LoadError
|
541
|
+
puts "Not running Mongoid tests because mongoid gem is not installed!!!"
|
535
542
|
end
|
data/test/reader_test.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
|
1
|
+
require_relative 'test_helper'
|
2
2
|
require 'stringio'
|
3
3
|
|
4
4
|
# Unit Test for SymmetricEncrypted::ReaderStream
|
5
5
|
#
|
6
|
-
class ReaderTest < Test
|
6
|
+
class ReaderTest < Minitest::Test
|
7
7
|
context SymmetricEncryption::Reader do
|
8
8
|
setup do
|
9
9
|
@data = [
|
@@ -143,14 +143,14 @@ class ReaderTest < Test::Unit::TestCase
|
|
143
143
|
|
144
144
|
should ".empty?" do
|
145
145
|
assert_equal (@data_size==0), SymmetricEncryption::Reader.empty?(@filename)
|
146
|
-
|
146
|
+
assert_raises Errno::ENOENT do
|
147
147
|
SymmetricEncryption::Reader.empty?('missing_file')
|
148
148
|
end
|
149
149
|
end
|
150
150
|
|
151
151
|
should ".header_present?" do
|
152
152
|
assert_equal @header, SymmetricEncryption::Reader.header_present?(@filename)
|
153
|
-
|
153
|
+
assert_raises Errno::ENOENT do
|
154
154
|
SymmetricEncryption::Reader.header_present?('missing_file')
|
155
155
|
end
|
156
156
|
end
|
@@ -174,8 +174,6 @@ class ReaderTest < Test::Unit::TestCase
|
|
174
174
|
end
|
175
175
|
|
176
176
|
should "#read(size)" do
|
177
|
-
data = nil
|
178
|
-
eof = nil
|
179
177
|
file = SymmetricEncryption::Reader.open(@filename)
|
180
178
|
eof = file.eof?
|
181
179
|
data = file.read(4096)
|
@@ -205,15 +203,23 @@ class ReaderTest < Test::Unit::TestCase
|
|
205
203
|
end
|
206
204
|
|
207
205
|
should "#gets(nil,size)" do
|
208
|
-
data = nil
|
209
|
-
eof = nil
|
210
206
|
file = SymmetricEncryption::Reader.open(@filename)
|
211
207
|
eof = file.eof?
|
212
208
|
data = file.gets(nil,4096)
|
213
209
|
file.close
|
214
210
|
|
215
211
|
assert_equal @eof, eof
|
216
|
-
|
212
|
+
if @data_size > 0
|
213
|
+
assert_equal @data_str, data
|
214
|
+
else
|
215
|
+
# On JRuby Zlib::GzipReader.new(file) returns '' instead of nil
|
216
|
+
# on an empty file
|
217
|
+
if defined?(JRuby) && options[:compress] && (usecase == :empty)
|
218
|
+
assert_equal '', data
|
219
|
+
else
|
220
|
+
assert_equal nil, data
|
221
|
+
end
|
222
|
+
end
|
217
223
|
end
|
218
224
|
|
219
225
|
should "#gets(delim)" do
|
@@ -303,7 +309,7 @@ class ReaderTest < Test::Unit::TestCase
|
|
303
309
|
|
304
310
|
should "decrypt from file in a single read with different version" do
|
305
311
|
# Should fail since file was encrypted using version 0 key
|
306
|
-
|
312
|
+
assert_raises OpenSSL::Cipher::CipherError do
|
307
313
|
SymmetricEncryption::Reader.open(@filename, version: 2) {|file| file.read}
|
308
314
|
end
|
309
315
|
end
|
@@ -1,8 +1,8 @@
|
|
1
|
-
|
1
|
+
require_relative 'test_helper'
|
2
2
|
|
3
3
|
# Unit Test for SymmetricEncryption
|
4
4
|
#
|
5
|
-
class SymmetricEncryptionTest < Test
|
5
|
+
class SymmetricEncryptionTest < Minitest::Test
|
6
6
|
context 'SymmetricEncryption' do
|
7
7
|
|
8
8
|
context 'configuration' do
|
@@ -276,6 +276,19 @@ class SymmetricEncryptionTest < Test::Unit::TestCase
|
|
276
276
|
assert_equal @is_broken, SymmetricEncryption.decrypt(encrypted, version=nil, type=:boolean)
|
277
277
|
end
|
278
278
|
end
|
279
|
+
|
280
|
+
context "when yaml" do
|
281
|
+
setup do
|
282
|
+
@test = { :a => :b }
|
283
|
+
end
|
284
|
+
|
285
|
+
should "encrypt and decrypt a false value to and from a boolean" do
|
286
|
+
assert encrypted = SymmetricEncryption.encrypt(@test, random_iv=false, compress=false, type=:yaml)
|
287
|
+
assert_equal true, SymmetricEncryption.encrypted?(encrypted)
|
288
|
+
assert_equal @test, SymmetricEncryption.decrypt(encrypted, version=nil, type=:yaml)
|
289
|
+
end
|
290
|
+
end
|
291
|
+
|
279
292
|
end
|
280
293
|
end
|
281
294
|
|
data/test/test_db.sqlite3
CHANGED
Binary file
|
data/test/test_helper.rb
CHANGED
@@ -1,17 +1,19 @@
|
|
1
1
|
# Allow examples to be run in-place without requiring a gem install
|
2
2
|
$LOAD_PATH.unshift File.dirname(__FILE__) + '/../lib'
|
3
3
|
|
4
|
-
require '
|
4
|
+
require 'yaml'
|
5
|
+
require 'minitest/autorun'
|
6
|
+
require 'minitest/reporters'
|
7
|
+
require 'minitest/stub_any_instance'
|
8
|
+
require 'shoulda/context'
|
5
9
|
require 'semantic_logger'
|
6
|
-
require 'erb'
|
7
|
-
require 'test/unit'
|
8
10
|
# Since we want both the AR and Mongoid extensions loaded we need to require them first
|
9
11
|
require 'active_record'
|
10
12
|
require 'symmetric-encryption'
|
11
|
-
# Should redefines Proc#bind so must include after Rails
|
12
|
-
require 'shoulda'
|
13
13
|
|
14
|
-
|
14
|
+
Minitest::Reporters.use! Minitest::Reporters::SpecReporter.new
|
15
|
+
|
16
|
+
SemanticLogger.add_appender('test.log', &SemanticLogger::Appender::Base.colorized_formatter)
|
15
17
|
SemanticLogger.default_level = :trace
|
16
18
|
|
17
19
|
# Load Symmetric Encryption keys
|
data/test/writer_test.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
|
1
|
+
require_relative 'test_helper'
|
2
2
|
require 'stringio'
|
3
3
|
|
4
4
|
# Unit Test for Symmetric::EncryptedStream
|
5
5
|
#
|
6
|
-
class WriterTest < Test
|
6
|
+
class WriterTest < Minitest::Test
|
7
7
|
context SymmetricEncryption::Writer do
|
8
8
|
setup do
|
9
9
|
@data = [
|
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: 3.
|
4
|
+
version: 3.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Reid Morrison
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-04-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: coercible
|
@@ -37,6 +37,7 @@ files:
|
|
37
37
|
- README.md
|
38
38
|
- Rakefile
|
39
39
|
- examples/symmetric-encryption.yml
|
40
|
+
- lib/_test_empty
|
40
41
|
- lib/rails/generators/symmetric_encryption/config/config_generator.rb
|
41
42
|
- lib/rails/generators/symmetric_encryption/config/templates/symmetric-encryption.yml
|
42
43
|
- lib/rails/generators/symmetric_encryption/heroku_config/heroku_config_generator.rb
|
@@ -45,6 +46,7 @@ files:
|
|
45
46
|
- lib/symmetric-encryption.rb
|
46
47
|
- lib/symmetric_encryption.rb
|
47
48
|
- lib/symmetric_encryption/cipher.rb
|
49
|
+
- lib/symmetric_encryption/exception.rb
|
48
50
|
- lib/symmetric_encryption/extensions/active_record/base.rb
|
49
51
|
- lib/symmetric_encryption/extensions/mongo_mapper/plugins/encrypted_key.rb
|
50
52
|
- lib/symmetric_encryption/extensions/mongoid/encrypted.rb
|
@@ -87,7 +89,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
87
89
|
requirements:
|
88
90
|
- - ">="
|
89
91
|
- !ruby/object:Gem::Version
|
90
|
-
version:
|
92
|
+
version: 2.0.0
|
91
93
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
92
94
|
requirements:
|
93
95
|
- - ">="
|
@@ -95,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
95
97
|
version: '0'
|
96
98
|
requirements: []
|
97
99
|
rubyforge_project:
|
98
|
-
rubygems_version: 2.
|
100
|
+
rubygems_version: 2.4.6
|
99
101
|
signing_key:
|
100
102
|
specification_version: 4
|
101
103
|
summary: Symmetric Encryption for Ruby, and Ruby on Rails
|