net-ssh 4.1.0 → 6.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. checksums.yaml +5 -5
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/.gitignore +5 -0
  5. data/.rubocop.yml +8 -2
  6. data/.rubocop_todo.yml +405 -552
  7. data/.travis.yml +23 -22
  8. data/CHANGES.txt +112 -1
  9. data/Gemfile +1 -7
  10. data/{Gemfile.norbnacl → Gemfile.noed25519} +1 -1
  11. data/Manifest +4 -5
  12. data/README.md +287 -0
  13. data/Rakefile +40 -29
  14. data/appveyor.yml +12 -6
  15. data/lib/net/ssh.rb +68 -32
  16. data/lib/net/ssh/authentication/agent.rb +234 -222
  17. data/lib/net/ssh/authentication/certificate.rb +175 -164
  18. data/lib/net/ssh/authentication/constants.rb +17 -14
  19. data/lib/net/ssh/authentication/ed25519.rb +162 -141
  20. data/lib/net/ssh/authentication/ed25519_loader.rb +32 -29
  21. data/lib/net/ssh/authentication/key_manager.rb +40 -9
  22. data/lib/net/ssh/authentication/methods/abstract.rb +53 -47
  23. data/lib/net/ssh/authentication/methods/hostbased.rb +32 -33
  24. data/lib/net/ssh/authentication/methods/keyboard_interactive.rb +1 -1
  25. data/lib/net/ssh/authentication/methods/none.rb +10 -10
  26. data/lib/net/ssh/authentication/methods/password.rb +13 -13
  27. data/lib/net/ssh/authentication/methods/publickey.rb +56 -55
  28. data/lib/net/ssh/authentication/pageant.rb +468 -465
  29. data/lib/net/ssh/authentication/pub_key_fingerprint.rb +43 -0
  30. data/lib/net/ssh/authentication/session.rb +130 -122
  31. data/lib/net/ssh/buffer.rb +345 -312
  32. data/lib/net/ssh/buffered_io.rb +163 -163
  33. data/lib/net/ssh/config.rb +316 -238
  34. data/lib/net/ssh/connection/channel.rb +670 -650
  35. data/lib/net/ssh/connection/constants.rb +30 -26
  36. data/lib/net/ssh/connection/event_loop.rb +108 -105
  37. data/lib/net/ssh/connection/keepalive.rb +54 -50
  38. data/lib/net/ssh/connection/session.rb +682 -671
  39. data/lib/net/ssh/connection/term.rb +180 -176
  40. data/lib/net/ssh/errors.rb +101 -99
  41. data/lib/net/ssh/key_factory.rb +195 -108
  42. data/lib/net/ssh/known_hosts.rb +161 -152
  43. data/lib/net/ssh/loggable.rb +57 -55
  44. data/lib/net/ssh/packet.rb +82 -78
  45. data/lib/net/ssh/prompt.rb +55 -53
  46. data/lib/net/ssh/proxy/command.rb +104 -89
  47. data/lib/net/ssh/proxy/errors.rb +12 -8
  48. data/lib/net/ssh/proxy/http.rb +93 -91
  49. data/lib/net/ssh/proxy/https.rb +42 -39
  50. data/lib/net/ssh/proxy/jump.rb +50 -47
  51. data/lib/net/ssh/proxy/socks4.rb +0 -2
  52. data/lib/net/ssh/proxy/socks5.rb +11 -12
  53. data/lib/net/ssh/service/forward.rb +370 -317
  54. data/lib/net/ssh/test.rb +83 -77
  55. data/lib/net/ssh/test/channel.rb +146 -142
  56. data/lib/net/ssh/test/extensions.rb +150 -146
  57. data/lib/net/ssh/test/kex.rb +35 -31
  58. data/lib/net/ssh/test/local_packet.rb +48 -44
  59. data/lib/net/ssh/test/packet.rb +87 -84
  60. data/lib/net/ssh/test/remote_packet.rb +35 -31
  61. data/lib/net/ssh/test/script.rb +173 -171
  62. data/lib/net/ssh/test/socket.rb +59 -55
  63. data/lib/net/ssh/transport/algorithms.rb +430 -364
  64. data/lib/net/ssh/transport/cipher_factory.rb +95 -91
  65. data/lib/net/ssh/transport/constants.rb +33 -25
  66. data/lib/net/ssh/transport/ctr.rb +33 -11
  67. data/lib/net/ssh/transport/hmac.rb +15 -13
  68. data/lib/net/ssh/transport/hmac/abstract.rb +82 -63
  69. data/lib/net/ssh/transport/hmac/sha2_256.rb +7 -11
  70. data/lib/net/ssh/transport/hmac/sha2_256_96.rb +4 -8
  71. data/lib/net/ssh/transport/hmac/sha2_256_etm.rb +12 -0
  72. data/lib/net/ssh/transport/hmac/sha2_512.rb +6 -9
  73. data/lib/net/ssh/transport/hmac/sha2_512_96.rb +4 -8
  74. data/lib/net/ssh/transport/hmac/sha2_512_etm.rb +12 -0
  75. data/lib/net/ssh/transport/identity_cipher.rb +55 -51
  76. data/lib/net/ssh/transport/kex.rb +14 -13
  77. data/lib/net/ssh/transport/kex/abstract.rb +123 -0
  78. data/lib/net/ssh/transport/kex/abstract5656.rb +72 -0
  79. data/lib/net/ssh/transport/kex/curve25519_sha256.rb +38 -0
  80. data/lib/net/ssh/transport/kex/curve25519_sha256_loader.rb +30 -0
  81. data/lib/net/ssh/transport/kex/diffie_hellman_group14_sha1.rb +33 -40
  82. data/lib/net/ssh/transport/kex/diffie_hellman_group1_sha1.rb +112 -217
  83. data/lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha1.rb +53 -62
  84. data/lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha256.rb +5 -9
  85. data/lib/net/ssh/transport/kex/ecdh_sha2_nistp256.rb +36 -90
  86. data/lib/net/ssh/transport/kex/ecdh_sha2_nistp384.rb +18 -10
  87. data/lib/net/ssh/transport/kex/ecdh_sha2_nistp521.rb +18 -10
  88. data/lib/net/ssh/transport/key_expander.rb +29 -25
  89. data/lib/net/ssh/transport/openssl.rb +116 -116
  90. data/lib/net/ssh/transport/packet_stream.rb +223 -190
  91. data/lib/net/ssh/transport/server_version.rb +64 -66
  92. data/lib/net/ssh/transport/session.rb +306 -257
  93. data/lib/net/ssh/transport/state.rb +198 -196
  94. data/lib/net/ssh/verifiers/accept_new.rb +35 -0
  95. data/lib/net/ssh/verifiers/accept_new_or_local_tunnel.rb +34 -0
  96. data/lib/net/ssh/verifiers/always.rb +56 -0
  97. data/lib/net/ssh/verifiers/never.rb +21 -0
  98. data/lib/net/ssh/version.rb +55 -53
  99. data/net-ssh-public_cert.pem +18 -19
  100. data/net-ssh.gemspec +12 -11
  101. data/support/ssh_tunnel_bug.rb +2 -2
  102. metadata +86 -75
  103. metadata.gz.sig +0 -0
  104. data/Gemfile.norbnacl.lock +0 -41
  105. data/README.rdoc +0 -169
  106. data/lib/net/ssh/ruby_compat.rb +0 -24
  107. data/lib/net/ssh/verifiers/lenient.rb +0 -30
  108. data/lib/net/ssh/verifiers/null.rb +0 -12
  109. data/lib/net/ssh/verifiers/secure.rb +0 -52
  110. data/lib/net/ssh/verifiers/strict.rb +0 -24
  111. data/support/arcfour_check.rb +0 -20
