net-ssh 2.5.1 → 2.5.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,8 @@
1
1
 
2
+ === 2.5.2 / 25 May 2012
3
+
4
+ * Fix for Net::SSH::KnownHosts::SUPPORTED_TYPE [Marco Sandrini]
5
+
2
6
  === 2.5.1 / 24 May 2012
3
7
 
4
8
  * Added missing file to manifest [Marco Sandrini]
@@ -0,0 +1,19 @@
1
+ Copyright © 2008 Jamis Buck
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
4
+ this software and associated documentation files (the ‘Software’), to deal in
5
+ the Software without restriction, including without limitation the rights to
6
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
7
+ of the Software, and to permit persons to whom the Software is furnished to do
8
+ so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in all
11
+ copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED ‘AS IS’, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ SOFTWARE.
data/Rakefile CHANGED
@@ -19,6 +19,7 @@ task :default => :package
19
19
  README = "README.rdoc"
20
20
  CHANGES = "CHANGELOG.rdoc"
21
21
  THANKS = 'THANKS.rdoc'
22
+ LICENSE = "LICENSE.rdoc"
22
23
 
23
24
  # Files and directories to be deleted when you run "rake clean"
24
25
  CLEAN.include [ 'pkg', '*.gem', '.config', 'doc']
@@ -81,6 +82,7 @@ Rake::RDocTask.new do |t|
81
82
  t.rdoc_files.include(README)
82
83
  t.rdoc_files.include(CHANGES)
83
84
  t.rdoc_files.include(THANKS)
85
+ t.rdoc_files.include(LICENSE)
84
86
  t.rdoc_files.include('lib/**/*.rb')
85
87
  end
86
88
 
@@ -10,16 +10,18 @@ module Net; module SSH
10
10
  # This is used internally by Net::SSH, and will never need to be used directly
11
11
  # by consumers of the library.
12
12
  class KnownHosts
13
- class <<self
14
13
 
15
- if defined?(OpenSSL::PKey::EC)
16
- SUPPORTED_TYPE = %w(ssh-rsa ssh-dss
17
- ecdsa-sha2-nistp256
18
- ecdsa-sha2-nistp384
19
- ecdsa-sha2-nistp521)
20
- else
21
- SUPPORTED_TYPE = %w(ssh-rsa ssh-dss)
22
- end
14
+ if defined?(OpenSSL::PKey::EC)
15
+ SUPPORTED_TYPE = %w(ssh-rsa ssh-dss
16
+ ecdsa-sha2-nistp256
17
+ ecdsa-sha2-nistp384
18
+ ecdsa-sha2-nistp521)
19
+ else
20
+ SUPPORTED_TYPE = %w(ssh-rsa ssh-dss)
21
+ end
22
+
23
+
24
+ class <<self
23
25
 
24
26
  # Searches all known host files (see KnownHosts.hostfiles) for all keys
25
27
  # of the given host. Returns an array of keys found.
@@ -51,7 +51,7 @@ module Net; module SSH
51
51
  MINOR = 5
52
52
 
53
53
  # The tiny component of this version of the Net::SSH library
54
- TINY = 1
54
+ TINY = 2
55
55
 
56
56
  # The current version of the Net::SSH library as a Version instance
57
57
  CURRENT = new(MAJOR, MINOR, TINY)
@@ -1,7 +1,7 @@
1
1
  @spec = Gem::Specification.new do |s|
2
2
  s.name = "net-ssh"
3
3
  s.rubyforge_project = 'net-ssh'
4
- s.version = "2.5.1"
4
+ s.version = "2.5.2"
5
5
  s.summary = "Net::SSH: a pure-Ruby implementation of the SSH2 client protocol."
6
6
  s.description = s.summary + " It allows you to write programs that invoke and interact with processes on remote servers, via SSH2."
7
7
  s.authors = ["Jamis Buck", "Delano Mandelbaum"]
@@ -14,10 +14,12 @@
14
14
  s.require_paths = %w[lib]
15
15
  s.rubygems_version = '1.3.2'
16
16
 
