hrr_rb_ssh 0.1.2 → 0.1.3
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 +4 -4
- data/demo/server.rb +13 -1
- data/lib/hrr_rb_ssh/authentication/method/none/context.rb +1 -1
- data/lib/hrr_rb_ssh/authentication/method/none.rb +4 -4
- data/lib/hrr_rb_ssh/authentication/method/password/context.rb +1 -1
- data/lib/hrr_rb_ssh/authentication/method/password.rb +4 -4
- data/lib/hrr_rb_ssh/authentication/method/publickey/algorithm/codable.rb +5 -5
- data/lib/hrr_rb_ssh/authentication/method/publickey/algorithm/ssh_dss.rb +29 -18
- data/lib/hrr_rb_ssh/authentication/method/publickey/algorithm/ssh_rsa.rb +27 -16
- data/lib/hrr_rb_ssh/authentication/method/publickey/algorithm.rb +7 -13
- data/lib/hrr_rb_ssh/authentication/method/publickey/context.rb +1 -1
- data/lib/hrr_rb_ssh/authentication/method/publickey.rb +5 -5
- data/lib/hrr_rb_ssh/authentication/method.rb +6 -12
- data/lib/hrr_rb_ssh/authentication.rb +1 -1
- data/lib/hrr_rb_ssh/connection/channel/channel_type/session/request_type/env/context.rb +2 -2
- data/lib/hrr_rb_ssh/connection/channel/channel_type/session/request_type/env.rb +2 -3
- data/lib/hrr_rb_ssh/connection/channel/channel_type/session/request_type/exec/context.rb +2 -2
- data/lib/hrr_rb_ssh/connection/channel/channel_type/session/request_type/exec.rb +2 -3
- data/lib/hrr_rb_ssh/connection/channel/channel_type/session/request_type/pty_req/context.rb +2 -2
- data/lib/hrr_rb_ssh/connection/channel/channel_type/session/request_type/pty_req.rb +2 -3
- data/lib/hrr_rb_ssh/connection/channel/channel_type/session/request_type/shell/context.rb +2 -2
- data/lib/hrr_rb_ssh/connection/channel/channel_type/session/request_type/shell.rb +2 -3
- data/lib/hrr_rb_ssh/connection/channel/channel_type/session/request_type/subsystem/context.rb +2 -2
- data/lib/hrr_rb_ssh/connection/channel/channel_type/session/request_type/subsystem.rb +2 -3
- data/lib/hrr_rb_ssh/connection/channel/channel_type/session/request_type.rb +16 -11
- data/lib/hrr_rb_ssh/connection/channel/channel_type/session.rb +1 -15
- data/lib/hrr_rb_ssh/connection/channel/channel_type.rb +15 -10
- data/lib/hrr_rb_ssh/connection/channel.rb +1 -1
- data/lib/hrr_rb_ssh/data_type.rb +153 -0
- data/lib/hrr_rb_ssh/message/001_ssh_msg_disconnect.rb +6 -6
- data/lib/hrr_rb_ssh/message/002_ssh_msg_ignore.rb +4 -4
- data/lib/hrr_rb_ssh/message/003_ssh_msg_unimplemented.rb +4 -4
- data/lib/hrr_rb_ssh/message/004_ssh_msg_debug.rb +6 -6
- data/lib/hrr_rb_ssh/message/005_ssh_msg_service_request.rb +4 -4
- data/lib/hrr_rb_ssh/message/006_ssh_msg_service_accept.rb +4 -4
- data/lib/hrr_rb_ssh/message/020_ssh_msg_kexinit.rb +31 -31
- data/lib/hrr_rb_ssh/message/021_ssh_msg_newkeys.rb +3 -3
- data/lib/hrr_rb_ssh/message/030_ssh_msg_kexdh_init.rb +4 -4
- data/lib/hrr_rb_ssh/message/031_ssh_msg_kexdh_reply.rb +6 -6
- data/lib/hrr_rb_ssh/message/050_ssh_msg_userauth_request.rb +18 -18
- data/lib/hrr_rb_ssh/message/051_ssh_msg_userauth_failure.rb +5 -5
- data/lib/hrr_rb_ssh/message/052_ssh_msg_userauth_success.rb +3 -3
- data/lib/hrr_rb_ssh/message/060_ssh_msg_userauth_pk_ok.rb +5 -5
- data/lib/hrr_rb_ssh/message/080_ssh_msg_global_request.rb +13 -13
- data/lib/hrr_rb_ssh/message/081_ssh_msg_request_success.rb +6 -6
- data/lib/hrr_rb_ssh/message/082_ssh_msg_request_failure.rb +3 -3
- data/lib/hrr_rb_ssh/message/090_ssh_msg_channel_open.rb +25 -25
- data/lib/hrr_rb_ssh/message/091_ssh_msg_channel_open_confirmation.rb +25 -25
- data/lib/hrr_rb_ssh/message/092_ssh_msg_channel_open_failure.rb +7 -7
- data/lib/hrr_rb_ssh/message/093_ssh_msg_channel_window_adjust.rb +5 -5
- data/lib/hrr_rb_ssh/message/094_ssh_msg_channel_data.rb +5 -5
- data/lib/hrr_rb_ssh/message/095_ssh_msg_channel_extended_data.rb +6 -6
- data/lib/hrr_rb_ssh/message/096_ssh_msg_channel_eof.rb +4 -4
- data/lib/hrr_rb_ssh/message/097_ssh_msg_channel_close.rb +4 -4
- data/lib/hrr_rb_ssh/message/098_ssh_msg_channel_request.rb +53 -53
- data/lib/hrr_rb_ssh/message/099_ssh_msg_channel_success.rb +4 -4
- data/lib/hrr_rb_ssh/message/100_ssh_msg_channel_failure.rb +4 -4
- data/lib/hrr_rb_ssh/message/codable.rb +2 -3
- data/lib/hrr_rb_ssh/subclass_with_preference_listable.rb +29 -0
- data/lib/hrr_rb_ssh/transport/compression_algorithm/functionable.rb +4 -4
- data/lib/hrr_rb_ssh/transport/compression_algorithm/none.rb +1 -6
- data/lib/hrr_rb_ssh/transport/compression_algorithm/unfunctionable.rb +4 -0
- data/lib/hrr_rb_ssh/transport/compression_algorithm/zlib.rb +1 -6
- data/lib/hrr_rb_ssh/transport/compression_algorithm.rb +5 -11
- data/lib/hrr_rb_ssh/transport/encryption_algorithm/aes128_cbc.rb +1 -2
- data/lib/hrr_rb_ssh/transport/encryption_algorithm/aes128_ctr.rb +1 -2
- data/lib/hrr_rb_ssh/transport/encryption_algorithm/aes192_cbc.rb +1 -2
- data/lib/hrr_rb_ssh/transport/encryption_algorithm/aes192_ctr.rb +1 -2
- data/lib/hrr_rb_ssh/transport/encryption_algorithm/aes256_cbc.rb +1 -2
- data/lib/hrr_rb_ssh/transport/encryption_algorithm/aes256_ctr.rb +1 -2
- data/lib/hrr_rb_ssh/transport/encryption_algorithm/arcfour.rb +1 -2
- data/lib/hrr_rb_ssh/transport/encryption_algorithm/blowfish_cbc.rb +1 -2
- data/lib/hrr_rb_ssh/transport/encryption_algorithm/cast128_cbc.rb +1 -2
- data/lib/hrr_rb_ssh/transport/encryption_algorithm/functionable.rb +1 -2
- data/lib/hrr_rb_ssh/transport/encryption_algorithm/none.rb +1 -6
- data/lib/hrr_rb_ssh/transport/encryption_algorithm/three_des_cbc.rb +1 -2
- data/lib/hrr_rb_ssh/transport/encryption_algorithm/unfunctionable.rb +6 -0
- data/lib/hrr_rb_ssh/transport/encryption_algorithm.rb +5 -11
- data/lib/hrr_rb_ssh/transport/kex_algorithm/diffie_hellman.rb +14 -14
- data/lib/hrr_rb_ssh/transport/kex_algorithm/diffie_hellman_group14_sha1.rb +2 -5
- data/lib/hrr_rb_ssh/transport/kex_algorithm/diffie_hellman_group1_sha1.rb +2 -5
- data/lib/hrr_rb_ssh/transport/kex_algorithm.rb +5 -10
- data/lib/hrr_rb_ssh/transport/mac_algorithm/functionable.rb +2 -3
- data/lib/hrr_rb_ssh/transport/mac_algorithm/hmac_md5.rb +3 -5
- data/lib/hrr_rb_ssh/transport/mac_algorithm/hmac_md5_96.rb +3 -5
- data/lib/hrr_rb_ssh/transport/mac_algorithm/hmac_sha1.rb +3 -5
- data/lib/hrr_rb_ssh/transport/mac_algorithm/hmac_sha1_96.rb +3 -5
- data/lib/hrr_rb_ssh/transport/mac_algorithm/none.rb +2 -8
- data/lib/hrr_rb_ssh/transport/mac_algorithm/unfunctionable.rb +4 -0
- data/lib/hrr_rb_ssh/transport/mac_algorithm.rb +5 -11
- data/lib/hrr_rb_ssh/transport/server_host_key_algorithm/ssh_dss.rb +14 -13
- data/lib/hrr_rb_ssh/transport/server_host_key_algorithm/ssh_rsa.rb +12 -11
- data/lib/hrr_rb_ssh/transport/server_host_key_algorithm.rb +5 -10
- data/lib/hrr_rb_ssh/transport.rb +147 -108
- data/lib/hrr_rb_ssh/version.rb +1 -1
- metadata +4 -12
- data/lib/hrr_rb_ssh/authentication/method/method.rb +0 -34
- data/lib/hrr_rb_ssh/authentication/method/publickey/algorithm/algorithm.rb +0 -41
- data/lib/hrr_rb_ssh/connection/channel/channel_type/channel_type.rb +0 -30
- data/lib/hrr_rb_ssh/connection/channel/channel_type/session/request_type/request_type.rb +0 -34
- data/lib/hrr_rb_ssh/transport/compression_algorithm/compression_algorithm.rb +0 -34
- data/lib/hrr_rb_ssh/transport/data_type.rb +0 -163
- data/lib/hrr_rb_ssh/transport/encryption_algorithm/encryption_algorithm.rb +0 -34
- data/lib/hrr_rb_ssh/transport/kex_algorithm/kex_algorithm.rb +0 -34
- data/lib/hrr_rb_ssh/transport/mac_algorithm/mac_algorithm.rb +0 -34
- data/lib/hrr_rb_ssh/transport/server_host_key_algorithm/server_host_key_algorithm.rb +0 -34
@@ -1,34 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
# vim: et ts=2 sw=2
|
3
|
-
|
4
|
-
require 'hrr_rb_ssh/logger'
|
5
|
-
|
6
|
-
module HrrRbSsh
|
7
|
-
class Authentication
|
8
|
-
module Method
|
9
|
-
class Method
|
10
|
-
@@list = Array.new
|
11
|
-
|
12
|
-
def self.inherited klass
|
13
|
-
@@list.push klass
|
14
|
-
end
|
15
|
-
|
16
|
-
def self.list
|
17
|
-
@@list
|
18
|
-
end
|
19
|
-
|
20
|
-
def self.name_list
|
21
|
-
@@list.map{ |klass| klass::NAME }
|
22
|
-
end
|
23
|
-
|
24
|
-
def self.[] key
|
25
|
-
@@list.find{ |klass| key == klass::NAME }
|
26
|
-
end
|
27
|
-
|
28
|
-
def initialize options
|
29
|
-
@logger = HrrRbSsh::Logger.new self.class.name
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,41 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
# vim: et ts=2 sw=2
|
3
|
-
|
4
|
-
require 'hrr_rb_ssh/logger'
|
5
|
-
require 'hrr_rb_ssh/authentication/method/publickey/algorithm/codable'
|
6
|
-
|
7
|
-
module HrrRbSsh
|
8
|
-
class Authentication
|
9
|
-
module Method
|
10
|
-
class Publickey
|
11
|
-
module Algorithm
|
12
|
-
class Algorithm
|
13
|
-
@@list = Array.new
|
14
|
-
|
15
|
-
def self.inherited klass
|
16
|
-
@@list.push klass
|
17
|
-
end
|
18
|
-
|
19
|
-
def self.list
|
20
|
-
@@list
|
21
|
-
end
|
22
|
-
|
23
|
-
def self.name_list
|
24
|
-
@@list.map{ |klass| klass::NAME }
|
25
|
-
end
|
26
|
-
|
27
|
-
def self.[] key
|
28
|
-
@@list.find{ |klass| key == klass::NAME }
|
29
|
-
end
|
30
|
-
|
31
|
-
def initialize
|
32
|
-
@logger = HrrRbSsh::Logger.new self.class.name
|
33
|
-
end
|
34
|
-
|
35
|
-
include Codable
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
# vim: et ts=2 sw=2
|
3
|
-
|
4
|
-
module HrrRbSsh
|
5
|
-
class Connection
|
6
|
-
class Channel
|
7
|
-
module ChannelType
|
8
|
-
class ChannelType
|
9
|
-
@@list = Array.new
|
10
|
-
|
11
|
-
def self.inherited klass
|
12
|
-
@@list.push klass
|
13
|
-
end
|
14
|
-
|
15
|
-
def self.list
|
16
|
-
@@list
|
17
|
-
end
|
18
|
-
|
19
|
-
def self.name_list
|
20
|
-
@@list.map{ |klass| klass::NAME }
|
21
|
-
end
|
22
|
-
|
23
|
-
def self.[] key
|
24
|
-
@@list.find{ |klass| key == klass::NAME }
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
# vim: et ts=2 sw=2
|
3
|
-
|
4
|
-
module HrrRbSsh
|
5
|
-
class Connection
|
6
|
-
class Channel
|
7
|
-
module ChannelType
|
8
|
-
class Session
|
9
|
-
module RequestType
|
10
|
-
class RequestType
|
11
|
-
@@list = Array.new
|
12
|
-
|
13
|
-
def self.inherited klass
|
14
|
-
@@list.push klass
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.list
|
18
|
-
@@list
|
19
|
-
end
|
20
|
-
|
21
|
-
def self.name_list
|
22
|
-
@@list.map{ |klass| klass::NAME }
|
23
|
-
end
|
24
|
-
|
25
|
-
def self.[] key
|
26
|
-
@@list.find{ |klass| key == klass::NAME }
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
# vim: et ts=2 sw=2
|
3
|
-
|
4
|
-
require 'hrr_rb_ssh/logger'
|
5
|
-
|
6
|
-
module HrrRbSsh
|
7
|
-
class Transport
|
8
|
-
class CompressionAlgorithm
|
9
|
-
class CompressionAlgorithm
|
10
|
-
@@list = Array.new
|
11
|
-
|
12
|
-
def self.inherited klass
|
13
|
-
@@list.push klass
|
14
|
-
end
|
15
|
-
|
16
|
-
def self.list
|
17
|
-
@@list
|
18
|
-
end
|
19
|
-
|
20
|
-
def self.name_list
|
21
|
-
@@list.map{ |klass| klass::NAME }
|
22
|
-
end
|
23
|
-
|
24
|
-
def self.[] key
|
25
|
-
@@list.find{ |klass| key == klass::NAME }
|
26
|
-
end
|
27
|
-
|
28
|
-
def initialize direction
|
29
|
-
@logger = HrrRbSsh::Logger.new self.class.name
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,163 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
# vim: et ts=2 sw=2
|
3
|
-
|
4
|
-
require 'openssl'
|
5
|
-
|
6
|
-
require 'hrr_rb_ssh/logger'
|
7
|
-
|
8
|
-
module HrrRbSsh
|
9
|
-
class Transport
|
10
|
-
module DataType
|
11
|
-
def self.[] key
|
12
|
-
case key
|
13
|
-
when 'byte'
|
14
|
-
Byte
|
15
|
-
when 'boolean'
|
16
|
-
Boolean
|
17
|
-
when 'uint32'
|
18
|
-
Uint32
|
19
|
-
when 'uint64'
|
20
|
-
Uint64
|
21
|
-
when 'string'
|
22
|
-
String
|
23
|
-
when 'mpint'
|
24
|
-
Mpint
|
25
|
-
when 'name-list'
|
26
|
-
NameList
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
class Byte
|
31
|
-
def self.encode arg
|
32
|
-
case arg
|
33
|
-
when 0x00..0xff
|
34
|
-
[arg].pack("C")
|
35
|
-
else
|
36
|
-
raise
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
def self.decode io
|
41
|
-
io.read(1).unpack("C")[0]
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
class Boolean
|
46
|
-
def self.encode arg
|
47
|
-
case arg
|
48
|
-
when false
|
49
|
-
[0].pack("C")
|
50
|
-
when true
|
51
|
-
[1].pack("C")
|
52
|
-
else
|
53
|
-
raise
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
def self.decode io
|
58
|
-
if 0 == io.read(1).unpack("C")[0]
|
59
|
-
false
|
60
|
-
else
|
61
|
-
true
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
class Uint32
|
67
|
-
def self.encode arg
|
68
|
-
case arg
|
69
|
-
when 0x0000_0000..0xffff_ffff
|
70
|
-
[arg].pack("N")
|
71
|
-
else
|
72
|
-
raise
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
def self.decode io
|
77
|
-
io.read(4).unpack("N")[0]
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
class Uint64
|
82
|
-
def self.encode arg
|
83
|
-
case arg
|
84
|
-
when 0x0000_0000_0000_0000..0xffff_ffff_ffff_ffff
|
85
|
-
[arg >> 32].pack("N") + [arg & 0x0000_0000_ffff_ffff].pack("N")
|
86
|
-
else
|
87
|
-
raise
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
def self.decode io
|
92
|
-
(io.read(4).unpack("N")[0] << 32) + (io.read(4).unpack("N")[0])
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
class String
|
97
|
-
def self.encode arg
|
98
|
-
raise unless arg.kind_of? ::String
|
99
|
-
raise if arg.length > 0xffff_ffff
|
100
|
-
[arg.length, arg].pack("Na*")
|
101
|
-
end
|
102
|
-
|
103
|
-
def self.decode io
|
104
|
-
length = io.read(4).unpack("N")[0]
|
105
|
-
io.read(length).unpack("a*")[0]
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
class Mpint
|
110
|
-
def self.encode arg
|
111
|
-
raise unless arg.kind_of? ::Integer
|
112
|
-
raise if arg.size > 0xffff_ffff
|
113
|
-
bn = ::OpenSSL::BN.new(arg)
|
114
|
-
|
115
|
-
if bn < 0
|
116
|
-
# get 2's complement
|
117
|
-
tc = bn.to_i & ((1 << (bn.num_bytes * 8)) - 1)
|
118
|
-
# get hex representation
|
119
|
-
hex_str = "%x" % tc
|
120
|
-
|
121
|
-
if tc[(bn.num_bytes * 8) - 1] == 1
|
122
|
-
[bn.num_bytes, hex_str].pack("NH*")
|
123
|
-
else
|
124
|
-
[bn.num_bytes + 1, "ff" + hex_str].pack("NH*")
|
125
|
-
end
|
126
|
-
else
|
127
|
-
bn.to_s(0)
|
128
|
-
end
|
129
|
-
end
|
130
|
-
|
131
|
-
def self.decode io
|
132
|
-
length = io.read(4).unpack("N")[0]
|
133
|
-
hex_str = io.read(length).unpack("H*")[0]
|
134
|
-
# get temporal integer value
|
135
|
-
value = hex_str.hex
|
136
|
-
|
137
|
-
if length == 0
|
138
|
-
0
|
139
|
-
elsif value[(length * 8) - 1] == 0
|
140
|
-
value
|
141
|
-
else
|
142
|
-
num_bytes = if hex_str.start_with?("ff") then length - 1 else length end
|
143
|
-
- (((~ value) & ((1 << (num_bytes * 8)) - 1)) + 1)
|
144
|
-
end
|
145
|
-
end
|
146
|
-
end
|
147
|
-
|
148
|
-
class NameList
|
149
|
-
def self.encode arg
|
150
|
-
raise unless arg.kind_of? Array
|
151
|
-
raise unless (arg.map(&:class) - [::String]).empty?
|
152
|
-
raise if arg.join(',').length > 0xffff_ffff
|
153
|
-
[arg.join(',').length, arg.join(',')].pack("Na*")
|
154
|
-
end
|
155
|
-
|
156
|
-
def self.decode io
|
157
|
-
length = io.read(4).unpack("N")[0]
|
158
|
-
io.read(length).unpack("a*")[0].split(',')
|
159
|
-
end
|
160
|
-
end
|
161
|
-
end
|
162
|
-
end
|
163
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
# vim: et ts=2 sw=2
|
3
|
-
|
4
|
-
require 'hrr_rb_ssh/logger'
|
5
|
-
|
6
|
-
module HrrRbSsh
|
7
|
-
class Transport
|
8
|
-
class EncryptionAlgorithm
|
9
|
-
class EncryptionAlgorithm
|
10
|
-
@@list = Array.new
|
11
|
-
|
12
|
-
def self.inherited klass
|
13
|
-
@@list.push klass
|
14
|
-
end
|
15
|
-
|
16
|
-
def self.list
|
17
|
-
@@list
|
18
|
-
end
|
19
|
-
|
20
|
-
def self.name_list
|
21
|
-
@@list.map{ |klass| klass::NAME }
|
22
|
-
end
|
23
|
-
|
24
|
-
def self.[] key
|
25
|
-
@@list.find{ |klass| key == klass::NAME }
|
26
|
-
end
|
27
|
-
|
28
|
-
def initialize direction, iv, key
|
29
|
-
@logger = HrrRbSsh::Logger.new self.class.name
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
# vim: et ts=2 sw=2
|
3
|
-
|
4
|
-
require 'hrr_rb_ssh/logger'
|
5
|
-
|
6
|
-
module HrrRbSsh
|
7
|
-
class Transport
|
8
|
-
class KexAlgorithm
|
9
|
-
class KexAlgorithm
|
10
|
-
@@list = Array.new
|
11
|
-
|
12
|
-
def self.inherited klass
|
13
|
-
@@list.push klass
|
14
|
-
end
|
15
|
-
|
16
|
-
def self.list
|
17
|
-
@@list
|
18
|
-
end
|
19
|
-
|
20
|
-
def self.name_list
|
21
|
-
@@list.map{ |klass| klass::NAME }
|
22
|
-
end
|
23
|
-
|
24
|
-
def self.[] key
|
25
|
-
@@list.find{ |klass| key == klass::NAME }
|
26
|
-
end
|
27
|
-
|
28
|
-
def initialize
|
29
|
-
@logger = HrrRbSsh::Logger.new self.class.name
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
# vim: et ts=2 sw=2
|
3
|
-
|
4
|
-
require 'hrr_rb_ssh/logger'
|
5
|
-
|
6
|
-
module HrrRbSsh
|
7
|
-
class Transport
|
8
|
-
class MacAlgorithm
|
9
|
-
class MacAlgorithm
|
10
|
-
@@list = Array.new
|
11
|
-
|
12
|
-
def self.inherited klass
|
13
|
-
@@list.push klass
|
14
|
-
end
|
15
|
-
|
16
|
-
def self.list
|
17
|
-
@@list
|
18
|
-
end
|
19
|
-
|
20
|
-
def self.name_list
|
21
|
-
@@list.map{ |klass| klass::NAME }
|
22
|
-
end
|
23
|
-
|
24
|
-
def self.[] key
|
25
|
-
@@list.find{ |klass| key == klass::NAME }
|
26
|
-
end
|
27
|
-
|
28
|
-
def initialize key
|
29
|
-
@logger = HrrRbSsh::Logger.new self.class.name
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
# vim: et ts=2 sw=2
|
3
|
-
|
4
|
-
require 'hrr_rb_ssh/logger'
|
5
|
-
|
6
|
-
module HrrRbSsh
|
7
|
-
class Transport
|
8
|
-
class ServerHostKeyAlgorithm
|
9
|
-
class ServerHostKeyAlgorithm
|
10
|
-
@@list = Array.new
|
11
|
-
|
12
|
-
def self.inherited klass
|
13
|
-
@@list.push klass
|
14
|
-
end
|
15
|
-
|
16
|
-
def self.list
|
17
|
-
@@list
|
18
|
-
end
|
19
|
-
|
20
|
-
def self.name_list
|
21
|
-
@@list.map{ |klass| klass::NAME }
|
22
|
-
end
|
23
|
-
|
24
|
-
def self.[] key
|
25
|
-
@@list.find{ |klass| key == klass::NAME }
|
26
|
-
end
|
27
|
-
|
28
|
-
def initialize
|
29
|
-
@logger = HrrRbSsh::Logger.new self.class.name
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|