hrr_rb_ssh 0.1.3 → 0.1.4

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 (78) hide show
  1. checksums.yaml +4 -4
  2. data/demo/server.rb +5 -97
  3. data/lib/hrr_rb_ssh/authentication/method/publickey/algorithm/ssh_dss/public_key_blob.rb +30 -0
  4. data/lib/hrr_rb_ssh/authentication/method/publickey/algorithm/ssh_dss/signature.rb +27 -0
  5. data/lib/hrr_rb_ssh/authentication/method/publickey/algorithm/ssh_dss/signature_blob.rb +33 -0
  6. data/lib/hrr_rb_ssh/authentication/method/publickey/algorithm/ssh_dss.rb +8 -31
  7. data/lib/hrr_rb_ssh/authentication/method/publickey/algorithm/ssh_rsa/public_key_blob.rb +28 -0
  8. data/lib/hrr_rb_ssh/authentication/method/publickey/algorithm/ssh_rsa/signature.rb +27 -0
  9. data/lib/hrr_rb_ssh/authentication/method/publickey/algorithm/ssh_rsa/signature_blob.rb +33 -0
  10. data/lib/hrr_rb_ssh/authentication/method/publickey/algorithm/ssh_rsa.rb +8 -29
  11. data/lib/hrr_rb_ssh/codable.rb +64 -0
  12. data/lib/hrr_rb_ssh/connection/channel/channel_type/session/request_type/window_change/context.rb +50 -0
  13. data/lib/hrr_rb_ssh/connection/channel/channel_type/session/request_type/window_change.rb +33 -0
  14. data/lib/hrr_rb_ssh/connection/channel/channel_type/session/request_type.rb +1 -0
  15. data/lib/hrr_rb_ssh/connection/request_handler/reference_env_request_handler.rb +21 -0
  16. data/lib/hrr_rb_ssh/connection/request_handler/reference_exec_request_handler.rb +28 -0
  17. data/lib/hrr_rb_ssh/connection/request_handler/reference_pty_req_request_handler.rb +32 -0
  18. data/lib/hrr_rb_ssh/connection/request_handler/reference_shell_request_handler.rb +81 -0
  19. data/lib/hrr_rb_ssh/connection/request_handler/reference_window_change_request_handler.rb +21 -0
  20. data/lib/hrr_rb_ssh/connection/request_handler.rb +6 -0
  21. data/lib/hrr_rb_ssh/message/001_ssh_msg_disconnect.rb +1 -1
  22. data/lib/hrr_rb_ssh/message/002_ssh_msg_ignore.rb +1 -1
  23. data/lib/hrr_rb_ssh/message/003_ssh_msg_unimplemented.rb +1 -1
  24. data/lib/hrr_rb_ssh/message/004_ssh_msg_debug.rb +1 -1
  25. data/lib/hrr_rb_ssh/message/005_ssh_msg_service_request.rb +1 -1
  26. data/lib/hrr_rb_ssh/message/006_ssh_msg_service_accept.rb +1 -1
  27. data/lib/hrr_rb_ssh/message/020_ssh_msg_kexinit.rb +1 -1
  28. data/lib/hrr_rb_ssh/message/021_ssh_msg_newkeys.rb +1 -1
  29. data/lib/hrr_rb_ssh/message/030_ssh_msg_kex_dh_gex_request_old.rb +24 -0
  30. data/lib/hrr_rb_ssh/message/030_ssh_msg_kexdh_init.rb +1 -1
  31. data/lib/hrr_rb_ssh/message/031_ssh_msg_kex_dh_gex_group.rb +25 -0
  32. data/lib/hrr_rb_ssh/message/031_ssh_msg_kexdh_reply.rb +1 -1
  33. data/lib/hrr_rb_ssh/message/032_ssh_msg_kex_dh_gex_init.rb +24 -0
  34. data/lib/hrr_rb_ssh/message/033_ssh_msg_kex_dh_gex_reply.rb +26 -0
  35. data/lib/hrr_rb_ssh/message/034_ssh_msg_kex_dh_gex_request.rb +26 -0
  36. data/lib/hrr_rb_ssh/message/050_ssh_msg_userauth_request.rb +1 -1
  37. data/lib/hrr_rb_ssh/message/051_ssh_msg_userauth_failure.rb +1 -1
  38. data/lib/hrr_rb_ssh/message/052_ssh_msg_userauth_success.rb +1 -1
  39. data/lib/hrr_rb_ssh/message/060_ssh_msg_userauth_pk_ok.rb +1 -1
  40. data/lib/hrr_rb_ssh/message/080_ssh_msg_global_request.rb +1 -1
  41. data/lib/hrr_rb_ssh/message/081_ssh_msg_request_success.rb +1 -1
  42. data/lib/hrr_rb_ssh/message/082_ssh_msg_request_failure.rb +1 -1
  43. data/lib/hrr_rb_ssh/message/090_ssh_msg_channel_open.rb +1 -1
  44. data/lib/hrr_rb_ssh/message/091_ssh_msg_channel_open_confirmation.rb +1 -1
  45. data/lib/hrr_rb_ssh/message/092_ssh_msg_channel_open_failure.rb +1 -1
  46. data/lib/hrr_rb_ssh/message/093_ssh_msg_channel_window_adjust.rb +1 -1
  47. data/lib/hrr_rb_ssh/message/094_ssh_msg_channel_data.rb +1 -1
  48. data/lib/hrr_rb_ssh/message/095_ssh_msg_channel_extended_data.rb +1 -1
  49. data/lib/hrr_rb_ssh/message/096_ssh_msg_channel_eof.rb +1 -1
  50. data/lib/hrr_rb_ssh/message/097_ssh_msg_channel_close.rb +1 -1
  51. data/lib/hrr_rb_ssh/message/098_ssh_msg_channel_request.rb +1 -1
  52. data/lib/hrr_rb_ssh/message/099_ssh_msg_channel_success.rb +1 -1
  53. data/lib/hrr_rb_ssh/message/100_ssh_msg_channel_failure.rb +1 -1
  54. data/lib/hrr_rb_ssh/message.rb +5 -0
  55. data/lib/hrr_rb_ssh/transport/kex_algorithm/diffie_hellman/h0.rb +29 -0
  56. data/lib/hrr_rb_ssh/transport/kex_algorithm/diffie_hellman.rb +28 -18
  57. data/lib/hrr_rb_ssh/transport/kex_algorithm/diffie_hellman_group14_sha256.rb +35 -0
  58. data/lib/hrr_rb_ssh/transport/kex_algorithm/diffie_hellman_group15_sha512.rb +35 -0
  59. data/lib/hrr_rb_ssh/transport/kex_algorithm/diffie_hellman_group16_sha512.rb +41 -0
  60. data/lib/hrr_rb_ssh/transport/kex_algorithm/diffie_hellman_group17_sha512.rb +47 -0
  61. data/lib/hrr_rb_ssh/transport/kex_algorithm/diffie_hellman_group18_sha512.rb +62 -0
  62. data/lib/hrr_rb_ssh/transport/kex_algorithm/diffie_hellman_group_exchange/h0.rb +34 -0
  63. data/lib/hrr_rb_ssh/transport/kex_algorithm/diffie_hellman_group_exchange.rb +170 -0
  64. data/lib/hrr_rb_ssh/transport/kex_algorithm/diffie_hellman_group_exchange_sha1.rb +17 -0
  65. data/lib/hrr_rb_ssh/transport/kex_algorithm/diffie_hellman_group_exchange_sha256.rb +17 -0
  66. data/lib/hrr_rb_ssh/transport/kex_algorithm.rb +7 -0
  67. data/lib/hrr_rb_ssh/transport/receiver.rb +16 -14
  68. data/lib/hrr_rb_ssh/transport/server_host_key_algorithm/ssh_dss/public_key_blob.rb +26 -0
  69. data/lib/hrr_rb_ssh/transport/server_host_key_algorithm/ssh_dss/signature.rb +23 -0
  70. data/lib/hrr_rb_ssh/transport/server_host_key_algorithm/ssh_dss.rb +11 -39
  71. data/lib/hrr_rb_ssh/transport/server_host_key_algorithm/ssh_rsa/public_key_blob.rb +25 -0
  72. data/lib/hrr_rb_ssh/transport/server_host_key_algorithm/ssh_rsa/signature.rb +23 -0
  73. data/lib/hrr_rb_ssh/transport/server_host_key_algorithm/ssh_rsa.rb +11 -38
  74. data/lib/hrr_rb_ssh/transport.rb +9 -29
  75. data/lib/hrr_rb_ssh/version.rb +1 -1
  76. metadata +35 -4
  77. data/lib/hrr_rb_ssh/authentication/method/publickey/algorithm/codable.rb +0 -33
  78. data/lib/hrr_rb_ssh/message/codable.rb +0 -66
