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 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