Commit 4c7665f2 authored by Grzegorz Bizon's avatar Grzegorz Bizon

Pad encryption keys with UTF-8 0 instead of \0 char

parent b7f35e89
...@@ -28,7 +28,7 @@ module Gitlab ...@@ -28,7 +28,7 @@ module Gitlab
end end
end end
truncated + ("\0" * (bytes - truncated.bytesize)) truncated + ('0' * (bytes - truncated.bytesize))
end end
# Append path to host, making sure there's one single / in between # Append path to host, making sure there's one single / in between
......
...@@ -24,7 +24,7 @@ describe Settings do ...@@ -24,7 +24,7 @@ describe Settings do
it 'expands db key base secret to 12 bytes' do it 'expands db key base secret to 12 bytes' do
expect(described_class.attr_encrypted_db_key_base_12) expect(described_class.attr_encrypted_db_key_base_12)
.to eq(('a' * 10) + ("\0" * 2)) .to eq(('a' * 10) + ('0' * 2))
end end
end end
...@@ -53,7 +53,7 @@ describe Settings do ...@@ -53,7 +53,7 @@ describe Settings do
end end
it 'expands db key base secret to 32 bytes' do it 'expands db key base secret to 32 bytes' do
expanded_key_base = ('a' * 10) + ("\0" * 22) expanded_key_base = ('a' * 10) + ('0' * 22)
expect(expanded_key_base.bytesize).to eq 32 expect(expanded_key_base.bytesize).to eq 32
expect(described_class.attr_encrypted_db_key_base_32) expect(described_class.attr_encrypted_db_key_base_32)
...@@ -84,7 +84,7 @@ describe Settings do ...@@ -84,7 +84,7 @@ describe Settings do
it 'does not use more than 32 bytes' do it 'does not use more than 32 bytes' do
db_key_base = described_class.attr_encrypted_db_key_base_32 db_key_base = described_class.attr_encrypted_db_key_base_32
expect(db_key_base).to eq '❤❤❤❤❤❤' + ("\0" * 14) expect(db_key_base).to eq '❤❤❤❤❤❤' + ('0' * 14)
expect(db_key_base.bytesize).to eq 32 expect(db_key_base.bytesize).to eq 32
end end
end end
...@@ -99,7 +99,7 @@ describe Settings do ...@@ -99,7 +99,7 @@ describe Settings do
it 'does not use more than 32 bytes' do it 'does not use more than 32 bytes' do
db_key_base = described_class.attr_encrypted_db_key_base_32 db_key_base = described_class.attr_encrypted_db_key_base_32
expect(db_key_base).to eq(('❤' * 10) + ("\0" * 2)) expect(db_key_base).to eq(('❤' * 10) + ('0' * 2))
expect(db_key_base.bytesize).to eq 32 expect(db_key_base.bytesize).to eq 32
end end
end end
......
...@@ -134,7 +134,7 @@ describe Gitlab::Utils do ...@@ -134,7 +134,7 @@ describe Gitlab::Utils do
transformed = described_class.ensure_utf8_size('a' * 10, bytes: 32) transformed = described_class.ensure_utf8_size('a' * 10, bytes: 32)
expect(transformed.bytesize).to eq 32 expect(transformed.bytesize).to eq 32
expect(transformed).to eq(('a' * 10) + ("\0" * 22)) expect(transformed).to eq(('a' * 10) + ('0' * 22))
end end
end end
...@@ -151,7 +151,7 @@ describe Gitlab::Utils do ...@@ -151,7 +151,7 @@ describe Gitlab::Utils do
it 'backfills string with null characters' do it 'backfills string with null characters' do
transformed = described_class.ensure_utf8_size('❤' * 6, bytes: 32) transformed = described_class.ensure_utf8_size('❤' * 6, bytes: 32)
expect(transformed).to eq '❤❤❤❤❤❤' + ("\0" * 14) expect(transformed).to eq '❤❤❤❤❤❤' + ('0' * 14)
expect(transformed.bytesize).to eq 32 expect(transformed.bytesize).to eq 32
end end
end end
...@@ -160,7 +160,7 @@ describe Gitlab::Utils do ...@@ -160,7 +160,7 @@ describe Gitlab::Utils do
it 'truncates string to 32 characters and backfills it if needed' do it 'truncates string to 32 characters and backfills it if needed' do
transformed = described_class.ensure_utf8_size('❤' * 18, bytes: 32) transformed = described_class.ensure_utf8_size('❤' * 18, bytes: 32)
expect(transformed).to eq(('❤' * 10) + ("\0" * 2)) expect(transformed).to eq(('❤' * 10) + ('0' * 2))
expect(transformed.bytesize).to eq 32 expect(transformed.bytesize).to eq 32
end end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment