hrr_rb_ssh 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|