@@ -0,0 +1,56 @@
1
+ require 'net/ssh/errors'
2
+ require 'net/ssh/known_hosts'
3
+
4
+ module Net
5
+ module SSH
6
+ module Verifiers
7
+
8
+ # Does a strict host verification, looking the server up in the known
9
+ # host files to see if a key has already been seen for this server. If this
10
+ # server does not appear in any host file, an exception will be raised
11
+ # (HostKeyUnknown). This is in contrast to the "Strict" class, which will
12
+ # silently add the key to your known_hosts file. If the server does appear at
13
+ # least once, but the key given does not match any known for the server, an
14
+ # exception will be raised (HostKeyMismatch).
15
+ # Otherwise, this returns true.
16
+ class Always
17
+ def verify(arguments)
18
+ host_keys = arguments[:session].host_keys
19
+
20
+ # We've never seen this host before, so raise an exception.
21
+ process_cache_miss(host_keys, arguments, HostKeyUnknown, "is unknown") if host_keys.empty?
22
+
23
+ # If we found any matches, check to see that the key type and
24
+ # blob also match.
25
+ found = host_keys.any? do |key|
26
+ key.ssh_type == arguments[:key].ssh_type &&
27
+ key.to_blob == arguments[:key].to_blob
28
+ end
29
+
30
+ # If a match was found, return true. Otherwise, raise an exception
31
+ # indicating that the key was not recognized.
32
+ process_cache_miss(host_keys, arguments, HostKeyMismatch, "does not match") unless found
33
+
34
+ found
35
+ end
36
+
37
+ def verify_signature(&block)
38
+ yield
39
+ end
40
+
41
+ private
42
+
43
+ def process_cache_miss(host_keys, args, exc_class, message)
44
+ exception = exc_class.new("fingerprint #{args[:fingerprint]} " +
45
+ "#{message} for #{host_keys.host.inspect}")
46
+ exception.data = args
47
+ exception.callback = Proc.new do
48
+ host_keys.add_host_key(args[:key])
49
+ end
50
+ raise exception
51
+ end
52
+ end
53
+
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,21 @@
1
+ module Net
2
+ module SSH
3
+ module Verifiers
4
+
5
+ # This host key verifier simply allows every key it sees, without
6
+ # any verification. This is simple, but very insecure because it
7
+ # exposes you to MiTM attacks.
8
+ class Never
9
+ # Returns true.
10
+ def verify(arguments)
11
+ true
12
+ end
13
+
14
+ def verify_signature(&block)
15
+ true
16
+ end
17
+ end
18
+
19
+ end
20
+ end
21
+ end
@@ -1,66 +1,68 @@
1
- module Net; module SSH
2
- # A class for describing the current version of a library. The version
3
- # consists of three parts: the +major+ number, the +minor+ number, and the
4
- # +tiny+ (or +patch+) number.
5
- #
6
- # Two Version instances may be compared, so that you can test that a version
7
- # of a library is what you require:
8
- #
9
- # require 'net/ssh/version'
10
- #
11
- # if Net::SSH::Version::CURRENT < Net::SSH::Version[2,1,0]
12
- # abort "your software is too old!"
13
- # end
14
- class Version
15
- include Comparable
1
+ module Net
2
+ module SSH
3
+ # A class for describing the current version of a library. The version
4
+ # consists of three parts: the +major+ number, the +minor+ number, and the
5
+ # +tiny+ (or +patch+) number.
6
+ #
7
+ # Two Version instances may be compared, so that you can test that a version
8
+ # of a library is what you require:
9
+ #
10
+ # require 'net/ssh/version'
11
+ #
12
+ # if Net::SSH::Version::CURRENT < Net::SSH::Version[2,1,0]
13
+ # abort "your software is too old!"
14
+ # end
15
+ class Version
16
+ include Comparable
16
17
 