17
- # This has two flavours with java one actually doing something and other
18
- # one just raising error. This is a workaround for no ability to specify
19
- # platform specific dependencies in gemspecs.
20
- s.add_dependency 'jruby-pageant', ">=1.0.2"
17
+ if RUBY_PLATFORM == "java"
18
+ # This has two flavours with java one actually doing something and other
19
+ # one just raising error. This is a workaround for no ability to specify
20
+ # platform specific dependencies in gemspecs.
21
+ s.add_dependency 'jruby-pageant', ">=1.0.2"
22
+ end
21
23
 
22
24
  s.executables = %w[]
23
25
 
@@ -26,11 +28,14 @@
26
28
  CHANGELOG.rdoc
27
29
  Manifest
28
30
  README.rdoc
31
+ LICENSE.rdoc
29
32
  Rakefile
30
33
  Rudyfile
31
34
  THANKS.rdoc
32
35
  lib/net/ssh.rb
33
36
  lib/net/ssh/authentication/agent.rb
37
+ lib/net/ssh/authentication/agent/java_pageant.rb
38
+ lib/net/ssh/authentication/agent/socket.rb
34
39
  lib/net/ssh/authentication/constants.rb
35
40
  lib/net/ssh/authentication/key_manager.rb
36
41
  lib/net/ssh/authentication/methods/abstract.rb
@@ -40,8 +45,6 @@
40
45
  lib/net/ssh/authentication/methods/publickey.rb
41
46
  lib/net/ssh/authentication/pageant.rb
42
47
  lib/net/ssh/authentication/session.rb
43
- lib/net/ssh/authentication/agent/java_pageant.rb
44
- lib/net/ssh/authentication/agent/socket.rb
45
48
  lib/net/ssh/buffer.rb
46
49
  lib/net/ssh/buffered_io.rb
47
50
  lib/net/ssh/config.rb
@@ -88,15 +91,15 @@
88
91
  lib/net/ssh/transport/hmac/sha2_512.rb
89
92
  lib/net/ssh/transport/hmac/sha2_512_96.rb
90
93
  lib/net/ssh/transport/identity_cipher.rb
91
- lib/net/ssh/transport/key_expander.rb
92
94
  lib/net/ssh/transport/kex.rb
93
- lib/net/ssh/transport/kex/diffie_hellman_group1_sha1.rb
94
95
  lib/net/ssh/transport/kex/diffie_hellman_group14_sha1.rb
96
+ lib/net/ssh/transport/kex/diffie_hellman_group1_sha1.rb
95
97
  lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha1.rb
96
98
  lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha256.rb
97
99
  lib/net/ssh/transport/kex/ecdh_sha2_nistp256.rb
98
100
  lib/net/ssh/transport/kex/ecdh_sha2_nistp384.rb
99
101
  lib/net/ssh/transport/kex/ecdh_sha2_nistp521.rb
102
+ lib/net/ssh/transport/key_expander.rb
100
103
  lib/net/ssh/transport/openssl.rb
101
104
  lib/net/ssh/transport/packet_stream.rb
102
105
  lib/net/ssh/transport/server_version.rb
@@ -110,6 +113,7 @@
110
113
  setup.rb
111
114
  support/arcfour_check.rb
112
115
  support/ssh_tunnel_bug.rb
116
+ test/README.txt
113
117
  test/authentication/methods/common.rb
114
118
  test/authentication/methods/test_abstract.rb
115
119
  test/authentication/methods/test_hostbased.rb
@@ -124,14 +128,20 @@
124
128
  test/configs/exact_match
125
129
  test/configs/host_plus
126
130
  test/configs/multihost
131
+ test/configs/nohost
132
+ test/configs/numeric_host
127
133
  test/configs/wild_cards
128
134
  test/connection/test_channel.rb
129
135
  test/connection/test_session.rb
136
+ test/manual/test_forward.rb
137
+ test/start/test_transport.rb
138
+ test/known_hosts/github
130
139
  test/test_all.rb
131
140
  test/test_buffer.rb
132
141
  test/test_buffered_io.rb
133
142
  test/test_config.rb
134
143
  test/test_key_factory.rb
144
+ test/test_known_hosts.rb
135
145
  test/transport/hmac/test_md5.rb
136
146
  test/transport/hmac/test_md5_96.rb
137
147
  test/transport/hmac/test_none.rb
@@ -142,8 +152,8 @@
142
152
  test/transport/hmac/test_sha2_256_96.rb
143
153
  test/transport/hmac/test_sha2_512.rb
144
154
  test/transport/hmac/test_sha2_512_96.rb
