hrr_rb_ssh 0.4.0.pre2 → 0.4.0.pre3

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.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/lib/hrr_rb_ssh/algorithm/publickey/ecdsa_sha2/ecdsa_signature_blob.rb +2 -4
  3. data/lib/hrr_rb_ssh/algorithm/publickey/ecdsa_sha2/public_key_blob.rb +2 -4
  4. data/lib/hrr_rb_ssh/algorithm/publickey/ecdsa_sha2/signature.rb +2 -4
  5. data/lib/hrr_rb_ssh/algorithm/publickey/ecdsa_sha2.rb +6 -6
  6. data/lib/hrr_rb_ssh/algorithm/publickey/ssh_dss/public_key_blob.rb +2 -4
  7. data/lib/hrr_rb_ssh/algorithm/publickey/ssh_dss/signature.rb +2 -4
  8. data/lib/hrr_rb_ssh/algorithm/publickey/ssh_dss.rb +4 -4
  9. data/lib/hrr_rb_ssh/algorithm/publickey/ssh_rsa/public_key_blob.rb +2 -4
  10. data/lib/hrr_rb_ssh/algorithm/publickey/ssh_rsa/signature.rb +2 -4
  11. data/lib/hrr_rb_ssh/algorithm/publickey/ssh_rsa.rb +4 -4
  12. data/lib/hrr_rb_ssh/authentication/method/keyboard_interactive/info_request.rb +1 -1
  13. data/lib/hrr_rb_ssh/authentication/method/keyboard_interactive/info_response.rb +1 -1
  14. data/lib/hrr_rb_ssh/authentication/method/keyboard_interactive.rb +3 -3
  15. data/lib/hrr_rb_ssh/authentication/method/none.rb +1 -1
  16. data/lib/hrr_rb_ssh/authentication/method/password.rb +1 -1
  17. data/lib/hrr_rb_ssh/authentication/method/publickey/algorithm/functionable.rb +2 -2
  18. data/lib/hrr_rb_ssh/authentication/method/publickey/algorithm/signature_blob.rb +2 -4
  19. data/lib/hrr_rb_ssh/authentication/method/publickey.rb +3 -3
  20. data/lib/hrr_rb_ssh/authentication.rb +4 -4
  21. data/lib/hrr_rb_ssh/codable.rb +11 -19
  22. data/lib/hrr_rb_ssh/connection/channel.rb +15 -15
  23. data/lib/hrr_rb_ssh/connection.rb +14 -14
  24. data/lib/hrr_rb_ssh/message/001_ssh_msg_disconnect.rb +2 -4
  25. data/lib/hrr_rb_ssh/message/002_ssh_msg_ignore.rb +2 -4
  26. data/lib/hrr_rb_ssh/message/003_ssh_msg_unimplemented.rb +2 -4
  27. data/lib/hrr_rb_ssh/message/004_ssh_msg_debug.rb +2 -4
  28. data/lib/hrr_rb_ssh/message/005_ssh_msg_service_request.rb +2 -4
  29. data/lib/hrr_rb_ssh/message/006_ssh_msg_service_accept.rb +2 -4
  30. data/lib/hrr_rb_ssh/message/020_ssh_msg_kexinit.rb +2 -4
  31. data/lib/hrr_rb_ssh/message/021_ssh_msg_newkeys.rb +2 -4
  32. data/lib/hrr_rb_ssh/message/030_ssh_msg_kex_dh_gex_request_old.rb +2 -4
  33. data/lib/hrr_rb_ssh/message/030_ssh_msg_kexdh_init.rb +2 -4
  34. data/lib/hrr_rb_ssh/message/030_ssh_msg_kexecdh_init.rb +2 -4
  35. data/lib/hrr_rb_ssh/message/031_ssh_msg_kex_dh_gex_group.rb +2 -4
  36. data/lib/hrr_rb_ssh/message/031_ssh_msg_kexdh_reply.rb +2 -4
  37. data/lib/hrr_rb_ssh/message/031_ssh_msg_kexecdh_reply.rb +2 -4
  38. data/lib/hrr_rb_ssh/message/032_ssh_msg_kex_dh_gex_init.rb +2 -4
  39. data/lib/hrr_rb_ssh/message/033_ssh_msg_kex_dh_gex_reply.rb +2 -4
  40. data/lib/hrr_rb_ssh/message/034_ssh_msg_kex_dh_gex_request.rb +2 -4
  41. data/lib/hrr_rb_ssh/message/050_ssh_msg_userauth_request.rb +2 -4
  42. data/lib/hrr_rb_ssh/message/051_ssh_msg_userauth_failure.rb +2 -4
  43. data/lib/hrr_rb_ssh/message/052_ssh_msg_userauth_success.rb +2 -4
  44. data/lib/hrr_rb_ssh/message/060_ssh_msg_userauth_info_request.rb +2 -4
  45. data/lib/hrr_rb_ssh/message/060_ssh_msg_userauth_pk_ok.rb +2 -4
  46. data/lib/hrr_rb_ssh/message/061_ssh_msg_userauth_info_response.rb +2 -4
  47. data/lib/hrr_rb_ssh/message/080_ssh_msg_global_request.rb +2 -4
  48. data/lib/hrr_rb_ssh/message/081_ssh_msg_request_success.rb +2 -4
  49. data/lib/hrr_rb_ssh/message/082_ssh_msg_request_failure.rb +2 -4
  50. data/lib/hrr_rb_ssh/message/090_ssh_msg_channel_open.rb +2 -4
  51. data/lib/hrr_rb_ssh/message/091_ssh_msg_channel_open_confirmation.rb +2 -4
  52. data/lib/hrr_rb_ssh/message/092_ssh_msg_channel_open_failure.rb +2 -4
  53. data/lib/hrr_rb_ssh/message/093_ssh_msg_channel_window_adjust.rb +2 -4
  54. data/lib/hrr_rb_ssh/message/094_ssh_msg_channel_data.rb +2 -4
  55. data/lib/hrr_rb_ssh/message/095_ssh_msg_channel_extended_data.rb +2 -4
  56. data/lib/hrr_rb_ssh/message/096_ssh_msg_channel_eof.rb +2 -4
  57. data/lib/hrr_rb_ssh/message/097_ssh_msg_channel_close.rb +2 -4
  58. data/lib/hrr_rb_ssh/message/098_ssh_msg_channel_request.rb +2 -4
  59. data/lib/hrr_rb_ssh/message/099_ssh_msg_channel_success.rb +2 -4
  60. data/lib/hrr_rb_ssh/message/100_ssh_msg_channel_failure.rb +2 -4
  61. data/lib/hrr_rb_ssh/transport/kex_algorithm/diffie_hellman/h0.rb +2 -4
  62. data/lib/hrr_rb_ssh/transport/kex_algorithm/diffie_hellman.rb +5 -5
  63. data/lib/hrr_rb_ssh/transport/kex_algorithm/diffie_hellman_group_exchange/h0.rb +2 -4
  64. data/lib/hrr_rb_ssh/transport/kex_algorithm/diffie_hellman_group_exchange.rb +9 -9
  65. data/lib/hrr_rb_ssh/transport/kex_algorithm/elliptic_curve_diffie_hellman/h0.rb +2 -4
  66. data/lib/hrr_rb_ssh/transport/kex_algorithm/elliptic_curve_diffie_hellman.rb +5 -5
  67. data/lib/hrr_rb_ssh/transport.rb +13 -13
  68. data/lib/hrr_rb_ssh/version.rb +1 -1
  69. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c30f9080fe870a47276559ae2d1588f29b2f3d9c90cdaea619e0c970d9c26c6e