@@ -0,0 +1,32 @@
1
+ # coding: utf-8
2
+ # vim: et ts=2 sw=2
3
+
4
+ require 'io/console'
5
+ require 'hrr_rb_ssh/logger'
6
+ require 'hrr_rb_ssh/connection/request_handler'
7
+
8
+ module HrrRbSsh
9
+ class Connection
10
+ class RequestHandler
11
+ class ReferencePtyReqRequestHandler < RequestHandler
12
+ def initialize
13
+ @logger = HrrRbSsh::Logger.new self.class.name
14
+ @proc = Proc.new { |context|
15
+ ptm, pts = PTY.open
16
+ ptm.winsize = [context.terminal_height_rows, context.terminal_width_characters]
17
+ context.vars[:ptm] = ptm
18
+ context.vars[:pts] = pts
19
+ context.chain_proc { |chain|
20
+ begin
21
+ chain.call_next
22
+ ensure
23
+ context.vars[:ptm].close
24
+ context.vars[:pts].close
25
+ end
26
+ }
27
+ }
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,81 @@
1
+ # coding: utf-8
2
+ # vim: et ts=2 sw=2
3
+
4
+ require 'hrr_rb_ssh/logger'
5
+ require 'hrr_rb_ssh/connection/request_handler'
6
+
7
+ module HrrRbSsh
8
+ class Connection
9
+ class RequestHandler
10
+ class ReferenceShellRequestHandler < RequestHandler
11
+ def initialize
12
+ @logger = HrrRbSsh::Logger.new self.class.name
13
+ @proc = Proc.new { |context|
14
+ ptm = context.vars[:ptm]
15
+ pts = context.vars[:pts]
16
+
17
+ context.chain_proc { |chain|
18
+ pid = fork do
19
+ ptm.close
20
+ Process.setsid
21
+ STDIN.reopen pts, 'r'
22
+ STDOUT.reopen pts, 'w'
23
+ STDERR.reopen pts, 'w'
24
+ pts.close
25
+ context.vars[:env] ||= Hash.new
26
+ exec context.vars[:env], 'login', '-f', context.username
27
+ end
28
+
29
+ pts.close
30
+
31
+ threads = []
32
+ threads.push Thread.start {
33
+ loop do
34
+ begin
35
+ context.io.write ptm.readpartial(1024)
36
+ rescue EOFError => e
37
+ context.logger.info("ptm is EOF")
38
+ break
39
+ rescue IOError => e
40
+ context.logger.warn("IO is closed")
41
+ break
42
+ rescue => e
43
+ context.logger.error(e.full_message)
44
+ break
45
+ end
46
+ end
47
+ }
48
+ threads.push Thread.start {
49
+ loop do
50
+ begin
51
+ ptm.write context.io.readpartial(1024)
52
+ rescue EOFError => e
53
+ context.logger.info("IO is EOF")
54
+ break
55
+ rescue IOError => e
56
+ context.logger.warn("IO is closed")
57
+ break
58
+ rescue => e
59
+ context.logger.error(e.full_message)
60
+ break
61
+ end
62
+ end
63
+ }
64
+
65
+ pid, status = Process.waitpid2 pid
66
+ threads.each do |t|
67
+ begin
68
+ t.exit
69
+ t.join
70
+ rescue => e
71
+ context.logger.error(e.full_message)
72
+ end
73
+ end
74
+ status.exitstatus
75
+ }
76
+ }
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,21 @@
1
+ # coding: utf-8
2
+ # vim: et ts=2 sw=2
3
+
4
+ require 'io/console'
5
+ require 'hrr_rb_ssh/logger'
6
+ require 'hrr_rb_ssh/connection/request_handler'
7
+
8
+ module HrrRbSsh
9
+ class Connection
10
+ class RequestHandler
11
+ class ReferenceWindowChangeRequestHandler < RequestHandler
12
+ def initialize
13
+ @logger = HrrRbSsh::Logger.new self.class.name
14
+ @proc = Proc.new { |context|
15
+ context.vars[:ptm].winsize = [context.terminal_height_rows, context.terminal_width_columns]
16
+ }
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -16,3 +16,9 @@ module HrrRbSsh
16
16
  end