145
- test/transport/kex/test_diffie_hellman_group1_sha1.rb
146
155
  test/transport/kex/test_diffie_hellman_group14_sha1.rb
156
+ test/transport/kex/test_diffie_hellman_group1_sha1.rb
147
157
  test/transport/kex/test_diffie_hellman_group_exchange_sha1.rb
148
158
  test/transport/kex/test_diffie_hellman_group_exchange_sha256.rb
149
159
  test/transport/kex/test_ecdh_sha2_nistp256.rb
@@ -0,0 +1,43 @@
1
+ 2011-01-19
2
+
3
+ RUNNING TESTS
4
+
5
+ Run the test suite from the net-ssh directory with the following command:
6
+
7
+ ruby -Ilib -Itest -rrubygems test/test_all.rb
8
+
9
+ Run a single test file like this:
10
+
11
+ ruby -Ilib -Itest -rrubygems test/transport/test_server_version.rb
12
+
13
+
14
+ EXPECTED RESULTS
15
+
16
+ * Ruby 1.8: all tests pass
17
+
18
+ * Ruby 1.9: all tests pass
19
+
20
+ * JRuby 1.5: 99% tests pass (448 tests, 1846 assertions, 1 failures)
21
+
22
+
23
+ PORT FORWARDING TESTS
24
+
25
+ ruby -Ilib -Itest -rrubygems test/manual/test_forward.rb
26
+
27
+ test_forward.rb must be run separately from the test suite because
28
+ it requires authorizing your public SSH keys on you localhost.
29
+
30
+ If you already have keys you can do this:
31
+
32
+ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
33
+
34
+ If you don't have keys see:
35
+
36
+ http://kimmo.suominen.com/docs/ssh/#ssh-keygen
37
+
38
+ You should now be able to login to your localhost with out
39
+ bring prompted for a password:
40
+
41
+ ssh localhost
42
+
43
+ -Delano
@@ -0,0 +1,19 @@
1
+
2
+ IdentityFile ~/.ssh/id_dsa
3
+ IdentityFile ~/.ssh/id_rsa
4
+ Port 1980
5
+
6
+ Host test.host
7
+ Port 1985
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
@@ -0,0 +1,4 @@
1
+ Host 1234
2
+ Compression yes
3
+ Port 1980
4
+ RekeyLimit 2G
@@ -0,0 +1 @@
1
+ github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
@@ -0,0 +1,223 @@
1
+ # $ ruby -Ilib -Itest -rrubygems test/test_forward.rb
2
+
3
+ # Tests for the following patch:
4
+ #
5
+ # http://github.com/net-ssh/net-ssh/tree/portfwfix
6
+ #
7
+ # It fixes 3 issues, regarding closing forwarded ports:
8
+ #
9
+ # 1.) if client closes a forwarded connection, but the server is reading, net-ssh terminates with IOError socket closed.
10
+ # 2.) if client force closes (RST) a forwarded connection, but server is reading, net-ssh terminates with
11
+ # 3.) if server closes the sending side, the on_eof is not handled.
12
+ #
13
+ # More info:
14
+ #
15
+ # http://net-ssh.lighthouseapp.com/projects/36253/tickets/7
16
+
17
+ require 'common'
18
+ require 'net/ssh/buffer'
19
+ require 'net/ssh'
20
+ require 'timeout'
21
+ require 'tempfile'
22
+
23
+ class TestForward < Test::Unit::TestCase
24
+
25
+ def localhost
26
+ 'localhost'
27
+ end
28
+
29
+ def ssh_start_params
30
+ [localhost ,ENV['USER'], {:keys => "~/.ssh/id_rsa", :verbose => :debug}]
31
+ end
32
+
33
+ def find_free_port
34
+ server = TCPServer.open(0)
35
+ server.setsockopt(Socket::SOL_SOCKET,Socket::SO_REUSEADDR,true)
36
+ port = server.addr[1]
37
+ server.close
38
+ port
39
+ end
40
+
41
+ def start_server_sending_lot_of_data(exceptions)
42
+ server = TCPServer.open(0)
43
+ Thread.start do
44
+ loop do
45
+ Thread.start(server.accept) do |client|
46
+ begin
47
+ 10000.times do |i|
48
+ client.puts "item#{i}"
49
+ end
50
+ client.close
51
+ rescue
52
+ exceptions << $!
53
+ raise
54
+ end
55
+ end
56
+ end
57
+ end
58
+ return server
59
+ end
60
+
61
+ def start_server_closing_soon(exceptions=nil)
62
+ server = TCPServer.open(0)
63
+ Thread.start do
64
+ loop do
65
+ Thread.start(server.accept) do |client|
66
+ begin
67
+ client.recv(1024)
68
+ client.setsockopt(Socket::SOL_SOCKET, Socket::SO_LINGER, [1, 0].pack("ii"))
69
+ client.close
70
+ rescue
71
+ exceptions << $!
72
+ raise
73
+ end
74
+ end
75
+ end
76
+ end
77
+ return server
78
+ end
79
+
80
+ def test_loop_should_not_abort_when_local_side_of_forward_is_closed
81
+ session = Net::SSH.start(*ssh_start_params)
82
+ server_exc = Queue.new
83
+ server = start_server_sending_lot_of_data(server_exc)
84
+ remote_port = server.addr[1]
85
+ local_port = find_free_port
86
+ session.forward.local(local_port, localhost, remote_port)
87
+ client_done = Queue.new
88
+ Thread.start do
89
+ begin
90
+ client = TCPSocket.new(localhost, local_port)
91
+ client.recv(1024)
92
+ client.close
93
+ sleep(0.2)
94
+ ensure
95
+ client_done << true
96
+ end
97
+ end
98
+ session.loop(0.1) { client_done.empty? }
99
+ assert_equal "Broken pipe", "#{server_exc.pop}" unless server_exc.empty?
100
+ end
101
+
102
+ def test_loop_should_not_abort_when_local_side_of_forward_is_reset
103
+ session = Net::SSH.start(*ssh_start_params)
104
+ server_exc = Queue.new
105
+ server = start_server_sending_lot_of_data(server_exc)
106
+ remote_port = server.addr[1]
107
+ local_port = find_free_port
108
+ session.forward.local(local_port, localhost, remote_port)
109
+ client_done = Queue.new
110
+ Thread.start do
111
+ begin
112
+ client = TCPSocket.new(localhost, local_port)
113
+ client.recv(1024)
114
+ client.setsockopt(Socket::SOL_SOCKET, Socket::SO_LINGER, [1, 0].pack("ii"))
115
+ client.close
116
+ sleep(0.1)
117
+ ensure
118
+ client_done << true
119
+ end
120
+ end
121
+ session.loop(0.1) { client_done.empty? }
122
+ assert_equal "Broken pipe", "#{server_exc.pop}" unless server_exc.empty?
123
+ end
124
+
125
+ def create_local_socket(&blk)
126
+ tempfile = Tempfile.new("net_ssh_forward_test")
127
+ path = tempfile.path
128
+ tempfile.delete
129
+ yield UNIXServer.open(path)
130
+ File.delete(path)
131
+ end
132
+
133
+ def test_forward_local_unix_socket_to_remote_port
134
+ session = Net::SSH.start(*ssh_start_params)
135
+ server_exc = Queue.new
136
+ server = start_server_sending_lot_of_data(server_exc)
137
+ remote_port = server.addr[1]
138
+ client_data = nil
139
+
140
+ create_local_socket do |local_socket|
141
+ session.forward.local(local_socket, localhost, remote_port)
142
+ client_done = Queue.new
143
+
144
+ Thread.start do
145
+ begin
146
+ client = UNIXSocket.new(local_socket.path)
147
+ client_data = client.recv(1024)
148
+ client.close
149
+ sleep(0.2)
150
+ ensure
151
+ client_done << true
152
+ end
153
+ end
154
+
155
+ session.loop(0.1) { client_done.empty? }
156
+ end
157
+
158
+ assert_not_nil(client_data, "client should have received data")
159
+ assert(client_data.match(/item\d/), 'client should have received the string item')
160
+ end
161
+
162
+ def test_loop_should_not_abort_when_server_side_of_forward_is_closed
163
+ session = Net::SSH.start(*ssh_start_params)
164
+ server = start_server_closing_soon
165
+ remote_port = server.addr[1]
166
+ local_port = find_free_port
167
+ session.forward.local(local_port, localhost, remote_port)
168
+ client_done = Queue.new
169
+ Thread.start do
170
+ begin
171
+ client = TCPSocket.new(localhost, local_port)
172
+ 1.times do |i|
173
+ client.puts "item#{i}"
174
+ end
175
+ client.close
176
+ sleep(0.1)
177
+ ensure
178
+ client_done << true
179
+ end
180
+ end
181
+ session.loop(0.1) { client_done.empty? }
182
+ end
183
+
184
+ def start_server
185
+ server = TCPServer.open(0)
186
+ Thread.start do
187
+ loop do
188
+ Thread.start(server.accept) do |client|
189
+ yield(client)
190
+ end
191
+ end
192
+ end
193
+ return server
194
+ end
195
+
196
+ def test_server_eof_should_be_handled
197
+ session = Net::SSH.start(*ssh_start_params)
198
+ server = start_server do |client|
199
+ client.write "This is a small message!"
200
+ client.close
201
+ end
202
+ client_done = Queue.new
203
+ client_exception = Queue.new
204
+ client_data = Queue.new
205
+ remote_port = server.addr[1]
206
+ local_port = find_free_port
207
+ session.forward.local(local_port, localhost, remote_port)
208
+ Thread.start do
209
+ begin
210
+ client = TCPSocket.new(localhost, local_port)
211
+ data = client.read(4096)
212
+ client.close
213
+ client_done << data
214
+ rescue
215
+ client_done << $!
216
+ end
217
+ end
218
+ timeout(5) do
219
+ session.loop(0.1) { client_done.empty? }
220
+ assert_equal "This is a small message!", client_done.pop
221
+ end
222
+ end
223
+ end
@@ -0,0 +1,28 @@
1
+ require 'common'
2
+ require 'net/ssh'
3
+
4
+ module NetSSH
5
+ class TestStart < Test::Unit::TestCase
6
+ attr_reader :transport_session
7
+ attr_reader :authentication_session
8
+
9
+ def setup
10
+ @transport_session = mock('transport_session')
11
+ @authentication_session = mock('authentication_session')
12
+ Net::SSH::Transport::Session.expects(:new => transport_session)
13
+ Net::SSH::Authentication::Session.expects(:new => authentication_session)
14
+ end
15
+
16
+ def test_close_transport_when_authentication_fails
17
+ authentication_session.expects(:authenticate => false)
18
+
19
+ transport_session.expects(:close).at_least_once
20
+
21
+ begin
22
+ Net::SSH.start('localhost', 'testuser') {}
23
+ rescue Net::SSH::AuthenticationFailed
24
+ # Authentication should fail, as it is part of the context
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,13 @@
1
+ require 'common'
2
+
3
+ class TestKnownHosts < Test::Unit::TestCase
4
+
5
+ def test_key_for_when_all_hosts_are_recognized
6
+ source = File.join(File.dirname(__FILE__),"known_hosts/github")
7
+ kh = Net::SSH::KnownHosts.new(source)
8
+ keys = kh.keys_for("github.com")
9
+ assert_equal(1, keys.count)
10
+ assert_equal("ssh-rsa", keys[0].ssh_type)
11
+ end
12
+
13
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: net-ssh
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 2.5.1
5
+ version: 2.5.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Jamis Buck
@@ -11,19 +11,9 @@ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
 