17
- # A convenience method for instantiating a new Version instance with the
18
- # given +major+, +minor+, and +tiny+ components.
19
- def self.[](major, minor, tiny, pre = nil)
20
- new(major, minor, tiny, pre)
21
- end
18
+ # A convenience method for instantiating a new Version instance with the
19
+ # given +major+, +minor+, and +tiny+ components.
20
+ def self.[](major, minor, tiny, pre = nil)
21
+ new(major, minor, tiny, pre)
22
+ end
22
23
 
23
- attr_reader :major, :minor, :tiny
24
+ attr_reader :major, :minor, :tiny
24
25
 
25
- # Create a new Version object with the given components.
26
- def initialize(major, minor, tiny, pre = nil)
27
- @major, @minor, @tiny, @pre = major, minor, tiny, pre
28
- end
26
+ # Create a new Version object with the given components.
27
+ def initialize(major, minor, tiny, pre = nil)
28
+ @major, @minor, @tiny, @pre = major, minor, tiny, pre
29
+ end
29
30
 
30
- # Compare this version to the given +version+ object.
31
- def <=>(version)
32
- to_i <=> version.to_i
33
- end
31
+ # Compare this version to the given +version+ object.
32
+ def <=>(version)
33
+ to_i <=> version.to_i
34
+ end
34
35
 
35
- # Converts this version object to a string, where each of the three
36
- # version components are joined by the '.' character. E.g., 2.0.0.
37
- def to_s
38
- @to_s ||= [@major, @minor, @tiny, @pre].compact.join(".")
39
- end
36
+ # Converts this version object to a string, where each of the three
37
+ # version components are joined by the '.' character. E.g., 2.0.0.
38
+ def to_s
39
+ @to_s ||= [@major, @minor, @tiny, @pre].compact.join(".")
40
+ end
40
41
 
41
- # Converts this version to a canonical integer that may be compared
42
- # against other version objects.
43
- def to_i
44
- @to_i ||= @major * 1_000_000 + @minor * 1_000 + @tiny
45
- end
42
+ # Converts this version to a canonical integer that may be compared
43
+ # against other version objects.
44
+ def to_i
45
+ @to_i ||= @major * 1_000_000 + @minor * 1_000 + @tiny
46
+ end
46
47
 
47
- # The major component of this version of the Net::SSH library
48
- MAJOR = 4
48
+ # The major component of this version of the Net::SSH library
49
+ MAJOR = 6
49
50
 
50
- # The minor component of this version of the Net::SSH library
51
- MINOR = 1
51
+ # The minor component of this version of the Net::SSH library
52
+ MINOR = 1
52
53
 
53
- # The tiny component of this version of the Net::SSH library
54
- TINY = 0
54
+ # The tiny component of this version of the Net::SSH library
55
+ TINY = 0
55
56
 
56
- # The prerelease component of this version of the Net::SSH library
57
- # nil allowed
58
- PRE = nil
57
+ # The prerelease component of this version of the Net::SSH library
58
+ # nil allowed
59
+ PRE = nil
59
60
 
60
- # The current version of the Net::SSH library as a Version instance
61
- CURRENT = new(*[MAJOR, MINOR, TINY, PRE].compact)
61
+ # The current version of the Net::SSH library as a Version instance
62
+ CURRENT = new(*[MAJOR, MINOR, TINY, PRE].compact)
62
63
 
63
- # The current version of the Net::SSH library as a String
64
- STRING = CURRENT.to_s
64
+ # The current version of the Net::SSH library as a String
65
+ STRING = CURRENT.to_s
66
+ end
65
67
  end