17
17
  end
18
18
  end
19
+
20
+ require 'hrr_rb_ssh/connection/request_handler/reference_pty_req_request_handler'
21
+ require 'hrr_rb_ssh/connection/request_handler/reference_env_request_handler'
22
+ require 'hrr_rb_ssh/connection/request_handler/reference_shell_request_handler'
23
+ require 'hrr_rb_ssh/connection/request_handler/reference_exec_request_handler'
24
+ require 'hrr_rb_ssh/connection/request_handler/reference_window_change_request_handler'
@@ -2,7 +2,7 @@
2
2
  # vim: et ts=2 sw=2
3
3
 
4
4
  require 'hrr_rb_ssh/data_type'
5
- require 'hrr_rb_ssh/message/codable'
5
+ require 'hrr_rb_ssh/codable'
6
6
 
7
7
  module HrrRbSsh
8
8
  module Message
@@ -2,7 +2,7 @@
2
2
  # vim: et ts=2 sw=2
3
3
 
4
4
  require 'hrr_rb_ssh/data_type'
5
- require 'hrr_rb_ssh/message/codable'
5
+ require 'hrr_rb_ssh/codable'
6
6
 
7
7
  module HrrRbSsh
8
8
  module Message
@@ -2,7 +2,7 @@
2
2
  # vim: et ts=2 sw=2
