diff options
author | Rémy Coutable <remy@rymai.me> | 2017-02-22 19:05:51 +0100 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2017-02-23 10:36:48 +0100 |
commit | c16228b5f217ead1ad9c2b6a4b3c1c9aa2e6e7e9 (patch) | |
tree | 30bfe880d22d522f44dc06e353f09f2ac26c2ad7 | |
parent | ad0aa1acfb1f0851f2a1bbdfe2fae32934647e39 (diff) | |
download | gitlab-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.rb | 4 | ||||
-rw-r--r-- | spec/lib/gitlab/ssh_public_key_spec.rb | 24 | ||||
-rw-r--r-- | spec/models/key_spec.rb | 14 |
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 |