4
- data.tar.gz: 7c35bae6dd374c12c0931d260ce3304ea7e81a3922a47cc3c0ecb8f90b2bf595
3
+ metadata.gz: fff6a446ca6bc1035e2118c0e7a569aa74ae870feecc74ae08a544da2a7aa7b7
4
+ data.tar.gz: daafac5b3866a8d0139f170130867f420593e7ce0a1f72cb7a9734f5467bbc51
5
5
  SHA512:
6
- metadata.gz: ebb98c0c172d302717ae84340693257eca78bba519901654b36913feb2f411a3dbb68e3bd11aa6aa42e14c9387173d860fa2992bec9e9a0dcc9fe6cc6233c2be
7
- data.tar.gz: 79f2911726153c16c0acecc9fa34794bf734dfcd1bead634fab377816d0410ed113d5f229e2edc70eafd17fdccda86fad19eaa4a7fc06a2e0d61db190d478ab2
6
+ metadata.gz: 6702107a31da914abcacc80f8cc8a918adc47f23521bc716a4b4aed3b9ca5a7a0330cdeba6119891c9dbe02457bdf139d93688cc67c8b307a0e8207c097b57ac
7
+ data.tar.gz: c9ce61c6880b7b4f14e7f0006afe66bf2e9cf4bd589a83769e3392227632ed3ba123fdadc18e40f774cdd32c043f3f4dffc6c4d84f5ecd69c8578ca31090831a
@@ -8,10 +8,8 @@ module HrrRbSsh
8
8
  module Algorithm
9
9
  class Publickey
10
10
  module EcdsaSha2
