net-ssh 4.0.0.alpha4 → 4.0.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +2 -1
- data.tar.gz.sig +0 -0
- data/.travis.yml +7 -5
- data/CHANGES.txt +6 -0
- data/appveyor.yml +4 -2
- data/lib/net/ssh.rb +13 -8
- data/lib/net/ssh/authentication/ed25519.rb +6 -4
- data/lib/net/ssh/authentication/ed25519_loader.rb +21 -0
- data/lib/net/ssh/authentication/key_manager.rb +1 -1
- data/lib/net/ssh/authentication/pageant.rb +1 -1
- data/lib/net/ssh/buffer.rb +27 -4
- data/lib/net/ssh/connection/session.rb +1 -0
- data/lib/net/ssh/key_factory.rb +7 -6
- data/lib/net/ssh/transport/algorithms.rb +3 -2
- data/lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha1.rb +5 -3
- data/lib/net/ssh/transport/kex/ecdh_sha2_nistp256.rb +1 -1
- data/lib/net/ssh/transport/openssl.rb +1 -1
- data/lib/net/ssh/transport/state.rb +1 -1
- data/lib/net/ssh/version.rb +1 -1
- data/net-ssh.gemspec +5 -4
- metadata +29 -14
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d025eee7824e27e0335a51be6851449e02c0b5e0
|
4
|
+
data.tar.gz: 26ec72c6a40090938e90a01f8bf038802aff27f7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc0fffec6a7fc76d68155dc5016c04f2b484d51a2537c4f4c822427e16f6d8ccb8fe9ce822f6a855905e06f480152d204b12be56f7b01740cb7fe9acbd35d080
|
7
|
+
data.tar.gz: 6adc48f5d3eae3f8396d2ccfb8605b74ab578114a98a662ff1d159ff1e0c6e728ae693338b2d465204b01db09e8538467edd82e070158c1286b42e7e79e07d43
|
checksums.yaml.gz.sig
CHANGED
@@ -1 +1,2 @@
|
|
1
|
-
|
1
|
+
��6j|x��9/�����xĆ2���x�5��f~
|
2
|
+
��3�������N%�#i5�v��A�҄�YR��B�ԊPv��7��L�_wv�,/��9�''�(a�\v���b��+ ,��T��t�>A�OG9^��cݛ�Lp���*�Ll%+�[��1?�s=5���x�4�6�r�Hޣ���vT�nb00���u����%Q��)��yqt
|
data.tar.gz.sig
CHANGED
Binary file
|
data/.travis.yml
CHANGED
@@ -7,7 +7,7 @@ rvm:
|
|
7
7
|
- 2.1
|
8
8
|
- 2.2
|
9
9
|
- 2.3.0
|
10
|
-
- jruby-9.
|
10
|
+
- jruby-9.1.2.0
|
11
11
|
- rbx-3.25
|
12
12
|
- ruby-head
|
13
13
|
env:
|
@@ -16,23 +16,25 @@ env:
|
|
16
16
|
matrix:
|
17
17
|
exclude:
|
18
18
|
- rvm: rbx-3.25
|
19
|
-
- rvm: jruby-9.
|
19
|
+
- rvm: jruby-9.1.2.0
|
20
20
|
include:
|
21
21
|
- rvm: rbx-3.25
|
22
22
|
env: NET_SSH_RUN_INTEGRATION_TESTS=
|
23
|
-
- rvm: jruby-9.
|
23
|
+
- rvm: jruby-9.1.2.0
|
24
24
|
env: JRUBY_OPTS='--client -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -Xcext.enabled=false -J-Xss2m -Xcompile.invokedynamic=false' NET_SSH_RUN_INTEGRATION_TESTS=
|
25
|
+
fast_finish: true
|
25
26
|
allow_failures:
|
26
|
-
- rvm: ruby-head
|
27
27
|
- rvm: rbx-3.25
|
28
|
-
- rvm: jruby-9.
|
28
|
+
- rvm: jruby-9.1.2.0
|
29
29
|
|
30
30
|
install:
|
31
31
|
- export JRUBY_OPTS='--client -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -Xcext.enabled=false -J-Xss2m -Xcompile.invokedynamic=false'
|
32
32
|
- sudo pip install ansible
|
33
33
|
- gem install bundler -v "= 1.11.2"
|
34
34
|
- bundle _1.11.2_ install
|
35
|
+
- BUNDLE_GEMFILE=./Gemfile.norbnacl bundle _1.11.2_ install
|
35
36
|
- sudo ansible-galaxy install rvm_io.rvm1-ruby
|
37
|
+
- sudo chown -R travis:travis /home/travis/.ansible
|
36
38
|
- ansible-playbook ./test/integration/playbook.yml -i "localhost," --become -c local -e 'no_rvm=true' -e 'myuser=travis' -e 'mygroup=travis' -e 'homedir=/home/travis'
|
37
39
|
|
38
40
|
script:
|
data/CHANGES.txt
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
=== 4.0.0.beta
|
2
|
+
|
3
|
+
* Fix pageant [elconas, #235]
|
4
|
+
* Relaxed rbnacl,rbnacl-selenium contstraints ang give better errors about them [Miklos Fazekas, #398]
|
5
|
+
* Fix UTF-8 encoding issues [Ethan J. Brown, #407]
|
6
|
+
|
1
7
|
=== 4.0.0.alpha4
|
2
8
|
|
3
9
|
* Experimental event loop abstraction [Miklos Fazekas]
|
data/appveyor.yml
CHANGED
@@ -10,9 +10,11 @@ environment:
|
|
10
10
|
install:
|
11
11
|
- SET PATH=C:\Ruby%ruby_version%\bin;%PATH%
|
12
12
|
- gem install bundler --no-document -v 1.11.2
|
13
|
-
- BUNDLE_GEMFILE
|
13
|
+
- SET BUNDLE_GEMFILE=Gemfile.norbnacl
|
14
|
+
- bundle _1.11.2_ install --retry=3
|
14
15
|
|
15
16
|
test_script:
|
16
|
-
- BUNDLE_GEMFILE
|
17
|
+
- SET BUNDLE_GEMFILE=Gemfile.norbnacl
|
18
|
+
- bundle _1.11.2_ exec rake test
|
17
19
|
|
18
20
|
build: off
|
data/lib/net/ssh.rb
CHANGED
@@ -71,7 +71,8 @@ module Net
|
|
71
71
|
:known_hosts, :global_known_hosts_file, :user_known_hosts_file, :host_key_alias,
|
72
72
|
:host_name, :user, :properties, :passphrase, :keys_only, :max_pkt_size,
|
73
73
|
:max_win_size, :send_env, :use_agent, :number_of_password_prompts,
|
74
|
-
:append_supported_algorithms, :non_interactive, :password_prompt, :agent_socket_factory
|
74
|
+
:append_supported_algorithms, :non_interactive, :password_prompt, :agent_socket_factory,
|
75
|
+
:minimum_dh_bits
|
75
76
|
]
|
76
77
|
|
77
78
|
# The standard means of starting a new SSH connection. When used with a
|
@@ -206,6 +207,8 @@ module Net
|
|
206
207
|
raise ArgumentError, "invalid option(s): #{invalid_options.join(', ')}"
|
207
208
|
end
|
208
209
|
|
210
|
+
assign_defaults(options)
|
211
|
+
|
209
212
|
if options.values.include? nil
|
210
213
|
nil_options = options.keys.select { |k| options[k].nil? }
|
211
214
|
raise ArgumentError, "Value(s) have been set to nil: #{nil_options.join(', ')}"
|
@@ -215,17 +218,10 @@ module Net
|
|
215
218
|
options = configuration_for(host, options.fetch(:config, true)).merge(options)
|
216
219
|
host = options.fetch(:host_name, host)
|
217
220
|
|
218
|
-
if !options.key?(:logger)
|
219
|
-
options[:logger] = Logger.new(STDERR)
|
220
|
-
options[:logger].level = Logger::FATAL
|
221
|
-
end
|
222
|
-
|
223
221
|
if options[:non_interactive]
|
224
222
|
options[:number_of_password_prompts] = 0
|
225
223
|
end
|
226
224
|
|
227
|
-
options[:password_prompt] ||= Prompt.default(options)
|
228
|
-
|
229
225
|
if options[:verbose]
|
230
226
|
options[:logger].level = case options[:verbose]
|
231
227
|
when Fixnum then options[:verbose]
|
@@ -277,5 +273,14 @@ module Net
|
|
277
273
|
|
278
274
|
Net::SSH::Config.for(host, files)
|
279
275
|
end
|
276
|
+
|
277
|
+
def self.assign_defaults(options)
|
278
|
+
if !options[:logger]
|
279
|
+
options[:logger] = Logger.new(STDERR)
|
280
|
+
options[:logger].level = Logger::FATAL
|
281
|
+
end
|
282
|
+
|
283
|
+
options[:password_prompt] ||= Prompt.default(options)
|
284
|
+
end
|
280
285
|
end
|
281
286
|
end
|
@@ -1,5 +1,5 @@
|
|
1
|
-
gem 'rbnacl-libsodium', '
|
2
|
-
gem 'rbnacl', '
|
1
|
+
gem 'rbnacl-libsodium', '>= 1.0.10'
|
2
|
+
gem 'rbnacl', '>= 3.2.0', '< 4.0'
|
3
3
|
gem 'bcrypt_pbkdf', '~> 1.0.0.alpha1' unless RUBY_PLATFORM == "java"
|
4
4
|
|
5
5
|
require 'rbnacl/libsodium'
|
@@ -14,6 +14,7 @@ require 'base64'
|
|
14
14
|
require 'net/ssh/transport/cipher_factory'
|
15
15
|
require 'bcrypt_pbkdf' unless RUBY_PLATFORM == "java"
|
16
16
|
|
17
|
+
module Net; module SSH; module Authentication
|
17
18
|
module ED25519
|
18
19
|
class SigningKeyFromFile < RbNaCl::Signatures::Ed25519::SigningKey
|
19
20
|
def initialize(pk,sk)
|
@@ -32,7 +33,7 @@ module ED25519
|
|
32
33
|
end
|
33
34
|
|
34
35
|
def to_blob
|
35
|
-
Net::SSH::Buffer.from(:
|
36
|
+
Net::SSH::Buffer.from(:mstring,"ssh-ed25519",:string,@verify_key.to_bytes).to_s
|
36
37
|
end
|
37
38
|
|
38
39
|
def ssh_type
|
@@ -132,4 +133,5 @@ module ED25519
|
|
132
133
|
ED25519::PubKey.read_keyblob(buffer)
|
133
134
|
end
|
134
135
|
end
|
135
|
-
end
|
136
|
+
end
|
137
|
+
end; end; end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Net; module SSH; module Authentication
|
2
|
+
|
3
|
+
# Loads ED25519 support which requires optinal dependecies like
|
4
|
+
# rbnacl-libsodium, rbnacl, bcrypt_pbkdf
|
5
|
+
module ED25519Loader
|
6
|
+
|
7
|
+
begin
|
8
|
+
require 'net/ssh/authentication/ed25519'
|
9
|
+
LOADED = true
|
10
|
+
ERROR = nil
|
11
|
+
rescue LoadError => e
|
12
|
+
ERROR = e
|
13
|
+
LOADED = false
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.raiseUnlessLoaded(message)
|
17
|
+
raise NotImplementedError, "#{message} -- see #{ED25519_LOAD_ERROR}" unless LOADED
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end; end; end
|
@@ -254,7 +254,7 @@ module Net; module SSH; module Authentication
|
|
254
254
|
Win.GetTokenInformation(token_handle,
|
255
255
|
token_information_class,
|
256
256
|
Win::NULL, 0, preturn_length)
|
257
|
-
ptoken_information = malloc_ptr(preturn_length.
|
257
|
+
ptoken_information = malloc_ptr(preturn_length.to_s(Win::SIZEOF_DWORD).unpack('L')[0])
|
258
258
|
|
259
259
|
# This call is going to write the requested information to
|
260
260
|
# the memory location referenced by token_information.
|
data/lib/net/ssh/buffer.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'net/ssh/ruby_compat'
|
2
2
|
require 'net/ssh/transport/openssl'
|
3
3
|
|
4
|
+
require 'net/ssh/authentication/ed25519_loader'
|
5
|
+
|
4
6
|
module Net; module SSH
|
5
7
|
|
6
8
|
# Net::SSH::Buffer is a flexible class for building and parsing binary
|
@@ -34,6 +36,7 @@ module Net; module SSH
|
|
34
36
|
# * :long => write a 4-byte integer (#write_long)
|
35
37
|
# * :byte => write a single byte (#write_byte)
|
36
38
|
# * :string => write a 4-byte length followed by character data (#write_string)
|
39
|
+
# * :mstring => same as string, but caller cannot resuse the string, avoids potential duplication (#write_moved)
|
37
40
|
# * :bool => write a single byte, interpreted as a boolean (#write_bool)
|
38
41
|
# * :bignum => write an SSH-encoded bignum (#write_bignum)
|
39
42
|
# * :key => write an SSH-encoded key value (#write_key)
|
@@ -182,7 +185,7 @@ module Net; module SSH
|
|
182
185
|
consume!
|
183
186
|
data
|
184
187
|
end
|
185
|
-
|
188
|
+
|
186
189
|
# Return the next 8 bytes as a 64-bit integer (in network byte order).
|
187
190
|
# Returns nil if there are less than 8 bytes remaining to be read in the
|
188
191
|
# buffer.
|
@@ -256,8 +259,8 @@ module Net; module SSH
|
|
256
259
|
key.n = read_bignum
|
257
260
|
|
258
261
|
when /^ssh-ed25519$/
|
259
|
-
key
|
260
|
-
|
262
|
+
Net::SSH::Authentication::ED25519Loader.raiseUnlessLoaded("unsupported key type `#{type}'")
|
263
|
+
key = Net::SSH::Authentication::ED25519::PubKey.read_keyblob(self)
|
261
264
|
when /^ecdsa\-sha2\-(\w*)$/
|
262
265
|
unless defined?(OpenSSL::PKey::EC)
|
263
266
|
raise NotImplementedError, "unsupported key type `#{type}'"
|
@@ -284,7 +287,14 @@ module Net; module SSH
|
|
284
287
|
# Writes the given data literally into the string. Does not alter the
|
285
288
|
# read position. Returns the buffer object.
|
286
289
|
def write(*data)
|
287
|
-
data.each { |datum| @content << datum }
|
290
|
+
data.each { |datum| @content << datum.dup.force_encoding('BINARY') }
|
291
|
+
self
|
292
|
+
end
|
293
|
+
|
294
|
+
# Optimized version of write where the caller gives up ownership of string
|
295
|
+
# to the method. This way we can mutate the string.
|
296
|
+
def write_moved(string)
|
297
|
+
@content << string.force_encoding('BINARY')
|
288
298
|
self
|
289
299
|
end
|
290
300
|
|
@@ -327,6 +337,19 @@ module Net; module SSH
|
|
327
337
|
self
|
328
338
|
end
|
329
339
|
|
340
|
+
# Writes each argument to the buffer as an SSH2-encoded string. Each
|
341
|
+
# string is prefixed by its length, encoded as a 4-byte long integer.
|
342
|
+
# Does not alter the read position. Returns the buffer object.
|
343
|
+
# Might alter arguments see write_moved
|
344
|
+
def write_mstring(*text)
|
345
|
+
text.each do |string|
|
346
|
+
s = string.to_s
|
347
|
+
write_long(s.bytesize)
|
348
|
+
write_moved(s)
|
349
|
+
end
|
350
|
+
self
|
351
|
+
end
|
352
|
+
|
330
353
|
# Writes each argument to the buffer as a (C-style) boolean, with 1
|
331
354
|
# meaning true, and 0 meaning false. Does not alter the read position.
|
332
355
|
# Returns the buffer object.
|
data/lib/net/ssh/key_factory.rb
CHANGED
@@ -1,10 +1,7 @@
|
|
1
1
|
require 'net/ssh/transport/openssl'
|
2
2
|
require 'net/ssh/prompt'
|
3
3
|
|
4
|
-
|
5
|
-
require 'net/ssh/authentication/ed25519'
|
6
|
-
rescue Gem::LoadError => e # rubocop:disable Lint/HandleExceptions
|
7
|
-
end
|
4
|
+
require 'net/ssh/authentication/ed25519_loader'
|
8
5
|
|
9
6
|
module Net; module SSH
|
10
7
|
|
@@ -26,7 +23,7 @@ module Net; module SSH
|
|
26
23
|
}
|
27
24
|
if defined?(OpenSSL::PKey::EC)
|
28
25
|
MAP["ecdsa"] = OpenSSL::PKey::EC
|
29
|
-
MAP["ed25519"] = ED25519::PrivKey if defined? ED25519
|
26
|
+
MAP["ed25519"] = Net::SSH::Authentication::ED25519::PrivKey if defined? Net::SSH::Authentication::ED25519
|
30
27
|
end
|
31
28
|
|
32
29
|
class <<self
|
@@ -112,7 +109,11 @@ module Net; module SSH
|
|
112
109
|
# appropriately.
|
113
110
|
def classify_key(data, filename)
|
114
111
|
if data.match(/-----BEGIN OPENSSH PRIVATE KEY-----/)
|
115
|
-
|
112
|
+
if defined?(Net::SSH::Authentication::ED25519)
|
113
|
+
return ->(key_data, passphrase) { Net::SSH::Authentication::ED25519::PrivKey.read(key_data, passphrase) }, ArgumentError
|
114
|
+
else
|
115
|
+
raise OpenSSL::PKey::PKeyError, "OpenSSH keys only supported if ED25519 is available - #{ED25519_LOAD_ERROR}"
|
116
|
+
end
|
116
117
|
elsif OpenSSL::PKey.respond_to?(:read)
|
117
118
|
return ->(key_data, passphrase) { OpenSSL::PKey.read(key_data, passphrase) }, ArgumentError
|
118
119
|
elsif data.match(/-----BEGIN DSA PRIVATE KEY-----/)
|
@@ -287,8 +287,8 @@ module Net; module SSH; module Transport
|
|
287
287
|
|
288
288
|
Net::SSH::Buffer.from(:byte, KEXINIT,
|
289
289
|
:long, [rand(0xFFFFFFFF), rand(0xFFFFFFFF), rand(0xFFFFFFFF), rand(0xFFFFFFFF)],
|
290
|
-
:
|
291
|
-
:
|
290
|
+
:mstring, [kex, host_key, encryption, encryption, hmac, hmac],
|
291
|
+
:mstring, [compression, compression, language, language],
|
292
292
|
:bool, false, :long, 0)
|
293
293
|
end
|
294
294
|
|
@@ -357,6 +357,7 @@ module Net; module SSH; module Transport
|
|
357
357
|
:server_algorithm_packet => @server_packet,
|
358
358
|
:client_algorithm_packet => @client_packet,
|
359
359
|
:need_bytes => kex_byte_requirement,
|
360
|
+
:minimum_dh_bits => options[:minimum_dh_bits],
|
360
361
|
:logger => logger)
|
361
362
|
result = algorithm.exchange_keys
|
362
363
|
|
@@ -23,8 +23,10 @@ module Net::SSH::Transport::Kex
|
|
23
23
|
# for Compatibility: OpenSSH requires (need_bits * 2 + 1) length of parameter
|
24
24
|
need_bits = data[:need_bytes] * 8 * 2 + 1
|
25
25
|
|
26
|
-
|
27
|
-
|
26
|
+
data[:minimum_dh_bits] ||= MINIMUM_BITS
|
27
|
+
|
28
|
+
if need_bits < data[:minimum_dh_bits]
|
29
|
+
need_bits = data[:minimum_dh_bits]
|
28
30
|
elsif need_bits > MAXIMUM_BITS
|
29
31
|
need_bits = MAXIMUM_BITS
|
30
32
|
end
|
@@ -38,7 +40,7 @@ module Net::SSH::Transport::Kex
|
|
38
40
|
compute_need_bits
|
39
41
|
|
40
42
|
# request the DH key parameters for the given number of bits.
|
41
|
-
buffer = Net::SSH::Buffer.from(:byte, KEXDH_GEX_REQUEST, :long,
|
43
|
+
buffer = Net::SSH::Buffer.from(:byte, KEXDH_GEX_REQUEST, :long, data[:minimum_dh_bits],
|
42
44
|
:long, data[:need_bits], :long, MAXIMUM_BITS)
|
43
45
|
connection.send_message(buffer)
|
44
46
|
|
@@ -57,7 +57,7 @@ module Net; module SSH; module Transport; module Kex
|
|
57
57
|
# send the KEXECDH_INIT message
|
58
58
|
## byte SSH_MSG_KEX_ECDH_INIT
|
59
59
|
## string Q_C, client's ephemeral public key octet string
|
60
|
-
buffer = Net::SSH::Buffer.from(:byte, init, :
|
60
|
+
buffer = Net::SSH::Buffer.from(:byte, init, :mstring, ecdh.public_key.to_bn.to_s(2))
|
61
61
|
connection.send_message(buffer)
|
62
62
|
|
63
63
|
# expect the following KEXECDH_REPLY message
|
@@ -185,7 +185,7 @@ module OpenSSL
|
|
185
185
|
def to_blob
|
186
186
|
@blob ||= Net::SSH::Buffer.from(:string, ssh_type,
|
187
187
|
:string, CurveNameAliasInv[self.group.curve_name],
|
188
|
-
:
|
188
|
+
:mstring, self.public_key.to_bn.to_s(2)).to_s
|
189
189
|
@blob
|
190
190
|
end
|
191
191
|
|
data/lib/net/ssh/version.rb
CHANGED
@@ -55,7 +55,7 @@ module Net; module SSH
|
|
55
55
|
|
56
56
|
# The prerelease component of this version of the Net::SSH library
|
57
57
|
# nil allowed
|
58
|
-
PRE = "
|
58
|
+
PRE = "beta1"
|
59
59
|
|
60
60
|
# The current version of the Net::SSH library as a Version instance
|
61
61
|
CURRENT = new(*[MAJOR, MINOR, TINY, PRE].compact)
|
data/net-ssh.gemspec
CHANGED
@@ -29,16 +29,17 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.require_paths = ["lib"]
|
30
30
|
|
31
31
|
unless ENV['NET_SSH_NO_RBNACL']
|
32
|
-
spec.add_development_dependency("rbnacl-libsodium", "
|
33
|
-
spec.add_development_dependency("rbnacl", "
|
34
|
-
spec.add_development_dependency("bcrypt_pbkdf", "
|
32
|
+
spec.add_development_dependency("rbnacl-libsodium", "~> 1.0.10")
|
33
|
+
spec.add_development_dependency("rbnacl", "~> 3.4.0")
|
34
|
+
spec.add_development_dependency("bcrypt_pbkdf", "~> 1.0.0.alpha1") unless RUBY_PLATFORM == "java"
|
35
35
|
end
|
36
36
|
|
37
|
-
spec.add_development_dependency "bundler", "~> 1.11
|
37
|
+
spec.add_development_dependency "bundler", "~> 1.11"
|
38
38
|
spec.add_development_dependency "rake", "~> 11.1"
|
39
39
|
spec.add_development_dependency "minitest", "~> 5.0"
|
40
40
|
spec.add_development_dependency "rubocop", "~> 0.39.0"
|
41
41
|
spec.add_development_dependency "mocha", ">= 1.1.0"
|
42
|
+
spec.add_development_dependency("byebug") if RUBY_ENGINE == "ruby"
|
42
43
|
|
43
44
|
spec.add_dependency('jruby-pageant', '>= 1.1.1') if RUBY_PLATFORM == 'jruby'
|
44
45
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: net-ssh
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.0.
|
4
|
+
version: 4.0.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jamis Buck
|
@@ -31,48 +31,48 @@ cert_chain:
|
|
31
31
|
s/ZUKye79ELwFYKJOhjW5g725OL3hy+llhEleytwKRwgXFQBPTC4f5UkdxZVVWGH
|
32
32
|
e2C9M1m/2odPZo8h
|
33
33
|
-----END CERTIFICATE-----
|
34
|
-
date: 2016-
|
34
|
+
date: 2016-07-23 00:00:00.000000000 Z
|
35
35
|
dependencies:
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rbnacl-libsodium
|
38
38
|
requirement: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
|
-
- - "
|
40
|
+
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: 1.0.
|
42
|
+
version: 1.0.10
|
43
43
|
type: :development
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- - "
|
47
|
+
- - "~>"
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: 1.0.
|
49
|
+
version: 1.0.10
|
50
50
|
- !ruby/object:Gem::Dependency
|
51
51
|
name: rbnacl
|
52
52
|
requirement: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
|
-
- - "
|
54
|
+
- - "~>"
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: 3.
|
56
|
+
version: 3.4.0
|
57
57
|
type: :development
|
58
58
|
prerelease: false
|
59
59
|
version_requirements: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
|
-
- - "
|
61
|
+
- - "~>"
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version: 3.
|
63
|
+
version: 3.4.0
|
64
64
|
- !ruby/object:Gem::Dependency
|
65
65
|
name: bcrypt_pbkdf
|
66
66
|
requirement: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
|
-
- -
|
68
|
+
- - "~>"
|
69
69
|
- !ruby/object:Gem::Version
|
70
70
|
version: 1.0.0.alpha1
|
71
71
|
type: :development
|
72
72
|
prerelease: false
|
73
73
|
version_requirements: !ruby/object:Gem::Requirement
|
74
74
|
requirements:
|
75
|
-
- -
|
75
|
+
- - "~>"
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: 1.0.0.alpha1
|
78
78
|
- !ruby/object:Gem::Dependency
|
@@ -81,14 +81,14 @@ dependencies:
|
|
81
81
|
requirements:
|
82
82
|
- - "~>"
|
83
83
|
- !ruby/object:Gem::Version
|
84
|
-
version: 1.11
|
84
|
+
version: '1.11'
|
85
85
|
type: :development
|
86
86
|
prerelease: false
|
87
87
|
version_requirements: !ruby/object:Gem::Requirement
|
88
88
|
requirements:
|
89
89
|
- - "~>"
|
90
90
|
- !ruby/object:Gem::Version
|
91
|
-
version: 1.11
|
91
|
+
version: '1.11'
|
92
92
|
- !ruby/object:Gem::Dependency
|
93
93
|
name: rake
|
94
94
|
requirement: !ruby/object:Gem::Requirement
|
@@ -145,6 +145,20 @@ dependencies:
|
|
145
145
|
- - ">="
|
146
146
|
- !ruby/object:Gem::Version
|
147
147
|
version: 1.1.0
|
148
|
+
- !ruby/object:Gem::Dependency
|
149
|
+
name: byebug
|
150
|
+
requirement: !ruby/object:Gem::Requirement
|
151
|
+
requirements:
|
152
|
+
- - ">="
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
version: '0'
|
155
|
+
type: :development
|
156
|
+
prerelease: false
|
157
|
+
version_requirements: !ruby/object:Gem::Requirement
|
158
|
+
requirements:
|
159
|
+
- - ">="
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
version: '0'
|
148
162
|
description: 'Net::SSH: a pure-Ruby implementation of the SSH2 client protocol. It
|
149
163
|
allows you to write programs that invoke and interact with processes on remote servers,
|
150
164
|
via SSH2.'
|
@@ -176,6 +190,7 @@ files:
|
|
176
190
|
- lib/net/ssh/authentication/agent/socket.rb
|
177
191
|
- lib/net/ssh/authentication/constants.rb
|
178
192
|
- lib/net/ssh/authentication/ed25519.rb
|
193
|
+
- lib/net/ssh/authentication/ed25519_loader.rb
|
179
194
|
- lib/net/ssh/authentication/key_manager.rb
|
180
195
|
- lib/net/ssh/authentication/methods/abstract.rb
|
181
196
|
- lib/net/ssh/authentication/methods/hostbased.rb
|
metadata.gz.sig
CHANGED
Binary file
|