diff options
| author | Miklos Fazekas <mfazekas@szemafor.com> | 2016-03-12 11:26:30 +0100 |
|---|---|---|
| committer | Miklos Fazekas <mfazekas@szemafor.com> | 2016-03-12 11:26:30 +0100 |
| commit | 9cb42dd921bef57de15c5078289d430276037953 (patch) | |
| tree | 66c908056bd22f9ea78c69a4ac58b7e8469a8bf2 | |
| parent | 97a3d4c2ee683848c397a579c3258bf179e77cc1 (diff) | |
| download | net-ssh-9cb42dd921bef57de15c5078289d430276037953.tar.gz | |
Added test to reproduce issue with known hosts see #327
| -rw-r--r-- | CHANGES.txt | 4 | ||||
| -rw-r--r-- | test/verifiers/test_secure.rb | 40 |
2 files changed, 44 insertions, 0 deletions
diff --git a/CHANGES.txt b/CHANGES.txt index a985ff0..0a508d7 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,7 @@ +=== 3.1.0.rc1 + +* fix Secure#verify [Jean Boussier] + === 3.1.0.beta3 * forward/on_open_failed should stop listning closed socket otherwise it locks #269 [Miklos Fazekas,Scott McGillivray] diff --git a/test/verifiers/test_secure.rb b/test/verifiers/test_secure.rb new file mode 100644 index 0000000..37e5d23 --- /dev/null +++ b/test/verifiers/test_secure.rb @@ -0,0 +1,40 @@ +require 'common' +require 'net/ssh/verifiers/secure' +require 'ostruct' + +class TestSecure < Test::Unit::TestCase + def test_raises_unknown_key_error_if_empty + secure_verifier = Net::SSH::Verifiers::Secure.new + host_keys = [] + def host_keys.host + 'foo' + end + assert_raises(Net::SSH::HostKeyUnknown) { + secure_verifier.verify(session:OpenStruct.new(host_keys:host_keys)) + } + end + + def test_passess_if_sam + secure_verifier = Net::SSH::Verifiers::Secure.new + key = OpenStruct.new(ssh_type:'key_type',to_blob:'keyblob') + host_keys = [key] + def host_keys.host + 'foo' + end + secure_verifier.verify(session:OpenStruct.new(host_keys:host_keys), key:key) + end + + def test_raises_mismatch_error_if_not_the_same + secure_verifier = Net::SSH::Verifiers::Secure.new + key_in_known_hosts = OpenStruct.new(ssh_type:'key_type',to_blob:'keyblob') + key_actual = OpenStruct.new(ssh_type:'key_type',to_blob:'not keyblob') + + host_keys = [key_in_known_hosts] + def host_keys.host + 'foo' + end + assert_raises(Net::SSH::HostKeyMismatch) { + secure_verifier.verify(session:OpenStruct.new(host_keys:host_keys), key:key_actual) + } + end +end
\ No newline at end of file |