11
- module EcdsaSignatureBlob
12
- class << self
13
- include Codable
14
- end
11
+ class EcdsaSignatureBlob
12
+ include Codable
15
13
  DEFINITION = [
16
14
  [DataType::Mpint, :'r'],
17
15
  [DataType::Mpint, :'s'],
@@ -8,10 +8,8 @@ module HrrRbSsh
8
8
  module Algorithm
9
9
  class Publickey
10
10
  module EcdsaSha2
11
- module PublicKeyBlob
12
- class << self
13
- include Codable
14
- end
11
+ class PublicKeyBlob
12
+ include Codable
15
13
  DEFINITION = [
16
14
  [DataType::String, :'public key algorithm name'],
17
15
  [DataType::String, :'identifier'],
@@ -8,10 +8,8 @@ module HrrRbSsh
8
8
  module Algorithm
9
9
  class Publickey
10
10
  module EcdsaSha2
11
- module Signature
12
- class << self
13
- include Codable
14
- end
11
+ class Signature
12
+ include Codable
15
13
  DEFINITION = [
16
14
  [DataType::String, :'public key algorithm name'],
17
15
  [DataType::String, :'ecdsa signature blob'],
@@ -24,7 +24,7 @@ module HrrRbSsh
24
24
  end
25
25
 
26
26
  def new_by_public_key_blob public_key_blob
27
- public_key_blob_h = PublicKeyBlob.decode public_key_blob, logger: logger
27
+ public_key_blob_h = PublicKeyBlob.new(logger: logger).decode public_key_blob
28
28
  @publickey = OpenSSL::PKey::EC.new(self.class::CURVE_NAME)
29
29
  @publickey.public_key = OpenSSL::PKey::EC::Point.new(@publickey.group, OpenSSL::BN.new(public_key_blob_h[:'Q'], 2))
30
30
  end
@@ -39,7 +39,7 @@ module HrrRbSsh
39
39
  :'identifier' => self.class::IDENTIFIER,
40
40
  :'Q' => @publickey.public_key.to_bn.to_s(2)
41
41
  }
42
- PublicKeyBlob.encode public_key_blob_h, logger: logger
42
+ PublicKeyBlob.new(logger: logger).encode public_key_blob_h
43
43
  end
44
44
 
45
45
  def ecdsa_signature_blob signature_blob
@@ -52,7 +52,7 @@ module HrrRbSsh
52
52
  :'r' => r,
53
53
  :'s' => s,
54
54
  }
55
- EcdsaSignatureBlob.encode ecdsa_signature_blob_h, logger: logger
55
+ EcdsaSignatureBlob.new(logger: logger).encode ecdsa_signature_blob_h
56
56
  end
57
57
 
58
58
  def sign signature_blob
@@ -60,12 +60,12 @@ module HrrRbSsh
60
60
  :'public key algorithm name' => self.class::NAME,
61
61
  :'ecdsa signature blob' => ecdsa_signature_blob(signature_blob),
62
62
  }
63
- Signature.encode signature_h, logger: logger
63
+ Signature.new(logger: logger).encode signature_h
64
64
  end
65
65
 
66
66
  def verify signature, signature_blob
67
- signature_h = Signature.decode signature, logger: logger
68
- ecdsa_signature_blob_h = EcdsaSignatureBlob.decode signature_h[:'ecdsa signature blob'], logger: logger
67
+ signature_h = Signature.new(logger: logger).decode signature
68
+ ecdsa_signature_blob_h = EcdsaSignatureBlob.new(logger: logger).decode signature_h[:'ecdsa signature blob']
69
69
  r = ecdsa_signature_blob_h[:'r']
70
70
  s = ecdsa_signature_blob_h[:'s']