14
- date: 2012-05-24 00:00:00 Z
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
17
- name: jruby-pageant
18
- prerelease: false
19
- requirement: &id001 !ruby/object:Gem::Requirement
20
- none: false
21
- requirements:
22
- - - ">="
23
- - !ruby/object:Gem::Version
24
- version: 1.0.2
25
- type: :runtime
26
- version_requirements: *id001
14
+ date: 2012-05-25 00:00:00 Z
15
+ dependencies: []
16
+
27
17
  description: "Net::SSH: a pure-Ruby implementation of the SSH2 client protocol. It allows you to write programs that invoke and interact with processes on remote servers, via SSH2."
28
18
  email:
29
19
  - net-ssh@solutious.com
@@ -39,11 +29,14 @@ files:
39
29
  - CHANGELOG.rdoc
40
30
  - Manifest
41
31
  - README.rdoc
32
+ - LICENSE.rdoc
42
33
  - Rakefile
43
34
  - Rudyfile
44
35
  - THANKS.rdoc
45
36
  - lib/net/ssh.rb
46
37
  - lib/net/ssh/authentication/agent.rb
38
+ - lib/net/ssh/authentication/agent/java_pageant.rb
39
+ - lib/net/ssh/authentication/agent/socket.rb
47
40
  - lib/net/ssh/authentication/constants.rb
