net-ssh 3.1.0.rc1 → 3.1.0.rc2

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: 1186f0f901ff1e9fcfa25d956c044ee53a54bee8
4
- data.tar.gz: edac339140a2f3d294dd1cd2035c53a205178634
3
+ metadata.gz: 78a803f1874f561b9d207f4be53484bb84e2f5a8
4
+ data.tar.gz: 27ac3df6351aa4c23a2f25dfdac85300d59da4a1
5
5
  SHA512:
6
- metadata.gz: ab441807f815f8e6a6ef089643dcb90e2cbcf288aedb63b28f4892ec7daf20f8a2da962e797b7ff7e7454c51f83437dd2a9f61922a982d06caa7fc2692f32fcf
7
- data.tar.gz: a393728bbe3395b1a118d43864c414f421cff17061500ad59143c25fafd1c704f7e42b137fb1ad05dde4ec43f78b1c22fe7b4d1675f2f0f639bb6d8f91774542
6
+ metadata.gz: 2282ad0af5f98206969aaa9b441cd1c653e275ffbbb2066ac3bb4cd7becc280d663812169d8d79b51da31ecb07273b93f5149f84bbc9ba30bc1346d81b7a6b65
7
+ data.tar.gz: f7ab245b518a969d6fe1634a32538daa504b930803d93b31607a343256a807547118856a6173946ae9c7b1935ea8727275d71063b66ba6cff11f816a73d6ffc0
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/.travis.yml CHANGED
@@ -1,7 +1,6 @@
1
1
  language: ruby
2
2
  sudo: false
3
3
  rvm:
4
- - 1.9.3
5
4
  - 2.0.0
6
5
  - 2.1.0
7
6
  - 2.2.0
@@ -5,29 +5,22 @@ require 'net/ssh/buffer'
5
5
 
6
6
  module Net; module SSH
7
7
 
8
- class HostKeys
9
- include Enumerable
8
+ # Represents the result of a search in known hosts
9
+ # see search_for
10
+ class HostKeys < Array
10
11
  attr_reader :host
11
12
 
12
13
  def initialize(host_keys, host, known_hosts, options = {})
13
- @host_keys = host_keys
14
+ super(host_keys)
14
15
  @host = host
15
16
  @known_hosts = known_hosts
16
17
  @options = options
17
18
  end
18
19
 
19
20
  def add_host_key(key)
20
- @known_hosts.add(@host, key, options)
21
+ @known_hosts.add(@host, key, @options)
21
22
  push(key)
22
23
  end
23
-
24
- def each(&block)
25
- @host_keys.each(&block)
26
- end
27
-
28
- def empty?
29
- @host_keys.empty?
30
- end
31
24
  end
32
25
 
33
26
  # Searches an OpenSSH-style known-host file for a given host, and returns all
@@ -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 = "rc1"
58
+ PRE = "rc2"
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
@@ -2,17 +2,17 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: net-ssh 3.1.0.rc1 ruby lib
5
+ # stub: net-ssh 3.1.0.rc2 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "net-ssh"
9
- s.version = "3.1.0.rc1"
9
+ s.version = "3.1.0.rc2"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Jamis Buck", "Delano Mandelbaum", "Mikl\u{f3}s Fazekas"]
14
14
  s.cert_chain = ["net-ssh-public_cert.pem"]
15
- s.date = "2016-03-12"
15
+ s.date = "2016-03-15"
16
16
  s.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."
17
17
  s.email = "net-ssh@solutious.com"
18
18
  s.extra_rdoc_files = [
@@ -2,8 +2,7 @@ require 'common'
2
2
 
3
3
  class TestKnownHosts < Test::Unit::TestCase
4
4
 
5
- def perform_test(hostfile)
6
- source = File.join(File.dirname(__FILE__), hostfile)
5
+ def perform_test(source)
7
6
  kh = Net::SSH::KnownHosts.new(source)
8
7
  keys = kh.keys_for("github.com")
9
8
  assert_equal(1, keys.count)
@@ -11,11 +10,57 @@ class TestKnownHosts < Test::Unit::TestCase
11
10
  end
12
11
 
13
12
  def test_key_for_when_all_hosts_are_recognized
14
- perform_test("known_hosts/github")
13
+ perform_test(path("known_hosts/github"))
15
14
  end
16
15
 
17
16
  def test_key_for_when_an_host_hash_is_recognized
18
- perform_test("known_hosts/github_hash")
17
+ perform_test(path("known_hosts/github_hash"))
19
18
  end
20
19
 
20
+ def test_missing_then_add
21
+ Tempfile.open('github') do |f|
22
+ f.write(File.read(path("known_hosts/github")))
23
+ kh = Net::SSH::KnownHosts.new(f.path)
24
+ keys = kh.keys_for("github2.com")
25
+ assert_equal(0, keys.count)
26
+ assert_equal([], keys.to_a)
27
+
28
+ kh.add('github2.com',rsa_key)
29
+ keys2 = kh.keys_for("github2.com")
30
+ assert_equal([rsa_key.to_blob], keys2.to_a.map(&:to_blob))
31
+ end
32
+ end
33
+
34
+ def test_search_for
35
+ options = {user_known_hosts_file: path("known_hosts/github")}
36
+ keys = Net::SSH::KnownHosts.search_for('github.com',options)
37
+ assert_equal(["ssh-rsa"], keys.map(&:ssh_type))
38
+ end
39
+
40
+ def test_search_for_then_add
41
+ Tempfile.open('github') do |f|
42
+ f.write(File.read(path("known_hosts/github")))
43
+ options = {user_known_hosts_file: f.path}
44
+ keys = Net::SSH::KnownHosts.search_for('github2.com',options)
45
+ assert_equal(0, keys.count)
46
+
47
+ keys.add_host_key(rsa_key)
48
+
49
+ assert_equal([rsa_key.to_blob], keys.map(&:to_blob))
50
+ keys = Net::SSH::KnownHosts.search_for('github2.com',options)
51
+ assert_equal([rsa_key.to_blob], keys.map(&:to_blob))
52
+ end
53
+ end
54
+
55
+
56
+ def path(relative_path)
57
+ File.join(File.dirname(__FILE__), "known_hosts/github")
58
+ end
59
+
60
+ def rsa_key
61
+ key = OpenSSL::PKey::RSA.new
62
+ key.e = 0xffeeddccbbaa9988
63
+ key.n = 0x7766554433221100
64
+ key
65
+ end
21
66
  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: 3.1.0.rc1
4
+ version: 3.1.0.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jamis Buck
@@ -31,7 +31,7 @@ cert_chain:
31
31
  s/ZUKye79ELwFYKJOhjW5g725OL3hy+llhEleytwKRwgXFQBPTC4f5UkdxZVVWGH
32
32
  e2C9M1m/2odPZo8h
33
33
  -----END CERTIFICATE-----
34
- date: 2016-03-12 00:00:00.000000000 Z
34
+ date: 2016-03-15 00:00:00.000000000 Z
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: test-unit
metadata.gz.sig CHANGED
Binary file