net-ssh 4.0.0.alpha4 → 4.0.0.beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 605f2f4e21417ab58a6a2a595ddd3025bcc99316
4
- data.tar.gz: 74fc3fd5555a76d221673d6d304fb5558d80795f
3
+ metadata.gz: d025eee7824e27e0335a51be6851449e02c0b5e0
4
+ data.tar.gz: 26ec72c6a40090938e90a01f8bf038802aff27f7
5
5
  SHA512:
6
- metadata.gz: 8bde41de1967a8b9b4c1bda6b77112fdaa4e2c22b917e3eb08f0cfd7035863ed1fccf46a07ad9de176b5f8f943c730bd4379317a3fd02997619b3abb8a2ad4e5
7
- data.tar.gz: 24f50e2aa4254bcc22b961dd5a8acbf75649658a0f06d3afe9e32b5ef3e8fa88ef7716aa774b06c1a86b078377d33dbfe86ef14c63211fd44c16a79f782f6f72
6
+ metadata.gz: fc0fffec6a7fc76d68155dc5016c04f2b484d51a2537c4f4c822427e16f6d8ccb8fe9ce822f6a855905e06f480152d204b12be56f7b01740cb7fe9acbd35d080
7
+ data.tar.gz: 6adc48f5d3eae3f8396d2ccfb8605b74ab578114a98a662ff1d159ff1e0c6e728ae693338b2d465204b01db09e8538467edd82e070158c1286b42e7e79e07d43
@@ -1 +1,2 @@
1
- "��H��h_�(C�gj�]�ޜ\�rp���Y�Z�����E����C���N�~�=�[V�-�x[��$��|g�,n�I�b�_/���"���9�f��[�?v8�P"�[�E�J7��ݔ��zԼ��?��G�� �±��d1I$ �8R�i���˓30O����vO�J��Ǩ|w�:>:��I��(��0�_����-W����.�W�(�
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
@@ -7,7 +7,7 @@ rvm:
7
7
  - 2.1
8
8
  - 2.2
9
9
  - 2.3.0
10
- - jruby-9.0.5.0
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.0.5.0
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.0.5.0
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.0.5.0
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:
@@ -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]
@@ -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=./Gemfile.norbnacl bundle _1.11.2_ install --retry=3
13
+ - SET BUNDLE_GEMFILE=Gemfile.norbnacl
14
+ - bundle _1.11.2_ install --retry=3
14
15
 
15
16
  test_script:
16
- - BUNDLE_GEMFILE=./Gemfile.norbnacl bundle _1.11.2_ exec rake test
17
+ - SET BUNDLE_GEMFILE=Gemfile.norbnacl
18
+ - bundle _1.11.2_ exec rake test
17
19
 
18
20
  build: off
@@ -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', '~> 1.0.10'
2
- gem 'rbnacl', '~> 3.3.0'
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(:string,"ssh-ed25519",:string,@verify_key.to_bytes).to_s
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
@@ -147,7 +147,7 @@ module Net
147
147
 
148
148
  if info[:key]
149
149
  return Net::SSH::Buffer.from(:string, identity.ssh_type,
150
- :string, info[:key].ssh_do_sign(data.to_s)).to_s
150
+ :mstring, info[:key].ssh_do_sign(data.to_s)).to_s
151
151
  end
152
152
 
153
153
  if info[:from] == :agent
@@ -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.ptr.to_i)
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.
@@ -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 = ED25519::PubKey.read_keyblob(self)
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.
@@ -390,6 +390,7 @@ module Net; module SSH; module Connection
390
390
  channel.wait
391
391
 
392
392
  channel[:result] ||= "" unless block
393
+ channel[:result] &&= channel[:result].force_encoding("UTF-8") unless block
393
394
 
394
395
  return channel[:result]
395
396
  end
@@ -1,10 +1,7 @@
1
1
  require 'net/ssh/transport/openssl'
2
2
  require 'net/ssh/prompt'
3
3
 
4
- begin
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
- return ->(key_data, passphrase) { ED25519::PrivKey.read(key_data, passphrase) }, ArgumentError
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
- :string, [kex, host_key, encryption, encryption, hmac, hmac],
291
- :string, [compression, compression, language, language],
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
- if need_bits < MINIMUM_BITS
27
- need_bits = MINIMUM_BITS
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, MINIMUM_BITS,
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, :string, ecdh.public_key.to_bn.to_s(2))
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
- :string, self.public_key.to_bn.to_s(2)).to_s
188
+ :mstring, self.public_key.to_bn.to_s(2)).to_s
189
189
  @blob
190
190
  end
191
191
 
@@ -192,7 +192,7 @@ module Net; module SSH; module Transport
192
192
 
193
193
  def update_next_iv(data, reset=false)
194
194
  @next_iv << data
195
- @next_iv = @next_iv[-cipher.iv_len..-1]
195
+ @next_iv = @next_iv[@next_iv.size-cipher.iv_len..-1]
196
196
 
197
197
  if reset
198
198
  cipher.reset
@@ -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 = "alpha4"
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)
@@ -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", ">= 1.0.2")
33
- spec.add_development_dependency("rbnacl", ">= 3.1.2")
34
- spec.add_development_dependency("bcrypt_pbkdf", "= 1.0.0.alpha1") unless RUBY_PLATFORM == "java"
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.2"
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.alpha4
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-05-02 00:00:00.000000000 Z
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.2
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.2
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.1.2
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.1.2
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.2
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.2
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