48
41
  - lib/net/ssh/authentication/key_manager.rb
49
42
  - lib/net/ssh/authentication/methods/abstract.rb
@@ -53,8 +46,6 @@ files:
53
46
  - lib/net/ssh/authentication/methods/publickey.rb
54
47
  - lib/net/ssh/authentication/pageant.rb
55
48
  - lib/net/ssh/authentication/session.rb
56
- - lib/net/ssh/authentication/agent/java_pageant.rb
57
- - lib/net/ssh/authentication/agent/socket.rb
58
49
  - lib/net/ssh/buffer.rb
59
50
  - lib/net/ssh/buffered_io.rb
60
51
  - lib/net/ssh/config.rb
@@ -101,15 +92,15 @@ files:
101
92
  - lib/net/ssh/transport/hmac/sha2_512.rb
102
93
  - lib/net/ssh/transport/hmac/sha2_512_96.rb
103
94
  - lib/net/ssh/transport/identity_cipher.rb
104
- - lib/net/ssh/transport/key_expander.rb
105
95
  - lib/net/ssh/transport/kex.rb
106
- - lib/net/ssh/transport/kex/diffie_hellman_group1_sha1.rb
107
96
  - lib/net/ssh/transport/kex/diffie_hellman_group14_sha1.rb
97
+ - lib/net/ssh/transport/kex/diffie_hellman_group1_sha1.rb
108
98
  - lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha1.rb