3
3
 
4
4
  require 'hrr_rb_ssh/data_type'
5
- require 'hrr_rb_ssh/message/codable'
5
+ require 'hrr_rb_ssh/codable'
6
6
 
7
7
  module HrrRbSsh
8
8
  module Message
@@ -2,7 +2,7 @@
2
2
  # vim: et ts=2 sw=2
3
3
 
4
4
  require 'hrr_rb_ssh/data_type'
5
- require 'hrr_rb_ssh/message/codable'
5
+ require 'hrr_rb_ssh/codable'
6
6
 
7
7
  module HrrRbSsh
8
8
  module Message
@@ -2,7 +2,7 @@
2
2
  # vim: et ts=2 sw=2
3
3
 
4
4
  require 'hrr_rb_ssh/data_type'
5
- require 'hrr_rb_ssh/message/codable'
5
+ require 'hrr_rb_ssh/codable'
6
6
 
7
7
  module HrrRbSsh
8
8
  module Message
@@ -2,7 +2,7 @@
2
2
  # vim: et ts=2 sw=2
3
3
 
4
4
  require 'hrr_rb_ssh/data_type'
5
- require 'hrr_rb_ssh/message/codable'
5
+ require 'hrr_rb_ssh/codable'
6
6
 
7
7
  module HrrRbSsh
8
8
  module Message
@@ -2,7 +2,7 @@
2
2
  # vim: et ts=2 sw=2
3
3
 
4
4
  require 'hrr_rb_ssh/data_type'
5
- require 'hrr_rb_ssh/message/codable'
5
+ require 'hrr_rb_ssh/codable'
6
6
 
7
7
  module HrrRbSsh
8
8
  module Message
@@ -2,7 +2,7 @@
2
2
  # vim: et ts=2 sw=2
3
3
 
4
4
  require 'hrr_rb_ssh/data_type'
5
- require 'hrr_rb_ssh/message/codable'
5
+ require 'hrr_rb_ssh/codable'
6
6
 
7
7
  module HrrRbSsh
8
8
  module Message
@@ -0,0 +1,24 @@
1
+ # coding: utf-8
2
+ # vim: et ts=2 sw=2
3
+
4
+ require 'hrr_rb_ssh/data_type'
5
+ require 'hrr_rb_ssh/codable'
6
+
7
+ module HrrRbSsh
8
+ module Message
9
+ module SSH_MSG_KEX_DH_GEX_REQUEST_OLD
10
+ class << self
11
+ include Codable
12
+ end
13
+
14
+ ID = self.name.split('::').last
15
+ VALUE = 30
16
+
17
+ DEFINITION = [
18
+ #[DataType, Field Name]
19
+ [DataType::Byte, 'message number'],
20
+ [DataType::Uint32, 'n'],
21
+ ]
22
+ end
23
+ end
24
+ end
@@ -2,7 +2,7 @@
2
2
  # vim: et ts=2 sw=2