71
71
  sign_asn1 = OpenSSL::ASN1::Sequence.new(
@@ -8,10 +8,8 @@ module HrrRbSsh
8
8
  module Algorithm
9
9
  class Publickey
10
10
  class SshDss
11
- module PublicKeyBlob
12
- class << self
13
- include Codable
14
- end
11
+ class PublicKeyBlob
12
+ include Codable
15
13
  DEFINITION = [
16
14
  [DataType::String, :'public key algorithm name'],
17
15
  [DataType::Mpint, :'p'],
@@ -8,10 +8,8 @@ module HrrRbSsh
8
8
  module Algorithm
9
9
  class Publickey
10
10
  class SshDss
11
- module Signature
12
- class << self
13
- include Codable
14
- end
11
+ class Signature
12
+ include Codable
15
13
  DEFINITION = [
16
14
  [DataType::String, :'public key algorithm name'],
17
15
  [DataType::String, :'signature blob'],
@@ -26,7 +26,7 @@ module HrrRbSsh
26
26
  end
27
27
 
28
28
  def new_by_public_key_blob public_key_blob
29
- public_key_blob_h = PublicKeyBlob.decode public_key_blob, logger: logger
29
+ public_key_blob_h = PublicKeyBlob.new(logger: logger).decode public_key_blob
30
30
  @publickey = OpenSSL::PKey::DSA.new
31
31
  if @publickey.respond_to?(:set_pqg)
32
32
  @publickey.set_pqg public_key_blob_h[:'p'], public_key_blob_h[:'q'], public_key_blob_h[:'g']
@@ -54,7 +54,7 @@ module HrrRbSsh
54
54
  :'g' => @publickey.g.to_i,
55
55
  :'y' => @publickey.pub_key.to_i,
56
56
  }
57
- PublicKeyBlob.encode public_key_blob_h, logger: logger
57
+ PublicKeyBlob.new(logger: logger).encode public_key_blob_h
58
58
  end
59
59
 
60
60
  def sign signature_blob
@@ -67,11 +67,11 @@ module HrrRbSsh
67
67
  :'public key algorithm name' => self.class::NAME,
68
68
  :'signature blob' => (sign_r + sign_s),
69
69
  }
70
- Signature.encode signature_h, logger: logger
70
+ Signature.new(logger: logger).encode signature_h
71
71
  end
72
72
 
73
73
  def verify signature, signature_blob
74
- signature_h = Signature.decode signature, logger: logger
74
+ signature_h = Signature.new(logger: logger).decode signature
75
75
  sign_r = signature_h[:'signature blob'][ 0, 20]
76
76
  sign_s = signature_h[:'signature blob'][20, 20]
77
77
  sign_asn1 = OpenSSL::ASN1::Sequence.new(
@@ -8,10 +8,8 @@ module HrrRbSsh
8
8
  module Algorithm
9
9
  class Publickey
10
10
  class SshRsa
11
- module PublicKeyBlob
12
- class << self
13
- include Codable
14
- end
11
+ class PublicKeyBlob
12
+ include Codable
15
13
  DEFINITION = [
16
14
  [DataType::String, :'public key algorithm name'],
17
15
  [DataType::Mpint, :'e'],
@@ -8,10 +8,8 @@ module HrrRbSsh
8
8
  module Algorithm
9
9
  class Publickey
10
10
  class SshRsa
11
- module Signature
12
- class << self
13
- include Codable
14
- end
11
+ class Signature
12
+ include Codable
15
13
  DEFINITION = [
16
14
  [DataType::String, :'public key algorithm name'],
17
15
  [DataType::String, :'signature blob'],
@@ -26,7 +26,7 @@ module HrrRbSsh
26
26
  end
27
27
 
28
28
  def new_by_public_key_blob public_key_blob
29
- public_key_blob_h = PublicKeyBlob.decode public_key_blob, logger: logger
29
+ public_key_blob_h = PublicKeyBlob.new(logger: logger).decode public_key_blob
30
30
  @publickey = OpenSSL::PKey::RSA.new
31
31
  if @publickey.respond_to?(:set_key)
32
32
  @publickey.set_key public_key_blob_h[:'n'], public_key_blob_h[:'e'], nil
@@ -46,7 +46,7 @@ module HrrRbSsh
46
46
  :'e' => @publickey.e.to_i,
47
47
  :'n' => @publickey.n.to_i,
48
48
  }
49
- PublicKeyBlob.encode public_key_blob_h, logger: logger
49
+ PublicKeyBlob.new(logger: logger).encode public_key_blob_h
50
50
  end
51
51
 
52
52
  def sign signature_blob
@@ -54,11 +54,11 @@ module HrrRbSsh
54
54
  :'public key algorithm name' => self.class::NAME,
55
55
  :'signature blob' => @publickey.sign(self.class::DIGEST, signature_blob),
56
56
  }
57
- Signature.encode signature_h, logger: logger
57
+ Signature.new(logger: logger).encode signature_h
58
58
  end
59
59
 
60
60
  def verify signature, signature_blob
61
- signature_h = Signature.decode signature, logger: logger
61
+ signature_h = Signature.new(logger: logger).decode signature
62
62
  signature_h[:'public key algorithm name'] == self.class::NAME && @publickey.verify(self.class::DIGEST, signature_h[:'signature blob'], signature_blob)
63
63
  end
64
64
  end
@@ -37,7 +37,7 @@ module HrrRbSsh
37
37
  end
38
38
 
39
39
  def to_payload
40
- Message::SSH_MSG_USERAUTH_INFO_REQUEST.encode self.to_message, logger: logger
40
+ Message::SSH_MSG_USERAUTH_INFO_REQUEST.new(logger: logger).encode self.to_message
41
41
  end
42
42
  end
43
43
  end
@@ -18,7 +18,7 @@ module HrrRbSsh
18
18
  self.logger = logger
19
19
  case payload[0,1].unpack("C")[0]
20
20
  when Message::SSH_MSG_USERAUTH_INFO_RESPONSE::VALUE
21
- message = Message::SSH_MSG_USERAUTH_INFO_RESPONSE.decode payload, logger: logger
21
+ message = Message::SSH_MSG_USERAUTH_INFO_RESPONSE.new(logger: logger).decode payload
22
22
  @num_responses = message[:'num-responses']
23
23
  @responses = Array.new(message[:'num-responses']){ |i| message[:"response[#{i+1}]"] }
24
24
  else
@@ -39,13 +39,13 @@ module HrrRbSsh
39
39
  :"language tag" => "",
40
40
  :'submethods' => "",
41
41
  }
42
- payload = Message::SSH_MSG_USERAUTH_REQUEST.encode message, logger: logger
42
+ payload = Message::SSH_MSG_USERAUTH_REQUEST.new(logger: logger).encode message
43
43
  @transport.send payload
44
44
 
45
45
  payload = @transport.receive
46
46
  case payload[0,1].unpack("C")[0]
47
47
  when Message::SSH_MSG_USERAUTH_INFO_REQUEST::VALUE
48
- message = Message::SSH_MSG_USERAUTH_INFO_REQUEST.decode payload, logger: logger
48
+ message = Message::SSH_MSG_USERAUTH_INFO_REQUEST.new(logger: logger).decode payload
49
49
  num_responses = @options['client_authentication_keyboard_interactive'].size
50
50
  message = {
51
51
  :'message number' => Message::SSH_MSG_USERAUTH_INFO_RESPONSE::VALUE,
@@ -55,7 +55,7 @@ module HrrRbSsh
55
55
  {:"response[#{i+1}]" => response}
56
56
  }.inject(Hash.new){ |a, b| a.merge(b) }
57
57
  message.update(message_responses)
58
- payload = Message::SSH_MSG_USERAUTH_INFO_RESPONSE.encode message, logger: logger
58
+ payload = Message::SSH_MSG_USERAUTH_INFO_RESPONSE.new(logger: logger).encode message
59
59
  @transport.send payload
60
60
  @transport.receive
61
61
  else
@@ -34,7 +34,7 @@ module HrrRbSsh
34
34
  :"service name" => service_name,
35
35
  :"method name" => NAME,
36
36
  }
