summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Fazekas <mfazekas@szemafor.com>2016-03-12 11:26:30 +0100
committerMiklos Fazekas <mfazekas@szemafor.com>2016-03-12 11:26:30 +0100
commit9cb42dd921bef57de15c5078289d430276037953 (patch)
tree66c908056bd22f9ea78c69a4ac58b7e8469a8bf2
parent97a3d4c2ee683848c397a579c3258bf179e77cc1 (diff)
downloadnet-ssh-9cb42dd921bef57de15c5078289d430276037953.tar.gz
Added test to reproduce issue with known hosts see #327
-rw-r--r--CHANGES.txt4
-rw-r--r--test/verifiers/test_secure.rb40
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