3
3
 
4
4
  require 'hrr_rb_ssh/data_type'
5
- require 'hrr_rb_ssh/message/codable'
5
+ require 'hrr_rb_ssh/codable'
6
6
 
7
7
  module HrrRbSsh
8
8
  module Message
@@ -0,0 +1,25 @@
1
+ # coding: utf-8
2
+ # vim: et ts=2 sw=2
3
+
4
+ require 'hrr_rb_ssh/data_type'
5
+ require 'hrr_rb_ssh/codable'
6
+
7
+ module HrrRbSsh
8
+ module Message
9
+ module SSH_MSG_KEX_DH_GEX_GROUP
10
+ class << self
11
+ include Codable
12
+ end
13
+
14
+ ID = self.name.split('::').last
15
+ VALUE = 31
16
+
17
+ DEFINITION = [
18
+ #[DataType, Field Name]
19
+ [DataType::Byte, 'message number'],
20
+ [DataType::Mpint, 'p'],
21
+ [DataType::Mpint, 'g'],
22
+ ]
23
+ end
24
+ end
25
+ end
@@ -2,7 +2,7 @@
2
2
  # vim: et ts=2 sw=2
3
3
 
4
4
  require 'hrr_rb_ssh/data_type'
5
- require 'hrr_rb_ssh/message/codable'
5
+ require 'hrr_rb_ssh/codable'
6
6
 
7
7
  module HrrRbSsh
8
8
  module Message
@@ -0,0 +1,24 @@
1
+ # coding: utf-8
2
+ # vim: et ts=2 sw=2
3
+
4
+ require 'hrr_rb_ssh/data_type'
5
+ require 'hrr_rb_ssh/codable'
6
+
7
+ module HrrRbSsh
8
+ module Message
9
+ module SSH_MSG_KEX_DH_GEX_INIT
10
+ class << self
11
+ include Codable
12
+ end
13
+
14
+ ID = self.name.split('::').last
15
+ VALUE = 32
16
+
17
+ DEFINITION = [
18
+ #[DataType, Field Name]
19
+ [DataType::Byte, 'message number'],
20
+ [DataType::Mpint, 'e'],
21
+ ]
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,26 @@
1
+ # coding: utf-8
2
+ # vim: et ts=2 sw=2
3
+
4
+ require 'hrr_rb_ssh/data_type'
5
+ require 'hrr_rb_ssh/codable'
6
+
7
+ module HrrRbSsh
8
+ module Message
9
+ module SSH_MSG_KEX_DH_GEX_REPLY
10
+ class << self
11
+ include Codable
12
+ end
13
+
14
+ ID = self.name.split('::').last
15
+ VALUE = 33
16
+
17
+ DEFINITION = [
18
+ #[DataType, Field Name]
19
+ [DataType::Byte, 'message number'],
20
+ [DataType::String, 'server public host key and certificates (K_S)'],
21
+ [DataType::Mpint, 'f'],
22
+ [DataType::String, 'signature of H'],
23
+ ]
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ # coding: utf-8
2
+ # vim: et ts=2 sw=2
3
+
4
+ require 'hrr_rb_ssh/data_type'
5
+ require 'hrr_rb_ssh/codable'
6
+
7
+ module HrrRbSsh
8
+ module Message
9
+ module SSH_MSG_KEX_DH_GEX_REQUEST
10
+ class << self
11
+ include Codable
12
+ end
13
+
14
+ ID = self.name.split('::').last
15
+ VALUE = 34
16
+
17
+ DEFINITION = [
18
+ #[DataType, Field Name]
19
+ [DataType::Byte, 'message number'],
20
+ [DataType::Uint32, 'min'],
21
+ [DataType::Uint32, 'n'],
22
+ [DataType::Uint32, 'max'],
23
+ ]
24
+ end
25
+ end
26
+ end
@@ -2,7 +2,7 @@
2
2
  # vim: et ts=2 sw=2