37
- payload = Message::SSH_MSG_USERAUTH_REQUEST.encode message, logger: logger
37
+ payload = Message::SSH_MSG_USERAUTH_REQUEST.new(logger: logger).encode message
38
38
  @transport.send payload
39
39
  payload = @transport.receive
40
40
  end
@@ -40,7 +40,7 @@ module HrrRbSsh
40
40
  :"FALSE" => false,
41
41
  :"plaintext password" => password,
42
42
  }
43
- payload = Message::SSH_MSG_USERAUTH_REQUEST.encode message, logger: logger
43
+ payload = Message::SSH_MSG_USERAUTH_REQUEST.new(logger: logger).encode message
44
44
  @transport.send payload
45
45
 
46
46
  payload = @transport.receive
@@ -38,7 +38,7 @@ module HrrRbSsh
38
38
  :'public key algorithm name' => message[:'public key algorithm name'],
39
39
  :'public key blob' => message[:'public key blob'],
40
40
  }
41
- signature_blob = SignatureBlob.encode signature_blob_h, logger: logger
41
+ signature_blob = SignatureBlob.new(logger: logger).encode signature_blob_h
42
42
  publickey = HrrRbSsh::Algorithm::Publickey[self.class::NAME].new message[:'public key blob'], logger: logger
43
43
  publickey.verify message[:'signature'], signature_blob
44
44
  rescue => e
@@ -65,7 +65,7 @@ module HrrRbSsh
65
65
  :'public key algorithm name' => self.class::NAME,
66
66
  :'public key blob' => publickey_blob
67
67
  }
68
- signature_blob = SignatureBlob.encode signature_blob_h, logger: logger
68
+ signature_blob = SignatureBlob.new(logger: logger).encode signature_blob_h
69
69
  publickey.sign signature_blob
70
70
  end
71
71
  end
@@ -9,10 +9,8 @@ module HrrRbSsh
9
9
  class Method
10
10
  class Publickey
11
11
  class Algorithm
