hrr_rb_ssh 0.4.0.pre2 → 0.4.0.pre3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/hrr_rb_ssh/algorithm/publickey/ecdsa_sha2/ecdsa_signature_blob.rb +2 -4
- data/lib/hrr_rb_ssh/algorithm/publickey/ecdsa_sha2/public_key_blob.rb +2 -4
- data/lib/hrr_rb_ssh/algorithm/publickey/ecdsa_sha2/signature.rb +2 -4
- data/lib/hrr_rb_ssh/algorithm/publickey/ecdsa_sha2.rb +6 -6
- data/lib/hrr_rb_ssh/algorithm/publickey/ssh_dss/public_key_blob.rb +2 -4
- data/lib/hrr_rb_ssh/algorithm/publickey/ssh_dss/signature.rb +2 -4
- data/lib/hrr_rb_ssh/algorithm/publickey/ssh_dss.rb +4 -4
- data/lib/hrr_rb_ssh/algorithm/publickey/ssh_rsa/public_key_blob.rb +2 -4
- data/lib/hrr_rb_ssh/algorithm/publickey/ssh_rsa/signature.rb +2 -4
- data/lib/hrr_rb_ssh/algorithm/publickey/ssh_rsa.rb +4 -4
- data/lib/hrr_rb_ssh/authentication/method/keyboard_interactive/info_request.rb +1 -1
- data/lib/hrr_rb_ssh/authentication/method/keyboard_interactive/info_response.rb +1 -1
- data/lib/hrr_rb_ssh/authentication/method/keyboard_interactive.rb +3 -3
- data/lib/hrr_rb_ssh/authentication/method/none.rb +1 -1
- data/lib/hrr_rb_ssh/authentication/method/password.rb +1 -1
- data/lib/hrr_rb_ssh/authentication/method/publickey/algorithm/functionable.rb +2 -2
- data/lib/hrr_rb_ssh/authentication/method/publickey/algorithm/signature_blob.rb +2 -4
- data/lib/hrr_rb_ssh/authentication/method/publickey.rb +3 -3
- data/lib/hrr_rb_ssh/authentication.rb +4 -4
- data/lib/hrr_rb_ssh/codable.rb +11 -19
- data/lib/hrr_rb_ssh/connection/channel.rb +15 -15
- data/lib/hrr_rb_ssh/connection.rb +14 -14
- data/lib/hrr_rb_ssh/message/001_ssh_msg_disconnect.rb +2 -4
- data/lib/hrr_rb_ssh/message/002_ssh_msg_ignore.rb +2 -4
- data/lib/hrr_rb_ssh/message/003_ssh_msg_unimplemented.rb +2 -4
- data/lib/hrr_rb_ssh/message/004_ssh_msg_debug.rb +2 -4
- data/lib/hrr_rb_ssh/message/005_ssh_msg_service_request.rb +2 -4
- data/lib/hrr_rb_ssh/message/006_ssh_msg_service_accept.rb +2 -4
- data/lib/hrr_rb_ssh/message/020_ssh_msg_kexinit.rb +2 -4
- data/lib/hrr_rb_ssh/message/021_ssh_msg_newkeys.rb +2 -4
- data/lib/hrr_rb_ssh/message/030_ssh_msg_kex_dh_gex_request_old.rb +2 -4
- data/lib/hrr_rb_ssh/message/030_ssh_msg_kexdh_init.rb +2 -4
- data/lib/hrr_rb_ssh/message/030_ssh_msg_kexecdh_init.rb +2 -4
- data/lib/hrr_rb_ssh/message/031_ssh_msg_kex_dh_gex_group.rb +2 -4
- data/lib/hrr_rb_ssh/message/031_ssh_msg_kexdh_reply.rb +2 -4
- data/lib/hrr_rb_ssh/message/031_ssh_msg_kexecdh_reply.rb +2 -4
- data/lib/hrr_rb_ssh/message/032_ssh_msg_kex_dh_gex_init.rb +2 -4
- data/lib/hrr_rb_ssh/message/033_ssh_msg_kex_dh_gex_reply.rb +2 -4
- data/lib/hrr_rb_ssh/message/034_ssh_msg_kex_dh_gex_request.rb +2 -4
- data/lib/hrr_rb_ssh/message/050_ssh_msg_userauth_request.rb +2 -4
- data/lib/hrr_rb_ssh/message/051_ssh_msg_userauth_failure.rb +2 -4
- data/lib/hrr_rb_ssh/message/052_ssh_msg_userauth_success.rb +2 -4
- data/lib/hrr_rb_ssh/message/060_ssh_msg_userauth_info_request.rb +2 -4
- data/lib/hrr_rb_ssh/message/060_ssh_msg_userauth_pk_ok.rb +2 -4
- data/lib/hrr_rb_ssh/message/061_ssh_msg_userauth_info_response.rb +2 -4
- data/lib/hrr_rb_ssh/message/080_ssh_msg_global_request.rb +2 -4
- data/lib/hrr_rb_ssh/message/081_ssh_msg_request_success.rb +2 -4
- data/lib/hrr_rb_ssh/message/082_ssh_msg_request_failure.rb +2 -4
- data/lib/hrr_rb_ssh/message/090_ssh_msg_channel_open.rb +2 -4
- data/lib/hrr_rb_ssh/message/091_ssh_msg_channel_open_confirmation.rb +2 -4
- data/lib/hrr_rb_ssh/message/092_ssh_msg_channel_open_failure.rb +2 -4
- data/lib/hrr_rb_ssh/message/093_ssh_msg_channel_window_adjust.rb +2 -4
- data/lib/hrr_rb_ssh/message/094_ssh_msg_channel_data.rb +2 -4
- data/lib/hrr_rb_ssh/message/095_ssh_msg_channel_extended_data.rb +2 -4
- data/lib/hrr_rb_ssh/message/096_ssh_msg_channel_eof.rb +2 -4
- data/lib/hrr_rb_ssh/message/097_ssh_msg_channel_close.rb +2 -4
- data/lib/hrr_rb_ssh/message/098_ssh_msg_channel_request.rb +2 -4
- data/lib/hrr_rb_ssh/message/099_ssh_msg_channel_success.rb +2 -4
- data/lib/hrr_rb_ssh/message/100_ssh_msg_channel_failure.rb +2 -4
- data/lib/hrr_rb_ssh/transport/kex_algorithm/diffie_hellman/h0.rb +2 -4
- data/lib/hrr_rb_ssh/transport/kex_algorithm/diffie_hellman.rb +5 -5
- data/lib/hrr_rb_ssh/transport/kex_algorithm/diffie_hellman_group_exchange/h0.rb +2 -4
- data/lib/hrr_rb_ssh/transport/kex_algorithm/diffie_hellman_group_exchange.rb +9 -9
- data/lib/hrr_rb_ssh/transport/kex_algorithm/elliptic_curve_diffie_hellman/h0.rb +2 -4
- data/lib/hrr_rb_ssh/transport/kex_algorithm/elliptic_curve_diffie_hellman.rb +5 -5
- data/lib/hrr_rb_ssh/transport.rb +13 -13
- data/lib/hrr_rb_ssh/version.rb +1 -1
- metadata +1 -1
@@ -60,7 +60,7 @@ module HrrRbSsh
|
|
60
60
|
:'f' => @f,
|
61
61
|
:'k' => @shared_secret,
|
62
62
|
}
|
63
|
-
h0 = H0.
|
63
|
+
h0 = H0.new(logger: logger).encode h0_payload
|
64
64
|
h = OpenSSL::Digest.digest self.class::DIGEST, h0
|
65
65
|
end
|
66
66
|
|
@@ -70,7 +70,7 @@ module HrrRbSsh
|
|
70
70
|
end
|
71
71
|
|
72
72
|
def receive_kexdh_init payload
|
73
|
-
Message::SSH_MSG_KEXDH_INIT.
|
73
|
+
Message::SSH_MSG_KEXDH_INIT.new(logger: logger).decode payload
|
74
74
|
end
|
75
75
|
|
76
76
|
def send_kexdh_reply transport
|
@@ -80,7 +80,7 @@ module HrrRbSsh
|
|
80
80
|
:'f' => @f,
|
81
81
|
:'signature of H' => sign(transport),
|
82
82
|
}
|
83
|
-
payload = Message::SSH_MSG_KEXDH_REPLY.
|
83
|
+
payload = Message::SSH_MSG_KEXDH_REPLY.new(logger: logger).encode message
|
84
84
|
transport.send payload
|
85
85
|
end
|
86
86
|
|
@@ -89,12 +89,12 @@ module HrrRbSsh
|
|
89
89
|
:'message number' => Message::SSH_MSG_KEXDH_INIT::VALUE,
|
90
90
|
:'e' => @e,
|
91
91
|
}
|
92
|
-
payload = Message::SSH_MSG_KEXDH_INIT.
|
92
|
+
payload = Message::SSH_MSG_KEXDH_INIT.new(logger: logger).encode message
|
93
93
|
transport.send payload
|
94
94
|
end
|
95
95
|
|
96
96
|
def receive_kexdh_reply payload
|
97
|
-
Message::SSH_MSG_KEXDH_REPLY.
|
97
|
+
Message::SSH_MSG_KEXDH_REPLY.new(logger: logger).decode payload
|
98
98
|
end
|
99
99
|
end
|
100
100
|
end
|
@@ -8,10 +8,8 @@ module HrrRbSsh
|
|
8
8
|
class Transport
|
9
9
|
class KexAlgorithm
|
10
10
|
module DiffieHellmanGroupExchange
|
11
|
-
|
12
|
-
|
13
|
-
include Codable
|
14
|
-
end
|
11
|
+
class H0
|
12
|
+
include Codable
|
15
13
|
DEFINITION = [
|
16
14
|
[DataType::String, :'V_C'],
|
17
15
|
[DataType::String, :'V_S'],
|
@@ -92,7 +92,7 @@ module HrrRbSsh
|
|
92
92
|
:'f' => @f,
|
93
93
|
:'k' => @shared_secret,
|
94
94
|
}
|
95
|
-
h0 = H0.
|
95
|
+
h0 = H0.new(logger: logger).encode h0_payload
|
96
96
|
h = OpenSSL::Digest.digest self.class::DIGEST, h0
|
97
97
|
end
|
98
98
|
|
@@ -102,7 +102,7 @@ module HrrRbSsh
|
|
102
102
|
end
|
103
103
|
|
104
104
|
def receive_kex_dh_gex_request payload
|
105
|
-
Message::SSH_MSG_KEX_DH_GEX_REQUEST.
|
105
|
+
Message::SSH_MSG_KEX_DH_GEX_REQUEST.new(logger: logger).decode payload
|
106
106
|
end
|
107
107
|
|
108
108
|
def send_kex_dh_gex_group transport
|
@@ -111,12 +111,12 @@ module HrrRbSsh
|
|
111
111
|
:'p' => @p,
|
112
112
|
:'g' => @g,
|
113
113
|
}
|
114
|
-
payload = Message::SSH_MSG_KEX_DH_GEX_GROUP.
|
114
|
+
payload = Message::SSH_MSG_KEX_DH_GEX_GROUP.new(logger: logger).encode message
|
115
115
|
transport.send payload
|
116
116
|
end
|
117
117
|
|
118
118
|
def receive_kex_dh_gex_init payload
|
119
|
-
Message::SSH_MSG_KEX_DH_GEX_INIT.
|
119
|
+
Message::SSH_MSG_KEX_DH_GEX_INIT.new(logger: logger).decode payload
|
120
120
|
end
|
121
121
|
|
122
122
|
def send_kex_dh_gex_reply transport
|
@@ -126,7 +126,7 @@ module HrrRbSsh
|
|
126
126
|
:'f' => @f,
|
127
127
|
:'signature of H' => sign(transport),
|
128
128
|
}
|
129
|
-
payload = Message::SSH_MSG_KEX_DH_GEX_REPLY.
|
129
|
+
payload = Message::SSH_MSG_KEX_DH_GEX_REPLY.new(logger: logger).encode message
|
130
130
|
transport.send payload
|
131
131
|
end
|
132
132
|
|
@@ -137,12 +137,12 @@ module HrrRbSsh
|
|
137
137
|
:'n' => @n,
|
138
138
|
:'max' => @max,
|
139
139
|
}
|
140
|
-
payload = Message::SSH_MSG_KEX_DH_GEX_REQUEST.
|
140
|
+
payload = Message::SSH_MSG_KEX_DH_GEX_REQUEST.new(logger: logger).encode message
|
141
141
|
transport.send payload
|
142
142
|
end
|
143
143
|
|
144
144
|
def receive_kex_dh_gex_group payload
|
145
|
-
Message::SSH_MSG_KEX_DH_GEX_GROUP.
|
145
|
+
Message::SSH_MSG_KEX_DH_GEX_GROUP.new(logger: logger).decode payload
|
146
146
|
end
|
147
147
|
|
148
148
|
def send_kex_dh_gex_init transport
|
@@ -150,12 +150,12 @@ module HrrRbSsh
|
|
150
150
|
:'message number' => Message::SSH_MSG_KEX_DH_GEX_INIT::VALUE,
|
151
151
|
:'e' => @e,
|
152
152
|
}
|
153
|
-
payload = Message::SSH_MSG_KEX_DH_GEX_INIT.
|
153
|
+
payload = Message::SSH_MSG_KEX_DH_GEX_INIT.new(logger: logger).encode message
|
154
154
|
transport.send payload
|
155
155
|
end
|
156
156
|
|
157
157
|
def receive_kex_dh_gex_reply payload
|
158
|
-
Message::SSH_MSG_KEX_DH_GEX_REPLY.
|
158
|
+
Message::SSH_MSG_KEX_DH_GEX_REPLY.new(logger: logger).decode payload
|
159
159
|
end
|
160
160
|
end
|
161
161
|
end
|
@@ -8,10 +8,8 @@ module HrrRbSsh
|
|
8
8
|
class Transport
|
9
9
|
class KexAlgorithm
|
10
10
|
module EllipticCurveDiffieHellman
|
11
|
-
|
12
|
-
|
13
|
-
include Codable
|
14
|
-
end
|
11
|
+
class H0
|
12
|
+
include Codable
|
15
13
|
DEFINITION = [
|
16
14
|
[DataType::String, :'V_C'],
|
17
15
|
[DataType::String, :'V_S'],
|
@@ -54,7 +54,7 @@ module HrrRbSsh
|
|
54
54
|
:'Q_S' => @q_s,
|
55
55
|
:'K' => @shared_secret,
|
56
56
|
}
|
57
|
-
h0 = H0.
|
57
|
+
h0 = H0.new(logger: logger).encode h0_payload
|
58
58
|
h = OpenSSL::Digest.digest self.class::DIGEST, h0
|
59
59
|
end
|
60
60
|
|
@@ -64,7 +64,7 @@ module HrrRbSsh
|
|
64
64
|
end
|
65
65
|
|
66
66
|
def receive_kexecdh_init payload
|
67
|
-
Message::SSH_MSG_KEXECDH_INIT.
|
67
|
+
Message::SSH_MSG_KEXECDH_INIT.new(logger: logger).decode payload
|
68
68
|
end
|
69
69
|
|
70
70
|
def send_kexecdh_reply transport
|
@@ -74,7 +74,7 @@ module HrrRbSsh
|
|
74
74
|
:'Q_S' => @q_s,
|
75
75
|
:'signature of H' => sign(transport),
|
76
76
|
}
|
77
|
-
payload = Message::SSH_MSG_KEXECDH_REPLY.
|
77
|
+
payload = Message::SSH_MSG_KEXECDH_REPLY.new(logger: logger).encode message
|
78
78
|
transport.send payload
|
79
79
|
end
|
80
80
|
|
@@ -83,12 +83,12 @@ module HrrRbSsh
|
|
83
83
|
:'message number' => Message::SSH_MSG_KEXECDH_INIT::VALUE,
|
84
84
|
:'Q_C' => @q_c,
|
85
85
|
}
|
86
|
-
payload = Message::SSH_MSG_KEXECDH_INIT.
|
86
|
+
payload = Message::SSH_MSG_KEXECDH_INIT.new(logger: logger).encode message
|
87
87
|
transport.send payload
|
88
88
|
end
|
89
89
|
|
90
90
|
def receive_kexecdh_reply payload
|
91
|
-
Message::SSH_MSG_KEXECDH_REPLY.
|
91
|
+
Message::SSH_MSG_KEXECDH_REPLY.new(logger: logger).decode payload
|
92
92
|
end
|
93
93
|
end
|
94
94
|
end
|
data/lib/hrr_rb_ssh/transport.rb
CHANGED
@@ -110,21 +110,21 @@ module HrrRbSsh
|
|
110
110
|
payload = @receiver.receive self
|
111
111
|
case payload[0,1].unpack("C")[0]
|
112
112
|
when Message::SSH_MSG_DISCONNECT::VALUE
|
113
|
-
message = Message::SSH_MSG_DISCONNECT.
|
113
|
+
message = Message::SSH_MSG_DISCONNECT.new(logger: logger).decode payload
|
114
114
|
log_debug { "received disconnect message: #{message.inspect}" }
|
115
115
|
@disconnected = true
|
116
116
|
close
|
117
117
|
raise Error::ClosedTransport
|
118
118
|
when Message::SSH_MSG_IGNORE::VALUE
|
119
|
-
message = Message::SSH_MSG_IGNORE.
|
119
|
+
message = Message::SSH_MSG_IGNORE.new(logger: logger).decode payload
|
120
120
|
log_debug { "received ignore message: #{message.inspect}" }
|
121
121
|
receive
|
122
122
|
when Message::SSH_MSG_UNIMPLEMENTED::VALUE
|
123
|
-
message = Message::SSH_MSG_UNIMPLEMENTED.
|
123
|
+
message = Message::SSH_MSG_UNIMPLEMENTED.new(logger: logger).decode payload
|
124
124
|
log_debug { "received unimplemented message: #{message.inspect}" }
|
125
125
|
receive
|
126
126
|
when Message::SSH_MSG_DEBUG::VALUE
|
127
|
-
message = Message::SSH_MSG_DEBUG.
|
127
|
+
message = Message::SSH_MSG_DEBUG.new(logger: logger).decode payload
|
128
128
|
log_debug { "received debug message: #{message.inspect}" }
|
129
129
|
receive
|
130
130
|
when Message::SSH_MSG_KEXINIT::VALUE
|
@@ -347,7 +347,7 @@ module HrrRbSsh
|
|
347
347
|
:'description' => "disconnected by user",
|
348
348
|
:'language tag' => ""
|
349
349
|
}
|
350
|
-
payload = Message::SSH_MSG_DISCONNECT.
|
350
|
+
payload = Message::SSH_MSG_DISCONNECT.new(logger: logger).encode message
|
351
351
|
send payload
|
352
352
|
end
|
353
353
|
|
@@ -368,7 +368,7 @@ module HrrRbSsh
|
|
368
368
|
:'first_kex_packet_follows' => false,
|
369
369
|
:'0 (reserved for future extension)' => 0,
|
370
370
|
}
|
371
|
-
payload = Message::SSH_MSG_KEXINIT.
|
371
|
+
payload = Message::SSH_MSG_KEXINIT.new(logger: logger).encode message
|
372
372
|
send payload
|
373
373
|
|
374
374
|
case @mode
|
@@ -386,7 +386,7 @@ module HrrRbSsh
|
|
386
386
|
when Mode::CLIENT
|
387
387
|
@i_s = payload
|
388
388
|
end
|
389
|
-
message = Message::SSH_MSG_KEXINIT.
|
389
|
+
message = Message::SSH_MSG_KEXINIT.new(logger: logger).decode payload
|
390
390
|
update_remote_algorithms message
|
391
391
|
end
|
392
392
|
|
@@ -394,12 +394,12 @@ module HrrRbSsh
|
|
394
394
|
message = {
|
395
395
|
:'message number' => Message::SSH_MSG_NEWKEYS::VALUE,
|
396
396
|
}
|
397
|
-
payload = Message::SSH_MSG_NEWKEYS.
|
397
|
+
payload = Message::SSH_MSG_NEWKEYS.new(logger: logger).encode message
|
398
398
|
send payload
|
399
399
|
end
|
400
400
|
|
401
401
|
def receive_newkeys payload
|
402
|
-
message = Message::SSH_MSG_NEWKEYS.
|
402
|
+
message = Message::SSH_MSG_NEWKEYS.new(logger: logger).decode payload
|
403
403
|
end
|
404
404
|
|
405
405
|
def send_service_request
|
@@ -407,16 +407,16 @@ module HrrRbSsh
|
|
407
407
|
:'message number' => Message::SSH_MSG_SERVICE_REQUEST::VALUE,
|
408
408
|
:'service name' => 'ssh-userauth',
|
409
409
|
}
|
410
|
-
payload = Message::SSH_MSG_SERVICE_REQUEST.
|
410
|
+
payload = Message::SSH_MSG_SERVICE_REQUEST.new(logger: logger).encode message
|
411
411
|
send payload
|
412
412
|
|
413
413
|
payload = @receiver.receive self
|
414
|
-
message = Message::SSH_MSG_SERVICE_ACCEPT.
|
414
|
+
message = Message::SSH_MSG_SERVICE_ACCEPT.new(logger: logger).decode payload
|
415
415
|
end
|
416
416
|
|
417
417
|
def receive_service_request
|
418
418
|
payload = @receiver.receive self
|
419
|
-
message = Message::SSH_MSG_SERVICE_REQUEST.
|
419
|
+
message = Message::SSH_MSG_SERVICE_REQUEST.new(logger: logger).decode payload
|
420
420
|
|
421
421
|
message
|
422
422
|
end
|
@@ -426,7 +426,7 @@ module HrrRbSsh
|
|
426
426
|
:'message number' => Message::SSH_MSG_SERVICE_ACCEPT::VALUE,
|
427
427
|
:'service name' => service_name,
|
428
428
|
}
|
429
|
-
payload = Message::SSH_MSG_SERVICE_ACCEPT.
|
429
|
+
payload = Message::SSH_MSG_SERVICE_ACCEPT.new(logger: logger).encode message
|
430
430
|
send payload
|
431
431
|
end
|
432
432
|
|
data/lib/hrr_rb_ssh/version.rb
CHANGED