symmetric-encryption 3.9.0 → 3.9.1
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
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
|