12
- module SignatureBlob
13
- class << self
14
- include Codable
15
- end
12
+ class SignatureBlob
13
+ include Codable
16
14
  DEFINITION = [
17
15
  [DataType::String, :'session identifier'],
18
16
  [DataType::Byte, :'message number'],
@@ -47,7 +47,7 @@ module HrrRbSsh
47
47
  :'public key algorithm name from the request' => public_key_algorithm_name,
48
48
  :'public key blob from the request' => public_key_blob,
49
49
  }
50
- payload = Message::SSH_MSG_USERAUTH_PK_OK.encode message, logger: logger
50
+ payload = Message::SSH_MSG_USERAUTH_PK_OK.new(logger: logger).encode message
51
51
  end
52
52
 
53
53
  def request_authentication username, service_name
@@ -75,7 +75,7 @@ module HrrRbSsh
75
75
  :'public key algorithm name' => public_key_algorithm_name,
76
76
  :'public key blob' => public_key_blob,
77
77
  }
78
- payload = Message::SSH_MSG_USERAUTH_REQUEST.encode message, logger: logger
78
+ payload = Message::SSH_MSG_USERAUTH_REQUEST.new(logger: logger).encode message
79
79
  @transport.send payload
80
80
  end
81
81
 
@@ -93,7 +93,7 @@ module HrrRbSsh
93
93
  :'public key blob' => public_key_blob,
94
94
  :'signature' => signature,
95
95
  }
96
- payload = Message::SSH_MSG_USERAUTH_REQUEST.encode message, logger: logger
96
+ payload = Message::SSH_MSG_USERAUTH_REQUEST.new(logger: logger).encode message
97
97
  @transport.send payload
98
98
  end
99
99
  end
@@ -87,7 +87,7 @@ module HrrRbSsh
87
87
  payload = @transport.receive
88
88
  case payload[0,1].unpack("C")[0]
89
89
  when Message::SSH_MSG_USERAUTH_REQUEST::VALUE
90
- userauth_request_message = Message::SSH_MSG_USERAUTH_REQUEST.decode payload, logger: logger
90
+ userauth_request_message = Message::SSH_MSG_USERAUTH_REQUEST.new(logger: logger).decode payload
91
91
  method_name = userauth_request_message[:'method name']
92
92
  log_info { "authentication method: #{method_name}" }
93
93
  method = Method[method_name].new(@transport, {'session id' => @transport.session_id}.merge(@options), @variables, authentication_methods, logger: logger)
@@ -143,7 +143,7 @@ module HrrRbSsh
143
143
  @closed = false
144
144
  break
145
145
  when Message::SSH_MSG_USERAUTH_FAILURE::VALUE
146
- message = Message::SSH_MSG_USERAUTH_FAILURE.decode payload, logger: logger
146
+ message = Message::SSH_MSG_USERAUTH_FAILURE.new(logger: logger).decode payload
147
147
  partial_success = message[:'partial success']
148
148
  if partial_success
149
149
  log_info { "partially verified" }
@@ -169,7 +169,7 @@ module HrrRbSsh
169
169
  :'authentications that can continue' => authentication_methods,
170
170
  :'partial success' => partial_success,
171
171
  }
172
- payload = Message::SSH_MSG_USERAUTH_FAILURE.encode message, logger: logger
172
+ payload = Message::SSH_MSG_USERAUTH_FAILURE.new(logger: logger).encode message
173
173
  @transport.send payload
174
174
  end
175
175
 
@@ -177,7 +177,7 @@ module HrrRbSsh
177
177
  message = {
178
178
  :'message number' => Message::SSH_MSG_USERAUTH_SUCCESS::VALUE,
179
179
  }
180
- payload = Message::SSH_MSG_USERAUTH_SUCCESS.encode message, logger: logger
180
+ payload = Message::SSH_MSG_USERAUTH_SUCCESS.new(logger: logger).encode message
181
181
  @transport.send payload
182
182
  end
183
183
 
@@ -5,39 +5,34 @@ require 'hrr_rb_ssh/loggable'
5
5
 
6
6
  module HrrRbSsh
7
7
  module Codable
8
- class LoggableClass
9
- include Loggable
8
+ include Loggable
10
9
 
11
- def initialize logger
12
- self.logger = logger
13
- end
10
+ def initialize logger: nil
11
+ self.logger = logger
14
12
  end
15
13
 
16
14
  def common_definition
17
- self::DEFINITION
15
+ self.class::DEFINITION
18
16
  end
19
17
 
20
18
  def conditional_definition message
21
- return [] unless self.const_defined? :CONDITIONAL_DEFINITION
19
+ return [] unless self.class.const_defined? :CONDITIONAL_DEFINITION
22
20
  message.inject([]){ |a, (k,v)|
23
21
  field_name = k
24
22
  field_value = if v.instance_of? ::Proc then v.call else v end
25
- a + (self::CONDITIONAL_DEFINITION.fetch(field_name, {})[field_value] || [])
23
+ a + (self.class::CONDITIONAL_DEFINITION.fetch(field_name, {})[field_value] || [])
26
24
  }