66
- end; end
68
+ end
@@ -1,21 +1,20 @@
1
1
  -----BEGIN CERTIFICATE-----
2
- MIIDeDCCAmCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBBMQ8wDQYDVQQDDAZuZXRz
3
- c2gxGTAXBgoJkiaJk/IsZAEZFglzb2x1dGlvdXMxEzARBgoJkiaJk/IsZAEZFgNj
4
- b20wHhcNMTYxMjE1MTgwNTIyWhcNMTcxMjE1MTgwNTIyWjBBMQ8wDQYDVQQDDAZu
5
- ZXRzc2gxGTAXBgoJkiaJk/IsZAEZFglzb2x1dGlvdXMxEzARBgoJkiaJk/IsZAEZ
6
- FgNjb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGJ4TbZ9H+qZ08
7
- pQfJhPJTHaDCyQvCsKTFrL5O9z3tllQ7B/zksMMM+qFBpNYu9HCcg4yBATacE/PB
8
- qVVyUrpr6lbH/XwoN5ljXm+bdCfmnjZvTCL2FTE6o+bcnaF0IsJyC0Q2B1fbWdXN
9
- 6Off1ZWoUk6We2BIM1bn6QJLxBpGyYhvOPXsYoqSuzDf2SJDDsWFZ8kV5ON13Ohm
10
- JbBzn0oD8HF8FuYOewwsC0C1q4w7E5GtvHcQ5juweS7+RKsyDcVcVrLuNzoGRttS
11
- KP4yMn+TzaXijyjRg7gECfJr3TGASaA4bQsILFGG5dAWcwO4OMrZedR7SHj/o0Kf
12
- 3gL7P0axAgMBAAGjezB5MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
13
- BBQF8qLA7Z4zg0SJGtUbv3eoQ8tjIzAfBgNVHREEGDAWgRRuZXRzc2hAc29sdXRp
14
- b3VzLmNvbTAfBgNVHRIEGDAWgRRuZXRzc2hAc29sdXRpb3VzLmNvbTANBgkqhkiG
15
- 9w0BAQUFAAOCAQEATd8If+Ytmhf5lELy24j76ahGv64m518WTCdV2nIViGXB2BnV
16
- uLQylGRb1rcgUS3Eh9TE28hqrfhotKS6a96qF9kN0mY2H6UwPWswJ+tj3gA1vLW8
17
- wlZNlYGJ91Ig9zULPSbATyOOprUZyggy5p1260BaaI3LQYDeGJOSqpHCVu+TuMcy
18
- k00ofiLT1crDSUl2WE/OIFK8AXpmd798AMsef8okHeoo+Dj7zCXn0VSimN+MO1mE
19
- L4d54WIy4HkZCqQXoTSiK5HZMIdXkPk3F1bZdJ8Dy1sMRru0rUkkM5mW7TQ75mfW
20
- Zp0QrZyNZhtitrXFbZneGRrIA/8G2Krft5Ly/A==
2
+ MIIDQDCCAiigAwIBAgIBATANBgkqhkiG9w0BAQsFADAlMSMwIQYDVQQDDBpuZXRz
3
+ c2gvREM9c29sdXRpb3VzL0RDPWNvbTAeFw0yMDA0MTEwNTQyMTZaFw0yMTA0MTEw
4
+ NTQyMTZaMCUxIzAhBgNVBAMMGm5ldHNzaC9EQz1zb2x1dGlvdXMvREM9Y29tMIIB
5
+ IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxieE22fR/qmdPKUHyYTyUx2g
6
+ wskLwrCkxay+Tvc97ZZUOwf85LDDDPqhQaTWLvRwnIOMgQE2nBPzwalVclK6a+pW
7
+ x/18KDeZY15vm3Qn5p42b0wi9hUxOqPm3J2hdCLCcgtENgdX21nVzejn39WVqFJO
8
+ lntgSDNW5+kCS8QaRsmIbzj17GKKkrsw39kiQw7FhWfJFeTjddzoZiWwc59KA/Bx
9
+ fBbmDnsMLAtAtauMOxORrbx3EOY7sHku/kSrMg3FXFay7jc6BkbbUij+MjJ/k82l
10
+ 4o8o0YO4BAnya90xgEmgOG0LCCxRhuXQFnMDuDjK2XnUe0h4/6NCn94C+z9GsQID
11
+ AQABo3sweTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUBfKiwO2e
12
+ M4NEiRrVG793qEPLYyMwHwYDVR0RBBgwFoEUbmV0c3NoQHNvbHV0aW91cy5jb20w
13
+ HwYDVR0SBBgwFoEUbmV0c3NoQHNvbHV0aW91cy5jb20wDQYJKoZIhvcNAQELBQAD
14
+ ggEBAJTylLYXo5AybI+tLq79+OXQ8/nbGZ7iydU1uTHQud1JZQ1MRV5dRDjeBmCT
15
+ lRxaEZT4NopEzuHO0sm3nVpSYtQwTaQyVKmnllNI3kc0f4H6i7dpPd7eUAQ3/O2I
16
+ eWjDJlzu0zwqTa+N6vzS8Y3ypDSGgb1gJKzluOv7viVUAthmuuJws7XQq/qMMaNw
17
+ 3163oCKuJvMW1w8kdUMQqvlLJkVKaxz9K64r2+a04Ok1cKloTB3OSowfAYFoRlqP
18
+ voajiJNS75Pw/2j13WnPB4Q6w7dHSb57E/VluBpVKmcQZN0dGdAkEIVty3v7kw9g
19
+ y++VpCpWM/PstIFv4ApZMf501UY=
21
20
  -----END CERTIFICATE-----
