summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2017-02-22 19:05:51 +0100
committerRémy Coutable <remy@rymai.me>2017-02-23 10:36:48 +0100
commitc16228b5f217ead1ad9c2b6a4b3c1c9aa2e6e7e9 (patch)
tree30bfe880d22d522f44dc06e353f09f2ac26c2ad7
parentad0aa1acfb1f0851f2a1bbdfe2fae32934647e39 (diff)
downloadgitlab-ce-c16228b5f217ead1ad9c2b6a4b3c1c9aa2e6e7e9.tar.gz
Rename the ECDSA factory name to be more explicit
Signed-off-by: Rémy Coutable <remy@rymai.me>
-rw-r--r--spec/factories/keys.rb4
-rw-r--r--spec/lib/gitlab/ssh_public_key_spec.rb24
-rw-r--r--spec/models/key_spec.rb14
3 files changed, 30 insertions, 12 deletions
diff --git a/spec/factories/keys.rb b/spec/factories/keys.rb
index c8ceca9fea9..8352dff4797 100644
--- a/spec/factories/keys.rb
+++ b/spec/factories/keys.rb
@@ -24,9 +24,9 @@ FactoryGirl.define do
end
end
- factory :ecdsa_key do
+ factory :ecdsa_key_256 do
key do
- "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAYicnuE46DT02Z6o9X/NqmlYG4Sp8loMVftDoGNibWFGj4sQ05py10GVEEZS0rRiOeSJj2Q7chSHklSOuLeUxY= dummy@gitlab.com"
+ "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJZmkzTgY0fiCQ+DVReyH/fFwTFz0XoR3RUO0u+199H19KFw7mNPxRSMOVS7tEtONj3Q7FcZXfqthHvgAzDiHsc= dummy@gitlab.com"
end
end
diff --git a/spec/lib/gitlab/ssh_public_key_spec.rb b/spec/lib/gitlab/ssh_public_key_spec.rb
index c5d722c870e..cd55102f4a4 100644
--- a/spec/lib/gitlab/ssh_public_key_spec.rb
+++ b/spec/lib/gitlab/ssh_public_key_spec.rb
@@ -54,7 +54,7 @@ describe Gitlab::SSHPublicKey, lib: true do
end
context 'with a ECDSA key' do
- let(:key) { attributes_for(:ecdsa_key)[:key] }
+ let(:key) { attributes_for(:ecdsa_key_256)[:key] }
it 'determines the key type' do
expect(public_key.type).to eq(:ecdsa)
@@ -77,8 +77,26 @@ describe Gitlab::SSHPublicKey, lib: true do
end
describe '#size' do
- it 'determines the key length in bits' do
- expect(public_key.size).to eq(1024)
+ context 'for a RSA key' do
+ it 'determines the key length in bits' do
+ expect(public_key.size).to eq(2048)
+ end
+ end
+
+ context 'for a ECDSA key' do
+ let(:key) { attributes_for(:ecdsa_key_256)[:key] }
+
+ it 'determines the curve size (in bits)' do
+ expect(public_key.size).to eq(257)
+ end
+ end
+
+ context 'for a DSA key' do
+ let(:key) { attributes_for(:dsa_key_2048)[:key] }
+
+ it 'determines the key length in bits' do
+ expect(public_key.size).to eq(2048)
+ end
end
context 'with an invalid SSH key' do
diff --git a/spec/models/key_spec.rb b/spec/models/key_spec.rb
index c45ce4e6780..a2f6c64b413 100644
--- a/spec/models/key_spec.rb
+++ b/spec/models/key_spec.rb
@@ -19,8 +19,8 @@ describe Key, models: true do
it { is_expected.to validate_presence_of(:key) }
it { is_expected.to validate_length_of(:key).is_at_most(5000) }
- it { is_expected.to allow_value(attributes_for(:ecdsa_key)[:key]).for(:key) }
it { is_expected.to allow_value(attributes_for(:dsa_key_2048)[:key]).for(:key) }
+ it { is_expected.to allow_value(attributes_for(:ecdsa_key_256)[:key]).for(:key) }
it { is_expected.to allow_value(attributes_for(:rsa_key_2048)[:key]).for(:key) }
it { is_expected.not_to allow_value('foo-bar').for(:key) }
it { is_expected.not_to allow_value("#{attributes_for(:dsa_key_2048)[:key]}\nfoo").for(:key) }
@@ -127,45 +127,45 @@ describe Key, models: true do
end
it 'accepts an ECDSA key above the minimum bit length' do
- expect(build(:ecdsa_key)).to be_valid
+ expect(build(:ecdsa_key_256)).to be_valid
end
it 'rejects an ECDSA key below minimum bit length' do
stub_application_setting(minimum_ecdsa_bits: 384)
- expect(build(:ecdsa_key)).not_to be_valid
+ expect(build(:ecdsa_key_256)).not_to be_valid
end
end
context 'validate the key type is allowed' do
it 'accepts RSA, ECDSA, and DSA keys by default' do
expect(build(:key)).to be_valid
- expect(build(:ecdsa_key)).to be_valid
expect(build(:dsa_key_2048)).to be_valid
+ expect(build(:ecdsa_key_256)).to be_valid
end
it 'rejects RSA and ECDSA key if DSA is the only allowed type' do
stub_application_setting(allowed_key_types: ['dsa'])
expect(build(:key)).not_to be_valid
- expect(build(:ecdsa_key)).not_to be_valid
expect(build(:dsa_key_2048)).to be_valid
+ expect(build(:ecdsa_key_256)).not_to be_valid
end
it 'rejects RSA and DSA key if ECDSA is the only allowed type' do
stub_application_setting(allowed_key_types: ['ecdsa'])
expect(build(:key)).not_to be_valid
- expect(build(:ecdsa_key)).to be_valid
expect(build(:dsa_key_2048)).not_to be_valid
+ expect(build(:ecdsa_key_256)).to be_valid
end
it 'rejects DSA and ECDSA key if RSA is the only allowed type' do
stub_application_setting(allowed_key_types: ['rsa'])
expect(build(:key)).to be_valid
- expect(build(:ecdsa_key)).not_to be_valid
expect(build(:dsa_key_2048)).not_to be_valid
+ expect(build(:ecdsa_key_256)).not_to be_valid
end
end