3
3
 
4
4
  require 'hrr_rb_ssh/data_type'
5
- require 'hrr_rb_ssh/message/codable'
5
+ require 'hrr_rb_ssh/codable'
6
6
 
7
7
  module HrrRbSsh
8
8
  module Message
@@ -2,7 +2,7 @@
2
2
  # vim: et ts=2 sw=2
3
3
 
4
4
  require 'hrr_rb_ssh/data_type'
5
- require 'hrr_rb_ssh/message/codable'
5
+ require 'hrr_rb_ssh/codable'
6
6
 
7
7
  module HrrRbSsh
8
8
  module Message
@@ -2,7 +2,7 @@
2
2
  # vim: et ts=2 sw=2
3
3
 
4
4
  require 'hrr_rb_ssh/data_type'
5
- require 'hrr_rb_ssh/message/codable'
5
+ require 'hrr_rb_ssh/codable'
6
6
 
7
7
  module HrrRbSsh
8
8
  module Message
@@ -2,7 +2,7 @@
2
2
  # vim: et ts=2 sw=2
3
3
 
4
4
  require 'hrr_rb_ssh/data_type'
5
- require 'hrr_rb_ssh/message/codable'
5
+ require 'hrr_rb_ssh/codable'
6
6
 
7
7
  module HrrRbSsh
8
8
  module Message
@@ -2,7 +2,7 @@
2
2
  # vim: et ts=2 sw=2
3
3
 
4
4
  require 'hrr_rb_ssh/data_type'
5
- require 'hrr_rb_ssh/message/codable'
5
+ require 'hrr_rb_ssh/codable'
6
6
 
7
7
  module HrrRbSsh
8
8
  module Message
@@ -2,7 +2,7 @@
2
2
  # vim: et ts=2 sw=2
3
3
 
4
4
  require 'hrr_rb_ssh/data_type'
5
- require 'hrr_rb_ssh/message/codable'
5
+ require 'hrr_rb_ssh/codable'
6
6
 
7
7
  module HrrRbSsh
8
8
  module Message
@@ -2,7 +2,7 @@
2
2
  # vim: et ts=2 sw=2
3
3
 
4
4
  require 'hrr_rb_ssh/data_type'
5
- require 'hrr_rb_ssh/message/codable'
5
+ require 'hrr_rb_ssh/codable'
6
6
 
7
7
  module HrrRbSsh
8
8
  module Message
@@ -2,7 +2,7 @@
2
2
  # vim: et ts=2 sw=2
3
3
 
4
4
  require 'hrr_rb_ssh/data_type'
5
- require 'hrr_rb_ssh/message/codable'
5
+ require 'hrr_rb_ssh/codable'
6
6
 
7
7
  module HrrRbSsh
8
8
  module Message
@@ -2,7 +2,7 @@
2
2
  # vim: et ts=2 sw=2
3
3
 
4
4
  require 'hrr_rb_ssh/data_type'
5
- require 'hrr_rb_ssh/message/codable'
5
+ require 'hrr_rb_ssh/codable'
6
6
 
7
7
  module HrrRbSsh
8
8
  module Message
@@ -2,7 +2,7 @@
2
2
  # vim: et ts=2 sw=2
3
3
 
4
4
  require 'hrr_rb_ssh/data_type'
5
- require 'hrr_rb_ssh/message/codable'
5
+ require 'hrr_rb_ssh/codable'
6
6
 
7
7
  module HrrRbSsh
8
8
  module Message
@@ -2,7 +2,7 @@
2
2
  # vim: et ts=2 sw=2
3
3
 
4
4
  require 'hrr_rb_ssh/data_type'
5
- require 'hrr_rb_ssh/message/codable'
5
+ require 'hrr_rb_ssh/codable'
6
6
 
7
7
  module HrrRbSsh
8
8
  module Message
@@ -2,7 +2,7 @@
2
2
  # vim: et ts=2 sw=2
3
3
 
4
4
  require 'hrr_rb_ssh/data_type'
5
- require 'hrr_rb_ssh/message/codable'
5
+ require 'hrr_rb_ssh/codable'
6
6
 
7
7
  module HrrRbSsh
8
8
  module Message