@@ -1,4 +1,3 @@
1
- # coding: utf-8
2
1
  require_relative 'lib/net/ssh/version'
3
2
 
4
3
  Gem::Specification.new do |spec|
@@ -16,11 +15,14 @@ Gem::Specification.new do |spec|
16
15
  spec.description = %q{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.}
17
16
  spec.homepage = "https://github.com/net-ssh/net-ssh"
18
17
  spec.license = "MIT"
19
- spec.required_ruby_version = Gem::Requirement.new(">= 2.0")
18
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.3")
19
+ spec.metadata = {
20
+ "changelog_uri" => "https://github.com/net-ssh/net-ssh/blob/master/CHANGES.txt"
21
+ }
20
22
 
21
23
  spec.extra_rdoc_files = [
22
24
  "LICENSE.txt",
23
- "README.rdoc"
25
+ "README.md"
24
26
  ]
25
27
 
26
28
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
@@ -28,16 +30,15 @@ Gem::Specification.new do |spec|
28
30
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
29
31
  spec.require_paths = ["lib"]
30
32
 
31
- unless ENV['NET_SSH_NO_RBNACL']
32
- spec.add_development_dependency("rbnacl-libsodium", "~> 1.0.11")
33
- spec.add_development_dependency("rbnacl", ['>= 3.2.0','< 5.0'])
33
+ unless ENV['NET_SSH_NO_ED25519']
34
34
  spec.add_development_dependency("bcrypt_pbkdf", "~> 1.0") unless RUBY_PLATFORM == "java"
35
+ spec.add_development_dependency("ed25519", "~> 1.2")
36
+ spec.add_development_dependency('x25519') unless RUBY_PLATFORM == 'java'
35
37
  end
36
38
 
37
- spec.add_development_dependency "bundler", "~> 1.11"
38
-
39
- spec.add_development_dependency "rake", "~> 12.0"
39
+ spec.add_development_dependency "bundler", ">= 1.17"
40
40
  spec.add_development_dependency "minitest", "~> 5.10"
41
- spec.add_development_dependency "rubocop", "~> 0.46.0"
42
- spec.add_development_dependency "mocha", ">= 1.2.1"
41
+ spec.add_development_dependency "mocha", "~> 1.11.2"
42
+ spec.add_development_dependency "rake", "~> 12.0"
43
+ spec.add_development_dependency "rubocop", "~> 0.74.0"
43
44
  end
@@ -39,8 +39,8 @@ puts "Configure your browser proxy to localhost:#{LOCAL_PORT}"
39
39
  begin
40
40
  session = Net::SSH.start(host, user, password: pass)
41
41
  session.forward.local(LOCAL_PORT, host, PROXY_PORT)
42
- session.loop{true}
43
- rescue => e
42
+ session.loop {true}
43
+ rescue StandardError => e
44
44
  puts e.message
45
45
  puts e.backtrace
46
46
  end
metadata CHANGED
@@ -1,143 +1,150 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: net-ssh
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.0
4
+ version: 6.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jamis Buck
8
8
  - Delano Mandelbaum
9
9
  - Miklós Fazekas
10
- autorequire:
10
+ autorequire:
11
11
  bindir: exe
12
12
  cert_chain:
13
13
  - |
14
14
  -----BEGIN CERTIFICATE-----
15
- MIIDeDCCAmCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBBMQ8wDQYDVQQDDAZuZXRz
16
- c2gxGTAXBgoJkiaJk/IsZAEZFglzb2x1dGlvdXMxEzARBgoJkiaJk/IsZAEZFgNj
17
- b20wHhcNMTYxMjE1MTgwNTIyWhcNMTcxMjE1MTgwNTIyWjBBMQ8wDQYDVQQDDAZu
18
- ZXRzc2gxGTAXBgoJkiaJk/IsZAEZFglzb2x1dGlvdXMxEzARBgoJkiaJk/IsZAEZ
19
- FgNjb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGJ4TbZ9H+qZ08
20
- pQfJhPJTHaDCyQvCsKTFrL5O9z3tllQ7B/zksMMM+qFBpNYu9HCcg4yBATacE/PB
21
- qVVyUrpr6lbH/XwoN5ljXm+bdCfmnjZvTCL2FTE6o+bcnaF0IsJyC0Q2B1fbWdXN
22
- 6Off1ZWoUk6We2BIM1bn6QJLxBpGyYhvOPXsYoqSuzDf2SJDDsWFZ8kV5ON13Ohm
23
- JbBzn0oD8HF8FuYOewwsC0C1q4w7E5GtvHcQ5juweS7+RKsyDcVcVrLuNzoGRttS
24
- KP4yMn+TzaXijyjRg7gECfJr3TGASaA4bQsILFGG5dAWcwO4OMrZedR7SHj/o0Kf
25
- 3gL7P0axAgMBAAGjezB5MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
26
- BBQF8qLA7Z4zg0SJGtUbv3eoQ8tjIzAfBgNVHREEGDAWgRRuZXRzc2hAc29sdXRp
27
- b3VzLmNvbTAfBgNVHRIEGDAWgRRuZXRzc2hAc29sdXRpb3VzLmNvbTANBgkqhkiG
28
- 9w0BAQUFAAOCAQEATd8If+Ytmhf5lELy24j76ahGv64m518WTCdV2nIViGXB2BnV
29
- uLQylGRb1rcgUS3Eh9TE28hqrfhotKS6a96qF9kN0mY2H6UwPWswJ+tj3gA1vLW8
30
- wlZNlYGJ91Ig9zULPSbATyOOprUZyggy5p1260BaaI3LQYDeGJOSqpHCVu+TuMcy
31
- k00ofiLT1crDSUl2WE/OIFK8AXpmd798AMsef8okHeoo+Dj7zCXn0VSimN+MO1mE
32
- L4d54WIy4HkZCqQXoTSiK5HZMIdXkPk3F1bZdJ8Dy1sMRru0rUkkM5mW7TQ75mfW
33
- Zp0QrZyNZhtitrXFbZneGRrIA/8G2Krft5Ly/A==
15
+ MIIDQDCCAiigAwIBAgIBATANBgkqhkiG9w0BAQsFADAlMSMwIQYDVQQDDBpuZXRz
16
+ c2gvREM9c29sdXRpb3VzL0RDPWNvbTAeFw0yMDA0MTEwNTQyMTZaFw0yMTA0MTEw
17
+ NTQyMTZaMCUxIzAhBgNVBAMMGm5ldHNzaC9EQz1zb2x1dGlvdXMvREM9Y29tMIIB
18
+ IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxieE22fR/qmdPKUHyYTyUx2g
19
+ wskLwrCkxay+Tvc97ZZUOwf85LDDDPqhQaTWLvRwnIOMgQE2nBPzwalVclK6a+pW
20
+ x/18KDeZY15vm3Qn5p42b0wi9hUxOqPm3J2hdCLCcgtENgdX21nVzejn39WVqFJO
21
+ lntgSDNW5+kCS8QaRsmIbzj17GKKkrsw39kiQw7FhWfJFeTjddzoZiWwc59KA/Bx
22
+ fBbmDnsMLAtAtauMOxORrbx3EOY7sHku/kSrMg3FXFay7jc6BkbbUij+MjJ/k82l
23
+ 4o8o0YO4BAnya90xgEmgOG0LCCxRhuXQFnMDuDjK2XnUe0h4/6NCn94C+z9GsQID
24
+ AQABo3sweTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUBfKiwO2e
25
+ M4NEiRrVG793qEPLYyMwHwYDVR0RBBgwFoEUbmV0c3NoQHNvbHV0aW91cy5jb20w
26
+ HwYDVR0SBBgwFoEUbmV0c3NoQHNvbHV0aW91cy5jb20wDQYJKoZIhvcNAQELBQAD
27
+ ggEBAJTylLYXo5AybI+tLq79+OXQ8/nbGZ7iydU1uTHQud1JZQ1MRV5dRDjeBmCT
28
+ lRxaEZT4NopEzuHO0sm3nVpSYtQwTaQyVKmnllNI3kc0f4H6i7dpPd7eUAQ3/O2I
29
+ eWjDJlzu0zwqTa+N6vzS8Y3ypDSGgb1gJKzluOv7viVUAthmuuJws7XQq/qMMaNw
30
+ 3163oCKuJvMW1w8kdUMQqvlLJkVKaxz9K64r2+a04Ok1cKloTB3OSowfAYFoRlqP
31
+ voajiJNS75Pw/2j13WnPB4Q6w7dHSb57E/VluBpVKmcQZN0dGdAkEIVty3v7kw9g
32
+ y++VpCpWM/PstIFv4ApZMf501UY=
34
33
  -----END CERTIFICATE-----
35
- date: 2017-02-18 00:00:00.000000000 Z
34
+ date: 2020-06-09 00:00:00.000000000 Z
36
35
  dependencies:
37
36
  - !ruby/object:Gem::Dependency
37
+ name: bcrypt_pbkdf
38
38
  requirement: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - "~>"
41
41
  - !ruby/object:Gem::Version
42
- version: 1.0.11
43
- name: rbnacl-libsodium
42
+ version: '1.0'
43
+ type: :development
44
44
  prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '1.0'