109
99
  - lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha256.rb
110
100
  - lib/net/ssh/transport/kex/ecdh_sha2_nistp256.rb
111
101
  - lib/net/ssh/transport/kex/ecdh_sha2_nistp384.rb
112
102
  - lib/net/ssh/transport/kex/ecdh_sha2_nistp521.rb
103
+ - lib/net/ssh/transport/key_expander.rb
113
104
  - lib/net/ssh/transport/openssl.rb
114
105
  - lib/net/ssh/transport/packet_stream.rb
115
106
  - lib/net/ssh/transport/server_version.rb
@@ -123,6 +114,7 @@ files:
123
114
  - setup.rb
124
115
  - support/arcfour_check.rb
125
116
  - support/ssh_tunnel_bug.rb
117
+ - test/README.txt
126
118
  - test/authentication/methods/common.rb
127
119
  - test/authentication/methods/test_abstract.rb
128
120
  - test/authentication/methods/test_hostbased.rb
@@ -137,14 +129,20 @@ files:
137
129
  - test/configs/exact_match
138
130
  - test/configs/host_plus
139
131
  - test/configs/multihost
132
+ - test/configs/nohost
133
+ - test/configs/numeric_host
140
134
  - test/configs/wild_cards
141
135
  - test/connection/test_channel.rb
142
136
  - test/connection/test_session.rb
137
+ - test/manual/test_forward.rb
138
+ - test/start/test_transport.rb
139
+ - test/known_hosts/github
143
140
  - test/test_all.rb
144
141
  - test/test_buffer.rb
145
142
  - test/test_buffered_io.rb
146
143
  - test/test_config.rb
147
144
  - test/test_key_factory.rb
145
+ - test/test_known_hosts.rb
148
146
  - test/transport/hmac/test_md5.rb
149
147
  - test/transport/hmac/test_md5_96.rb
150
148
  - test/transport/hmac/test_none.rb
@@ -155,8 +153,8 @@ files:
155
153
  - test/transport/hmac/test_sha2_256_96.rb
156
154
  - test/transport/hmac/test_sha2_512.rb
157
155
  - test/transport/hmac/test_sha2_512_96.rb
158
- - test/transport/kex/test_diffie_hellman_group1_sha1.rb
159
156
  - test/transport/kex/test_diffie_hellman_group14_sha1.rb
157
+ - test/transport/kex/test_diffie_hellman_group1_sha1.rb
160
158
  - test/transport/kex/test_diffie_hellman_group_exchange_sha1.rb
161
159
  - test/transport/kex/test_diffie_hellman_group_exchange_sha256.rb
162
160
  - test/transport/kex/test_ecdh_sha2_nistp256.rb