@@ -2,7 +2,7 @@
2
2
  # vim: et ts=2 sw=2
3
3
 
4
4
  require 'hrr_rb_ssh/data_type'
5
- require 'hrr_rb_ssh/message/codable'
5
+ require 'hrr_rb_ssh/codable'
6
6
 
7
7
  module HrrRbSsh
8
8
  module Message
@@ -2,7 +2,7 @@
2
2
  # vim: et ts=2 sw=2
3
3
 
4
4
  require 'hrr_rb_ssh/data_type'
5
- require 'hrr_rb_ssh/message/codable'
5
+ require 'hrr_rb_ssh/codable'
6
6
 
7
7
  module HrrRbSsh
8
8
  module Message
@@ -2,7 +2,7 @@
2
2
  # vim: et ts=2 sw=2
3
3
 
4
4
  require 'hrr_rb_ssh/data_type'
5
- require 'hrr_rb_ssh/message/codable'
5
+ require 'hrr_rb_ssh/codable'
6
6
 
7
7
  module HrrRbSsh
8
8
  module Message
@@ -2,7 +2,7 @@
2
2
  # vim: et ts=2 sw=2
3
3
 
4
4
  require 'hrr_rb_ssh/data_type'
5
- require 'hrr_rb_ssh/message/codable'
5
+ require 'hrr_rb_ssh/codable'
6
6
 
7
7
  module HrrRbSsh
8
8
  module Message
@@ -2,7 +2,7 @@
2
2
  # vim: et ts=2 sw=2
3
3
 
4
4
  require 'hrr_rb_ssh/data_type'
5
- require 'hrr_rb_ssh/message/codable'
5
+ require 'hrr_rb_ssh/codable'
6
6
 
7
7
  module HrrRbSsh
8
8
  module Message
@@ -2,7 +2,7 @@
2
2
  # vim: et ts=2 sw=2
3
3
 
4
4
  require 'hrr_rb_ssh/data_type'
5
- require 'hrr_rb_ssh/message/codable'
5
+ require 'hrr_rb_ssh/codable'
6
6
 
7
7
  module HrrRbSsh
8
8
  module Message
@@ -11,6 +11,11 @@ require 'hrr_rb_ssh/message/020_ssh_msg_kexinit'
11
11
  require 'hrr_rb_ssh/message/021_ssh_msg_newkeys'
12
12
  require 'hrr_rb_ssh/message/030_ssh_msg_kexdh_init'
13
13
  require 'hrr_rb_ssh/message/031_ssh_msg_kexdh_reply'
14
+ require 'hrr_rb_ssh/message/030_ssh_msg_kex_dh_gex_request_old'
15
+ require 'hrr_rb_ssh/message/031_ssh_msg_kex_dh_gex_group'
16
+ require 'hrr_rb_ssh/message/032_ssh_msg_kex_dh_gex_init'
17
+ require 'hrr_rb_ssh/message/033_ssh_msg_kex_dh_gex_reply'
18
+ require 'hrr_rb_ssh/message/034_ssh_msg_kex_dh_gex_request'
14
19
  require 'hrr_rb_ssh/message/050_ssh_msg_userauth_request'
15
20
  require 'hrr_rb_ssh/message/051_ssh_msg_userauth_failure'
16
21
  require 'hrr_rb_ssh/message/052_ssh_msg_userauth_success'
@@ -0,0 +1,29 @@
1
+ # coding: utf-8
2
+ # vim: et ts=2 sw=2
3
+
4
+ require 'hrr_rb_ssh/data_type'
5
+ require 'hrr_rb_ssh/codable'
6
+
7
+ module HrrRbSsh
8
+ class Transport
9
+ class KexAlgorithm
10
+ module DiffieHellman
11
+ module H0
12
+ class << self
13
+ include Codable
14
+ end
15
+ DEFINITION = [
16
+ [DataType::String, 'V_C'],
17
+ [DataType::String, 'V_S'],
18
+ [DataType::String, 'I_C'],
19
+ [DataType::String, 'I_S'],
20
+ [DataType::String, 'K_S'],
21
+ [DataType::Mpint, 'e'],
22
+ [DataType::Mpint, 'f'],
23
+ [DataType::Mpint, 'k'],
24
+ ]
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end