27
25
  end
28
26
 
29
- def encode message, complementary_message={}, logger: nil
30
- loggable_instalce = LoggableClass.new(logger)
31
- loggable_instalce.log_key = self.to_s
32
-
33
- loggable_instalce.log_debug { 'encoding message: ' + message.inspect }
27
+ def encode message, complementary_message={}
28
+ log_debug { 'encoding message: ' + message.inspect }
34
29
  definition = common_definition + conditional_definition(message.merge complementary_message)
35
30
  definition.map{ |data_type, field_name|
36
31
  begin
37
32
  field_value = if message[field_name].instance_of? ::Proc then message[field_name].call else message[field_name] end
38
33
  data_type.encode field_value
39
34
  rescue => e
40
- loggable_instalce.log_debug { "'field_name', 'field_value': #{field_name.inspect}, #{field_value.inspect}" }
35
+ log_debug { "'field_name', 'field_value': #{field_name.inspect}, #{field_value.inspect}" }
41
36
  raise e
42
37
  end
43
38
  }.join
@@ -63,16 +58,13 @@ module HrrRbSsh
63
58
  end
64
59
  end
65
60
 
66
- def decode payload, complementary_message={}, logger: nil
67
- loggable_instalce = LoggableClass.new(logger)
68
- loggable_instalce.log_key = self.to_s
69
-
61
+ def decode payload, complementary_message={}
70
62
  payload_io = StringIO.new payload
71
63
  decoded_message = decode_recursively(payload_io).inject(Hash.new){ |h, (k, v)| h.update({k => v}) }
72
64
  if complementary_message.any?
73
65
  decoded_message.merge! decode_recursively(payload_io, complementary_message.to_a).inject(Hash.new){ |h, (k, v)| h.update({k => v}) }
74
66
  end
75
- loggable_instalce.log_debug { 'decoded message: ' + decoded_message.inspect }
67
+ log_debug { 'decoded message: ' + decoded_message.inspect }
76
68
  decoded_message
77
69
  end
78
70
  end
@@ -405,7 +405,7 @@ module HrrRbSsh
405
405
  :'message number' => Message::SSH_MSG_CHANNEL_SUCCESS::VALUE,
406
406
  :'recipient channel' => @remote_channel,
407
407
  }
408
- payload = Message::SSH_MSG_CHANNEL_SUCCESS.encode message, logger: logger
408
+ payload = Message::SSH_MSG_CHANNEL_SUCCESS.new(logger: logger).encode message
409
409
  @connection.send payload
410
410
  end
411
411
 
@@ -414,7 +414,7 @@ module HrrRbSsh
414
414
  :'message number' => Message::SSH_MSG_CHANNEL_FAILURE::VALUE,
415
415
  :'recipient channel' => @remote_channel,
416
416
  }
417
- payload = Message::SSH_MSG_CHANNEL_FAILURE.encode message, logger: logger
417
+ payload = Message::SSH_MSG_CHANNEL_FAILURE.new(logger: logger).encode message
418
418
  @connection.send payload
419
419
  end
420
420
 
@@ -424,7 +424,7 @@ module HrrRbSsh
424
424
  :'recipient channel' => @remote_channel,
425
425
  :'bytes to add' => INITIAL_WINDOW_SIZE,
426
426
  }
427
- payload = Message::SSH_MSG_CHANNEL_WINDOW_ADJUST.encode message, logger: logger
427
+ payload = Message::SSH_MSG_CHANNEL_WINDOW_ADJUST.new(logger: logger).encode message
428
428
  @connection.send payload
429
429
  end
430
430
 
@@ -434,7 +434,7 @@ module HrrRbSsh
434
434
  :'recipient channel' => @remote_channel,
435
435
  :'data' => data,
436
436
  }
437
- payload = Message::SSH_MSG_CHANNEL_DATA.encode message, logger: logger
437
+ payload = Message::SSH_MSG_CHANNEL_DATA.new(logger: logger).encode message
438
438
  @connection.send payload
439
439
  end
440
440
 
@@ -445,7 +445,7 @@ module HrrRbSsh
445
445
  :'data type code' => code,
446
446
  :'data' => data,
447
447
  }
448
- payload = Message::SSH_MSG_CHANNEL_EXTENDED_DATA.encode message, logger: logger
448
+ payload = Message::SSH_MSG_CHANNEL_EXTENDED_DATA.new(logger: logger).encode message
449
449
  @connection.send payload