50
+ - !ruby/object:Gem::Dependency
51
+ name: ed25519
52
+ requirement: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "~>"
55
+ - !ruby/object:Gem::Version
56
+ version: '1.2'
45
57
  type: :development
58
+ prerelease: false
46
59
  version_requirements: !ruby/object:Gem::Requirement
47
60
  requirements:
48
61
  - - "~>"
49
62
  - !ruby/object:Gem::Version
50
- version: 1.0.11
63
+ version: '1.2'
51
64
  - !ruby/object:Gem::Dependency
65
+ name: x25519
52
66
  requirement: !ruby/object:Gem::Requirement
53
67
  requirements:
54
68
  - - ">="
55
69
  - !ruby/object:Gem::Version
56
- version: 3.2.0
57
- - - "<"
58
- - !ruby/object:Gem::Version
59
- version: '5.0'
60
- name: rbnacl
61
- prerelease: false
70
+ version: '0'
62
71
  type: :development
72
+ prerelease: false
63
73
  version_requirements: !ruby/object:Gem::Requirement
64
74
  requirements:
65
75
  - - ">="
66
76
  - !ruby/object:Gem::Version
67
- version: 3.2.0
68
- - - "<"
69
- - !ruby/object:Gem::Version
70
- version: '5.0'
77
+ version: '0'
71
78
  - !ruby/object:Gem::Dependency
79
+ name: bundler
72
80
  requirement: !ruby/object:Gem::Requirement
73
81
  requirements:
74
- - - "~>"
82
+ - - ">="
75
83
  - !ruby/object:Gem::Version
76
- version: '1.11'
77
- name: bundler
78
- prerelease: false
84
+ version: '1.17'
79
85
  type: :development
86
+ prerelease: false
80
87
  version_requirements: !ruby/object:Gem::Requirement
81
88
  requirements:
82
- - - "~>"
89
+ - - ">="
83
90
  - !ruby/object:Gem::Version
84
- version: '1.11'
91
+ version: '1.17'
85
92
  - !ruby/object:Gem::Dependency
93
+ name: minitest
86
94
  requirement: !ruby/object:Gem::Requirement
87
95
  requirements:
88
96
  - - "~>"
89
97
  - !ruby/object:Gem::Version
90
- version: '12.0'
91
- name: rake
92
- prerelease: false
98
+ version: '5.10'
93
99
  type: :development
100
+ prerelease: false
94
101
  version_requirements: !ruby/object:Gem::Requirement
95
102
  requirements:
96
103
  - - "~>"
97
104
  - !ruby/object:Gem::Version
98
- version: '12.0'
105
+ version: '5.10'
99
106
  - !ruby/object:Gem::Dependency
107
+ name: mocha
100
108
  requirement: !ruby/object:Gem::Requirement
101
109
  requirements:
102
110
  - - "~>"
103
111
  - !ruby/object:Gem::Version
104
- version: '5.10'
105
- name: minitest
106
- prerelease: false
112
+ version: 1.11.2
107
113
  type: :development
114
+ prerelease: false
108
115
  version_requirements: !ruby/object:Gem::Requirement
109
116
  requirements:
110
117
  - - "~>"
111
118
  - !ruby/object:Gem::Version
112
- version: '5.10'
119
+ version: 1.11.2
113
120
  - !ruby/object:Gem::Dependency
121
+ name: rake
114
122
  requirement: !ruby/object:Gem::Requirement
115
123
  requirements:
116
124
  - - "~>"
117
125
  - !ruby/object:Gem::Version
118
- version: 0.46.0
119
- name: rubocop
120
- prerelease: false
126
+ version: '12.0'
121
127
  type: :development
128
+ prerelease: false
122
129
  version_requirements: !ruby/object:Gem::Requirement
123
130
  requirements:
124
131
  - - "~>"
125
132
  - !ruby/object:Gem::Version
126
- version: 0.46.0
133
+ version: '12.0'
127
134
  - !ruby/object:Gem::Dependency
135
+ name: rubocop
128
136
  requirement: !ruby/object:Gem::Requirement
129
137
  requirements:
130
- - - ">="
138
+ - - "~>"
131
139
  - !ruby/object:Gem::Version
132
- version: 1.2.1
133
- name: mocha
134
- prerelease: false
140
+ version: 0.74.0
135
141
  type: :development
142
+ prerelease: false
136
143
  version_requirements: !ruby/object:Gem::Requirement
137
144
  requirements:
138
- - - ">="
145
+ - - "~>"
139
146
  - !ruby/object:Gem::Version
140
- version: 1.2.1
147
+ version: 0.74.0
141
148
  description: 'Net::SSH: a pure-Ruby implementation of the SSH2 client protocol. It
142
149
  allows you to write programs that invoke and interact with processes on remote servers,
143
150
  via SSH2.'
@@ -147,7 +154,7 @@ executables: []
147
154
  extensions: []
148
155
  extra_rdoc_files:
149
156
  - LICENSE.txt
150
- - README.rdoc
157
+ - README.md
151
158
  files:
152
159
  - ".gitignore"
153
160
  - ".rubocop.yml"
@@ -155,12 +162,11 @@ files:
155
162
  - ".travis.yml"
156
163
  - CHANGES.txt
157
164
  - Gemfile
158
- - Gemfile.norbnacl
159
- - Gemfile.norbnacl.lock
165
+ - Gemfile.noed25519
160
166
  - ISSUE_TEMPLATE.md
161
167
  - LICENSE.txt
162
168
  - Manifest
163
- - README.rdoc
169
+ - README.md
164
170
  - Rakefile
165
171
  - THANKS.txt
166
172
  - appveyor.yml
@@ -178,6 +184,7 @@ files:
178
184
  - lib/net/ssh/authentication/methods/password.rb
179
185
  - lib/net/ssh/authentication/methods/publickey.rb
180
186
  - lib/net/ssh/authentication/pageant.rb
187
+ - lib/net/ssh/authentication/pub_key_fingerprint.rb
181
188
  - lib/net/ssh/authentication/session.rb
182
189
  - lib/net/ssh/buffer.rb
183
190
  - lib/net/ssh/buffered_io.rb
@@ -201,7 +208,6 @@ files:
201
208
  - lib/net/ssh/proxy/jump.rb
202
209
  - lib/net/ssh/proxy/socks4.rb
203
210
  - lib/net/ssh/proxy/socks5.rb
204
- - lib/net/ssh/ruby_compat.rb
205
211
  - lib/net/ssh/service/forward.rb
206
212
  - lib/net/ssh/test.rb
207
213
  - lib/net/ssh/test/channel.rb
@@ -226,10 +232,16 @@ files:
226
232
  - lib/net/ssh/transport/hmac/sha1_96.rb
227
233
  - lib/net/ssh/transport/hmac/sha2_256.rb
228
234
  - lib/net/ssh/transport/hmac/sha2_256_96.rb
235
+ - lib/net/ssh/transport/hmac/sha2_256_etm.rb
229
236
  - lib/net/ssh/transport/hmac/sha2_512.rb
230
237
  - lib/net/ssh/transport/hmac/sha2_512_96.rb
238
+ - lib/net/ssh/transport/hmac/sha2_512_etm.rb
231
239
  - lib/net/ssh/transport/identity_cipher.rb
232
240
  - lib/net/ssh/transport/kex.rb
241
+ - lib/net/ssh/transport/kex/abstract.rb
242
+ - lib/net/ssh/transport/kex/abstract5656.rb
243
+ - lib/net/ssh/transport/kex/curve25519_sha256.rb
244
+ - lib/net/ssh/transport/kex/curve25519_sha256_loader.rb
233
245
  - lib/net/ssh/transport/kex/diffie_hellman_group14_sha1.rb
234
246
  - lib/net/ssh/transport/kex/diffie_hellman_group1_sha1.rb
235
247
  - lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha1.rb
@@ -243,20 +255,20 @@ files:
243
255
  - lib/net/ssh/transport/server_version.rb
244
256
  - lib/net/ssh/transport/session.rb
245
257
  - lib/net/ssh/transport/state.rb
246
- - lib/net/ssh/verifiers/lenient.rb
247
- - lib/net/ssh/verifiers/null.rb
248
- - lib/net/ssh/verifiers/secure.rb
249
- - lib/net/ssh/verifiers/strict.rb
258
+ - lib/net/ssh/verifiers/accept_new.rb
259
+ - lib/net/ssh/verifiers/accept_new_or_local_tunnel.rb
260
+ - lib/net/ssh/verifiers/always.rb
261
+ - lib/net/ssh/verifiers/never.rb
250
262
  - lib/net/ssh/version.rb
251
263
  - net-ssh-public_cert.pem
252
264
  - net-ssh.gemspec
253
- - support/arcfour_check.rb
254
265
  - support/ssh_tunnel_bug.rb
255
266
  homepage: https://github.com/net-ssh/net-ssh
256
267
  licenses:
257
268
  - MIT
258
- metadata: {}
259
- post_install_message:
269
+ metadata:
270
+ changelog_uri: https://github.com/net-ssh/net-ssh/blob/master/CHANGES.txt
271
+ post_install_message:
260
272
  rdoc_options: []
261
273
  require_paths:
262
274
  - lib
@@ -264,16 +276,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
264
276
  requirements:
265
277
  - - ">="
266
278
  - !ruby/object:Gem::Version
267
- version: '2.0'
279
+ version: '2.3'
268
280
  required_rubygems_version: !ruby/object:Gem::Requirement
269
281
  requirements:
270
282
  - - ">="
271
283
  - !ruby/object:Gem::Version
272
284
  version: '0'
273
285
  requirements: []
274
- rubyforge_project:
275
- rubygems_version: 2.6.8
276
- signing_key:
286
+ rubygems_version: 3.0.3
287
+ signing_key:
277
288
  specification_version: 4
278
289
  summary: 'Net::SSH: a pure-Ruby implementation of the SSH2 client protocol.'
279
290
  test_files: []