symmetric-encryption 3.9.0 → 3.9.1
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4569a98f50aa6df040149ea4252b66b1717f1e5c
|
4
|
+
data.tar.gz: afd1ca34b01b8deae7ac11658207b757873927e8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab76aa43eeb67a5f58fd31b0e3dd715e0474b241c4e371a82cfe0bbb4ece9b65d253c3856df9054472432c75b552bd5609aec65c2262995c2d15c7c689dd40c9
|
7
|
+
data.tar.gz: 583f8cbb6e7741e11a7354550968f8c109c541ddda4ce58a120b10071d276ea3f3fec488f140a1de6198b104a0b2e812aa8ac348a8950258b5f84d77f0c7c5c3
|
@@ -217,7 +217,7 @@ module SymmetricEncryption
|
|
217
217
|
def initialize(params={})
|
218
218
|
params = params.dup
|
219
219
|
@cipher_name = params.delete(:cipher_name) || params.delete(:cipher) || 'aes-256-cbc'
|
220
|
-
@version = params.delete(:version)
|
220
|
+
@version = params.delete(:version) || 0
|
221
221
|
@always_add_header = params.delete(:always_add_header) || false
|
222
222
|
self.encoding = (params.delete(:encoding) || :base64).to_sym
|
223
223
|
private_rsa_key = params.delete(:private_rsa_key)
|
@@ -461,10 +461,9 @@ module SymmetricEncryption
|
|
461
461
|
# The cipher_name string to to put in the header
|
462
462
|
# Default: nil : Exclude cipher_name name from header
|
463
463
|
def self.build_header(version, compressed=false, iv=nil, key=nil, cipher_name=nil)
|
464
|
-
|
464
|
+
version ||= SymmetricEncryption.cipher.version
|
465
465
|
|
466
|
-
|
467
|
-
flags = iv || key ? (SymmetricEncryption.cipher.version || 0) : (version || 0) # Same as 0b0000_0000_0000_0000
|
466
|
+
flags = version # Same as 0b0000_0000_0000_0000
|
468
467
|
|
469
468
|
# If the data is to be compressed before being encrypted, set the
|
470
469
|
# compressed bit in the flags word
|
@@ -478,7 +477,7 @@ module SymmetricEncryption
|
|
478
477
|
header << iv
|
479
478
|
end
|
480
479
|
if key
|
481
|
-
encrypted = SymmetricEncryption.cipher.binary_encrypt(key, false, false, false)
|
480
|
+
encrypted = SymmetricEncryption.cipher(version).binary_encrypt(key, false, false, false)
|
482
481
|
header << [encrypted.length].pack('v').force_encoding(SymmetricEncryption::BINARY_ENCODING)
|
483
482
|
header << encrypted
|
484
483
|
end
|
@@ -46,6 +46,15 @@ test:
|
|
46
46
|
version: 2
|
47
47
|
always_add_header: true
|
48
48
|
|
49
|
+
# For testing a higher version that is not active yet
|
50
|
+
-
|
51
|
+
key: 6BCDEF1234567890ABCDEF1234567890
|
52
|
+
iv: 6BCDEF1234567890
|
53
|
+
cipher_name: aes-256-cbc
|
54
|
+
version: 6
|
55
|
+
encoding: :base64strict
|
56
|
+
always_add_header: true
|
57
|
+
|
49
58
|
# Prior Symmetric Encryption Key specified in environment variable
|
50
59
|
-
|
51
60
|
# Encryption Key
|
@@ -9,7 +9,7 @@ class SymmetricEncryptionTest < Minitest::Test
|
|
9
9
|
before do
|
10
10
|
config = SymmetricEncryption::Config.read_config(File.join(File.dirname(__FILE__), 'config', 'symmetric-encryption.yml'), 'test')
|
11
11
|
@ciphers = SymmetricEncryption::Config.extract_ciphers(config)
|
12
|
-
@cipher_v2, @cipher_v1, @cipher_v0 = @ciphers
|
12
|
+
@cipher_v2, @cipher_v6, @cipher_v1, @cipher_v0 = @ciphers
|
13
13
|
end
|
14
14
|
|
15
15
|
it 'matches config file for first cipher' do
|
@@ -160,6 +160,13 @@ class SymmetricEncryptionTest < Minitest::Test
|
|
160
160
|
assert_equal @social_security_number, SymmetricEncryption.decrypt(encrypted)
|
161
161
|
end
|
162
162
|
|
163
|
+
it 'encrypt and then decrypt using random iv with higher version' do
|
164
|
+
# Encrypt with random iv
|
165
|
+
assert encrypted = SymmetricEncryption.cipher(6).encrypt(@social_security_number, true)
|
166
|
+
assert_equal true, SymmetricEncryption.encrypted?(encrypted)
|
167
|
+
assert_equal @social_security_number, SymmetricEncryption.decrypt(encrypted)
|
168
|
+
end
|
169
|
+
|
163
170
|
it 'encrypt and then decrypt using random iv with compression' do
|
164
171
|
# Encrypt with random iv and compress
|
165
172
|
assert encrypted = SymmetricEncryption.encrypt(@social_security_number, true, true)
|
data/test/test_db.sqlite3
CHANGED
Binary file
|
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.9.
|
4
|
+
version: 3.9.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Reid Morrison
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-05-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: coercible
|