450
450
  end
451
451
 
@@ -462,7 +462,7 @@ module HrrRbSsh
462
462
  :'terminal height, pixels' => term_height_pixel,
463
463
  :'encoded terminal modes' => encoded_term_modes,
464
464
  }
465
- payload = Message::SSH_MSG_CHANNEL_REQUEST.encode message, logger: logger
465
+ payload = Message::SSH_MSG_CHANNEL_REQUEST.new(logger: logger).encode message
466
466
  @connection.send payload
467
467
  end
468
468
 
@@ -475,7 +475,7 @@ module HrrRbSsh
475
475
  :'variable name' => variable_name,
476
476
  :'variable value' => variable_value,
477
477
  }
478
- payload = Message::SSH_MSG_CHANNEL_REQUEST.encode message, logger: logger
478
+ payload = Message::SSH_MSG_CHANNEL_REQUEST.new(logger: logger).encode message
479
479
  @connection.send payload
480
480
  end
481
481
 
@@ -486,7 +486,7 @@ module HrrRbSsh
486
486
  :'request type' => "shell",
487
487
  :'want reply' => false,
488
488
  }
489
- payload = Message::SSH_MSG_CHANNEL_REQUEST.encode message, logger: logger
489
+ payload = Message::SSH_MSG_CHANNEL_REQUEST.new(logger: logger).encode message
490
490
  @connection.send payload
491
491
  end
492
492
 
@@ -498,7 +498,7 @@ module HrrRbSsh
498
498
  :'want reply' => false,
499
499
  :'command' => command,
500
500
  }
501
- payload = Message::SSH_MSG_CHANNEL_REQUEST.encode message, logger: logger
501
+ payload = Message::SSH_MSG_CHANNEL_REQUEST.new(logger: logger).encode message
502
502
  @connection.send payload
503
503
  end
504
504
 
@@ -510,7 +510,7 @@ module HrrRbSsh
510
510
  :'want reply' => false,
511
511
  :'subsystem name' => subsystem_name,
512
512
  }
513
- payload = Message::SSH_MSG_CHANNEL_REQUEST.encode message, logger: logger
513
+ payload = Message::SSH_MSG_CHANNEL_REQUEST.new(logger: logger).encode message
514
514
  @connection.send payload
515
515
  end
516
516
 
@@ -525,7 +525,7 @@ module HrrRbSsh
525
525
  :'terminal width, pixels' => term_width_pixel,
526
526
  :'terminal height, pixels' => term_height_pixel,
527
527
  }
528
- payload = Message::SSH_MSG_CHANNEL_REQUEST.encode message, logger: logger
528
+ payload = Message::SSH_MSG_CHANNEL_REQUEST.new(logger: logger).encode message
529
529
  @connection.send payload
530
530
  end
531
531
 
@@ -537,7 +537,7 @@ module HrrRbSsh
537
537
  :'want reply' => false,
538
538
  :'signal name' => signal_name,
539
539
  }
540
- payload = Message::SSH_MSG_CHANNEL_REQUEST.encode message, logger: logger
540
+ payload = Message::SSH_MSG_CHANNEL_REQUEST.new(logger: logger).encode message
541
541
  @connection.send payload
542
542
  end
543
543
 
@@ -549,7 +549,7 @@ module HrrRbSsh
549
549
  :'want reply' => false,
550
550
  :'exit status' => exitstatus,
551
551
  }
552
- payload = Message::SSH_MSG_CHANNEL_REQUEST.encode message, logger: logger
552
+ payload = Message::SSH_MSG_CHANNEL_REQUEST.new(logger: logger).encode message
553
553
  @connection.send payload
554
554
  end
555
555
 
@@ -558,7 +558,7 @@ module HrrRbSsh
558
558
  :'message number' => Message::SSH_MSG_CHANNEL_EOF::VALUE,
559
559
  :'recipient channel' => @remote_channel,
560
560
  }
561
- payload = Message::SSH_MSG_CHANNEL_EOF.encode message, logger: logger
561
+ payload = Message::SSH_MSG_CHANNEL_EOF.new(logger: logger).encode message
562
562
  @connection.send payload
563
563
  end
564
564
 
@@ -567,7 +567,7 @@ module HrrRbSsh
567
567
  :'message number' => Message::SSH_MSG_CHANNEL_CLOSE::VALUE,
568
568
  :'recipient channel' => @remote_channel,
569
569
  }
570
- payload = Message::SSH_MSG_CHANNEL_CLOSE.encode message, logger: logger
570
+ payload = Message::SSH_MSG_CHANNEL_CLOSE.new(logger: logger).encode message
571
571
  @connection.send payload
572
572
  end
573
573
  end