net-ssh 0.5.0

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 (179) hide show
  1. data/doc/LICENSE-BSD +27 -0
  2. data/doc/LICENSE-GPL +280 -0
  3. data/doc/LICENSE-RUBY +56 -0
  4. data/doc/README +13 -0
  5. data/doc/manual-html/chapter-1.html +333 -0
  6. data/doc/manual-html/chapter-2.html +455 -0
  7. data/doc/manual-html/chapter-3.html +413 -0
  8. data/doc/manual-html/chapter-4.html +353 -0
  9. data/doc/manual-html/chapter-5.html +393 -0
  10. data/doc/manual-html/chapter-6.html +296 -0
  11. data/doc/manual-html/index.html +217 -0
  12. data/doc/manual-html/manual.css +192 -0
  13. data/doc/manual/chapter.erb +18 -0
  14. data/doc/manual/example.erb +18 -0
  15. data/doc/manual/index.erb +29 -0
  16. data/doc/manual/manual.css +192 -0
  17. data/doc/manual/manual.rb +240 -0
  18. data/doc/manual/manual.yml +67 -0
  19. data/doc/manual/page.erb +87 -0
  20. data/doc/manual/parts/channels_callbacks.txt +32 -0
  21. data/doc/manual/parts/channels_loop.txt +14 -0
  22. data/doc/manual/parts/channels_open.txt +20 -0
  23. data/doc/manual/parts/channels_operations.txt +15 -0
  24. data/doc/manual/parts/channels_types.txt +3 -0
  25. data/doc/manual/parts/channels_what_are.txt +7 -0
  26. data/doc/manual/parts/exec_channels.txt +28 -0
  27. data/doc/manual/parts/exec_open.txt +51 -0
  28. data/doc/manual/parts/exec_popen3.txt +35 -0
  29. data/doc/manual/parts/forward_direct.txt +37 -0
  30. data/doc/manual/parts/forward_handlers.txt +16 -0
  31. data/doc/manual/parts/forward_intro.txt +18 -0
  32. data/doc/manual/parts/forward_local.txt +18 -0
  33. data/doc/manual/parts/forward_remote.txt +14 -0
  34. data/doc/manual/parts/intro_author.txt +1 -0
  35. data/doc/manual/parts/intro_getting.txt +39 -0
  36. data/doc/manual/parts/intro_license.txt +6 -0
  37. data/doc/manual/parts/intro_support.txt +7 -0
  38. data/doc/manual/parts/intro_what_is.txt +7 -0
  39. data/doc/manual/parts/intro_what_is_not.txt +3 -0
  40. data/doc/manual/parts/proxy_http.txt +52 -0
  41. data/doc/manual/parts/proxy_intro.txt +1 -0
  42. data/doc/manual/parts/proxy_socks.txt +23 -0
  43. data/doc/manual/parts/session_key.txt +66 -0
  44. data/doc/manual/parts/session_options.txt +42 -0
  45. data/doc/manual/parts/session_session.txt +14 -0
  46. data/doc/manual/parts/session_start.txt +49 -0
  47. data/doc/manual/tutorial.erb +30 -0
  48. data/examples/channel-demo.rb +81 -0
  49. data/examples/port-forward.rb +51 -0
  50. data/examples/process-demo.rb +91 -0
  51. data/examples/remote-net-port-forward.rb +45 -0
  52. data/examples/remote-port-forward.rb +80 -0
  53. data/examples/tail-demo.rb +49 -0
  54. data/lib/net/ssh.rb +52 -0
  55. data/lib/net/ssh/connection/channel.rb +411 -0
  56. data/lib/net/ssh/connection/constants.rb +47 -0
  57. data/lib/net/ssh/connection/driver.rb +343 -0
  58. data/lib/net/ssh/connection/services.rb +72 -0
  59. data/lib/net/ssh/connection/term.rb +90 -0
  60. data/lib/net/ssh/errors.rb +27 -0
  61. data/lib/net/ssh/proxy/errors.rb +34 -0
  62. data/lib/net/ssh/proxy/http.rb +126 -0
  63. data/lib/net/ssh/proxy/socks4.rb +83 -0
  64. data/lib/net/ssh/proxy/socks5.rb +160 -0
  65. data/lib/net/ssh/service/forward/driver.rb +319 -0
  66. data/lib/net/ssh/service/forward/local-network-handler.rb +74 -0
  67. data/lib/net/ssh/service/forward/remote-network-handler.rb +81 -0
  68. data/lib/net/ssh/service/forward/services.rb +76 -0
  69. data/lib/net/ssh/service/process/driver.rb +153 -0
  70. data/lib/net/ssh/service/process/open.rb +193 -0
  71. data/lib/net/ssh/service/process/popen3.rb +160 -0
  72. data/lib/net/ssh/service/process/services.rb +66 -0
  73. data/lib/net/ssh/service/services.rb +44 -0
  74. data/lib/net/ssh/session.rb +242 -0
  75. data/lib/net/ssh/transport/algorithm-negotiator.rb +267 -0
  76. data/lib/net/ssh/transport/compress/compressor.rb +53 -0
  77. data/lib/net/ssh/transport/compress/decompressor.rb +53 -0
  78. data/lib/net/ssh/transport/compress/none-compressor.rb +39 -0
  79. data/lib/net/ssh/transport/compress/none-decompressor.rb +39 -0
  80. data/lib/net/ssh/transport/compress/services.rb +68 -0
  81. data/lib/net/ssh/transport/compress/zlib-compressor.rb +60 -0
  82. data/lib/net/ssh/transport/compress/zlib-decompressor.rb +52 -0
  83. data/lib/net/ssh/transport/constants.rb +66 -0
  84. data/lib/net/ssh/transport/errors.rb +47 -0
  85. data/lib/net/ssh/transport/identity-cipher.rb +61 -0
  86. data/lib/net/ssh/transport/kex/dh-gex.rb +106 -0
  87. data/lib/net/ssh/transport/kex/dh.rb +231 -0
  88. data/lib/net/ssh/transport/kex/services.rb +60 -0
  89. data/lib/net/ssh/transport/ossl/buffer-factory.rb +52 -0
  90. data/lib/net/ssh/transport/ossl/buffer.rb +87 -0
  91. data/lib/net/ssh/transport/ossl/cipher-factory.rb +98 -0
  92. data/lib/net/ssh/transport/ossl/digest-factory.rb +51 -0
  93. data/lib/net/ssh/transport/ossl/hmac-factory.rb +71 -0
  94. data/lib/net/ssh/transport/ossl/hmac/hmac.rb +62 -0
  95. data/lib/net/ssh/transport/ossl/hmac/md5-96.rb +44 -0
  96. data/lib/net/ssh/transport/ossl/hmac/md5.rb +46 -0
  97. data/lib/net/ssh/transport/ossl/hmac/none.rb +46 -0
  98. data/lib/net/ssh/transport/ossl/hmac/services.rb +68 -0
  99. data/lib/net/ssh/transport/ossl/hmac/sha1-96.rb +44 -0
  100. data/lib/net/ssh/transport/ossl/hmac/sha1.rb +45 -0
  101. data/lib/net/ssh/transport/ossl/key-factory.rb +113 -0
  102. data/lib/net/ssh/transport/ossl/services.rb +149 -0
  103. data/lib/net/ssh/transport/packet-stream.rb +210 -0
  104. data/lib/net/ssh/transport/services.rb +146 -0
  105. data/lib/net/ssh/transport/session.rb +296 -0
  106. data/lib/net/ssh/transport/version-negotiator.rb +73 -0
  107. data/lib/net/ssh/userauth/agent.rb +218 -0
  108. data/lib/net/ssh/userauth/constants.rb +35 -0
  109. data/lib/net/ssh/userauth/driver.rb +176 -0
  110. data/lib/net/ssh/userauth/methods/hostbased.rb +119 -0
  111. data/lib/net/ssh/userauth/methods/password.rb +70 -0
  112. data/lib/net/ssh/userauth/methods/publickey.rb +137 -0
  113. data/lib/net/ssh/userauth/methods/services.rb +63 -0
  114. data/lib/net/ssh/userauth/services.rb +126 -0
  115. data/lib/net/ssh/userauth/userkeys.rb +258 -0
  116. data/lib/net/ssh/util/buffer.rb +274 -0
  117. data/lib/net/ssh/util/openssl.rb +146 -0
  118. data/lib/net/ssh/util/prompter.rb +73 -0
  119. data/lib/net/ssh/version.rb +29 -0
  120. data/test/ALL-TESTS.rb +21 -0
  121. data/test/connection/tc_channel.rb +136 -0
  122. data/test/connection/tc_driver.rb +287 -0
  123. data/test/connection/tc_integration.rb +85 -0
  124. data/test/proxy/tc_http.rb +209 -0
  125. data/test/proxy/tc_socks4.rb +148 -0
  126. data/test/proxy/tc_socks5.rb +214 -0
  127. data/test/service/forward/tc_driver.rb +289 -0
  128. data/test/service/forward/tc_local_network_handler.rb +123 -0
  129. data/test/service/forward/tc_remote_network_handler.rb +108 -0
  130. data/test/service/process/tc_driver.rb +79 -0
  131. data/test/service/process/tc_integration.rb +117 -0
  132. data/test/service/process/tc_open.rb +179 -0
  133. data/test/service/process/tc_popen3.rb +164 -0
  134. data/test/tc_integration.rb +79 -0
  135. data/test/transport/compress/tc_none_compress.rb +41 -0
  136. data/test/transport/compress/tc_none_decompress.rb +45 -0
  137. data/test/transport/compress/tc_zlib_compress.rb +61 -0
  138. data/test/transport/compress/tc_zlib_decompress.rb +48 -0
  139. data/test/transport/kex/tc_dh.rb +304 -0
  140. data/test/transport/kex/tc_dh_gex.rb +70 -0
  141. data/test/transport/ossl/fixtures/dsa-encrypted +15 -0
  142. data/test/transport/ossl/fixtures/dsa-encrypted-bad +15 -0
  143. data/test/transport/ossl/fixtures/dsa-unencrypted +12 -0
  144. data/test/transport/ossl/fixtures/dsa-unencrypted-bad +12 -0
  145. data/test/transport/ossl/fixtures/dsa-unencrypted.pub +1 -0
  146. data/test/transport/ossl/fixtures/not-a-private-key +4 -0
  147. data/test/transport/ossl/fixtures/not-supported +2 -0
  148. data/test/transport/ossl/fixtures/rsa-encrypted +18 -0
  149. data/test/transport/ossl/fixtures/rsa-encrypted-bad +18 -0
  150. data/test/transport/ossl/fixtures/rsa-unencrypted +15 -0
  151. data/test/transport/ossl/fixtures/rsa-unencrypted-bad +15 -0
  152. data/test/transport/ossl/fixtures/rsa-unencrypted.pub +1 -0
  153. data/test/transport/ossl/hmac/tc_hmac.rb +58 -0
  154. data/test/transport/ossl/hmac/tc_md5.rb +50 -0
  155. data/test/transport/ossl/hmac/tc_md5_96.rb +50 -0
  156. data/test/transport/ossl/hmac/tc_none.rb +50 -0
  157. data/test/transport/ossl/hmac/tc_sha1.rb +50 -0
  158. data/test/transport/ossl/hmac/tc_sha1_96.rb +50 -0
  159. data/test/transport/ossl/tc_buffer.rb +97 -0
  160. data/test/transport/ossl/tc_buffer_factory.rb +67 -0
  161. data/test/transport/ossl/tc_cipher_factory.rb +84 -0
  162. data/test/transport/ossl/tc_digest_factory.rb +39 -0
  163. data/test/transport/ossl/tc_hmac_factory.rb +72 -0
  164. data/test/transport/ossl/tc_key_factory.rb +199 -0
  165. data/test/transport/tc_algorithm_negotiator.rb +169 -0
  166. data/test/transport/tc_identity_cipher.rb +52 -0
  167. data/test/transport/tc_integration.rb +110 -0
  168. data/test/transport/tc_packet_stream.rb +183 -0
  169. data/test/transport/tc_session.rb +283 -0
  170. data/test/transport/tc_version_negotiator.rb +86 -0
  171. data/test/userauth/methods/tc_hostbased.rb +136 -0
  172. data/test/userauth/methods/tc_password.rb +89 -0
  173. data/test/userauth/methods/tc_publickey.rb +167 -0
  174. data/test/userauth/tc_agent.rb +223 -0
  175. data/test/userauth/tc_driver.rb +190 -0
  176. data/test/userauth/tc_integration.rb +81 -0
  177. data/test/userauth/tc_userkeys.rb +265 -0
  178. data/test/util/tc_buffer.rb +217 -0
  179. metadata +256 -0
@@ -0,0 +1,70 @@
1
+ #--
2
+ # =============================================================================
3
+ # Copyright (c) 2004, Jamis Buck (jgb3@email.byu.edu)
4
+ # All rights reserved.
5
+ #
6
+ # This source file is distributed as part of the Net::SSH Secure Shell Client
7
+ # library for Ruby. This file (and the library as a whole) may be used only as
8
+ # allowed by either the BSD license, or the Ruby license (or, by association
9
+ # with the Ruby license, the GPL). See the "doc" subdirectory of the Net::SSH
10
+ # distribution for the texts of these licenses.
11
+ # -----------------------------------------------------------------------------
12
+ # net-ssh website : http://net-ssh.rubyforge.org
13
+ # project website: http://rubyforge.org/projects/net-ssh
14
+ # =============================================================================
15
+ #++
16
+
17
+ $:.unshift "../../../lib"
18
+ $:.unshift File.dirname( __FILE__ )
19
+
20
+ require 'tc_dh'
21
+
22
+ require 'net/ssh/errors'
23
+ require 'net/ssh/transport/kex/dh-gex'
24
+ require 'net/ssh/util/buffer'
25
+ require 'test/unit'
26
+ require 'ostruct'
27
+
28
+ class TC_KEX_DH_GEX < TC_KEX_DH
29
+
30
+ def setup
31
+ @kex = Net::SSH::Transport::Kex::DiffieHellmanGroupExchangeSHA1.new(
32
+ MockBNs.new, MockDigests.new )
33
+ @kex.keys = MockKeys.new
34
+ @kex.buffers = MockBuffers.new
35
+
36
+ @init = 32
37
+ @reply = 33
38
+ @session_id = "\0\0\0\1A\0\0\0\1B\0\0\0\1C\0\0\0\1D\0\0\0\1E\0\0\4\0\0\0\0\0\0\0\40\0[2][6][10][20][30]"
39
+
40
+ @exchange_keys_script = [
41
+ 31,
42
+ MockReaderBuffer.new( "\0\0\0\00210\0\0\0\00220" ),
43
+ @reply,
44
+ MockReaderBuffer.new( "\0\0\0\10key blob\0\0\0\0041001\0\0\0\27\0\0\0\10ssh-test\0\0\0\11signature" ),
45
+ 21,
46
+ nil
47
+ ]
48
+
49
+ @exchange_keys_session_id =
50
+ "\0\0\0\1A\0\0\0\1B\0\0\0\1C\0\0\0\1D\0\0\0\10key blob\0\0\4\0\0\0\4\0\0\0\40\0[10][20][1024][1001][9]"
51
+ end
52
+
53
+ def test_generate_key
54
+ session = MockSession.new(
55
+ 31,
56
+ MockReaderBuffer.new( "\0\0\0\00210\0\0\0\00220" )
57
+ )
58
+
59
+ dh = nil
60
+ assert_nothing_raised do
61
+ dh = @kex.generate_key( session, { :need_bytes=>200 } )
62
+ end
63
+
64
+ assert_equal 10, dh.p.to_i
65
+ assert_equal 20, dh.g.to_i
66
+ assert_equal 1600, dh.priv_key
67
+ end
68
+
69
+
70
+ end
@@ -0,0 +1,15 @@
1
+ -----BEGIN DSA PRIVATE KEY-----
2
+ Proc-Type: 4,ENCRYPTED
3
+ DEK-Info: DES-EDE3-CBC,CA86D7A7E5A0B7BE
4
+
5
+ 1vrZ2e7mdVzJoM+J9kASLq6UPPofc1OPqV4WF0wwobAUBKT1zDL8ufSxBLEGsoss
6
+ CJg2qHL4Jq+KYfIjR2AwF0HPvAiAkNE4wZq+DuNRKuNtbv33KeINuD4AhpK0G3a/
7
+ uVEr+qjlmwPDeILrhtC6h+s3zfu0pm2RS7azRb/Hgr6Zh1bQ44ld6UyS5ye+9GNo
8
+ MJobG7W2IN/9AroaxlzFOOjax9w/f/zEfKjzsf/HaKjGq62rddAD9I19Vo2XSjzw
9
+ bVJuTpz8N7bJC14xmd199L/ZJiFTtVjCroQgcrrOvz/fBbJm6TQ0sDP4rwTDygB3
10
+ sVdVgkkFrK3d72TTqx4Kf126yLERmH4SUJGaZHu9QixDuGeL5TUuv18ppDvrirk5
11
+ 0/DQHop7CzIyr89VDeH3MN5g5Ab2TOz47vifaS9lcED1ipcDuN5kklAtRVKFRs7V
12
+ hN9W4u5gjR15+zAva+ELonRcKNCmqL6UmaXeiCJTaPECI0rsWH3TpcOH4ZlCSMkX
13
+ HMgqOFgWbqrpjggsYaTAc7w50YSPs7RekiII7/C7drjn43k4TMOIvt1olV271vCs
14
+ K8Hreca4AhJQiiw+pSOPqw==
15
+ -----END DSA PRIVATE KEY-----
@@ -0,0 +1,15 @@
1
+ -----BEGIN DSA PRIVATE KEY-----
2
+ Proc-Type: 4,ENCRYPTED
3
+ DEK-Info: DES-EDE3-CBC,CA86D7A7E5A0B7BE
4
+
5
+ KvrZ2e7mdVzJoM+J9kASLq6UPPofc1OPqV4WF0wwobAUBKT1zDL8ufSxBLEGsoss
6
+ CJg2qHL4Jq+KYfIjR2AwF0HPvAiAkNE4wZq+DuNRKuNtbv33KeINuD4AhpK0G3a/
7
+ uVEr+qjlmwPDeILrhtC6h+s3zfu0pm2RS7azRb/Hgr6Zh1bQ44ld6UyS5ye+9GNo
8
+ MJobG7W2IN/9AroaxlzFOOjax9w/f/zEfKjzsf/HaKjGq62rddAD9I19Vo2XSjzw
9
+ bVJuTpz8N7bJC14xmd199L/ZJiFTtVjCroQgcrrOvz/fBbJm6TQ0sDP4rwTDygB3
10
+ sVdVgkkFrK3d72TTqx4Kf126yLERmH4SUJGaZHu9QixDuGeL5TUuv18ppDvrirk5
11
+ 0/DQHop7CzIyr89VDeH3MN5g5Ab2TOz47vifaS9lcED1ipcDuN5kklAtRVKFRs7V
12
+ hN9W4u5gjR15+zAva+ELonRcKNCmqL6UmaXeiCJTaPECI0rsWH3TpcOH4ZlCSMkX
13
+ HMgqOFgWbqrpjggsYaTAc7w50YSPs7RekiII7/C7drjn43k4TMOIvt1olV271vCs
14
+ K8Hreca4AhJQiiw+pSOPqw==
15
+ -----END DSA PRIVATE KEY-----
@@ -0,0 +1,12 @@
1
+ -----BEGIN DSA PRIVATE KEY-----
2
+ MIIBuwIBAAKBgQCFWkGxWvLT0uy8xsTUCn+Dl+tp8t3ZziTkqxgKCeBEAcgro223
3
+ 9+IauVzN7KNuH1yFyVU3pT+jgqWBbicros1sJsktz4rP5Mgwim8kfiz0Rg5i4VXp
4
+ Dca7JAk7frWthdTwPswO6xbKH3ZNlcQ3VxE1vGqAOD75053en9oRaO/wlQIVAODO
5
+ ZS2mApa35TsWl/kw6L/7lkclAoGAXET5WGUpGXHWUdrK3DUs/Nq8Ews6yYMtnJcV
6
+ KdS1mOX5dJXMTtFZ+9y/Yq7cDT5PihL8XG91gar+qtU2hZyJd3afnczQ0t7KY5FV
7
+ Urfw0wR4xca40u6q6gtTxXgrQMio/Wxl7dg7AqBoQj5b4H1AUhqrJ6HY0zYNE0Md
8
+ alvxxgACgYAlu5scvM48376lMovWPnh71tYLxAc6bkniDtKrYX1HGGOSJ1JtmCmh
9
+ ybNniZrUlH6MgT9U8oCgxZ5NZNvp3qAfNly3ZPdxV8cHJ5zKekE6FfPnb0ezt1GM
10
+ ybSZ+W8NRKHI6AJemSZHQEyhcDOf3QHhKLIXB8oRyNiblyAW4+ETJAIVAICvqsKR
11
+ I73VBK97NFDnvuZe9NyR
12
+ -----END DSA PRIVATE KEY-----
@@ -0,0 +1,12 @@
1
+ -----BEGIN DSA PRIVATE KEY-----
2
+ KIIBuwIBAAKBgQCFWkGxWvLT0uy8xsTUCn+Dl+tp8t3ZziTkqxgKCeBEAcgro223
3
+ 9+IauVzN7KNuH1yFyVU3pT+jgqWBbicros1sJsktz4rP5Mgwim8kfiz0Rg5i4VXp
4
+ Dca7JAk7frWthdTwPswO6xbKH3ZNlcQ3VxE1vGqAOD75053en9oRaO/wlQIVAODO
5
+ ZS2mApa35TsWl/kw6L/7lkclAoGAXET5WGUpGXHWUdrK3DUs/Nq8Ews6yYMtnJcV
6
+ KdS1mOX5dJXMTtFZ+9y/Yq7cDT5PihL8XG91gar+qtU2hZyJd3afnczQ0t7KY5FV
7
+ Urfw0wR4xca40u6q6gtTxXgrQMio/Wxl7dg7AqBoQj5b4H1AUhqrJ6HY0zYNE0Md
8
+ alvxxgACgYAlu5scvM48376lMovWPnh71tYLxAc6bkniDtKrYX1HGGOSJ1JtmCmh
9
+ ybNniZrUlH6MgT9U8oCgxZ5NZNvp3qAfNly3ZPdxV8cHJ5zKekE6FfPnb0ezt1GM
10
+ ybSZ+W8NRKHI6AJemSZHQEyhcDOf3QHhKLIXB8oRyNiblyAW4+ETJAIVAICvqsKR
11
+ I73VBK97NFDnvuZe9NyR
12
+ -----END DSA PRIVATE KEY-----
@@ -0,0 +1 @@
1
+ ssh-dss AAAAB3NzaC1kc3MAAACBAIVaQbFa8tPS7LzGxNQKf4OX62ny3dnOJOSrGAoJ4EQByCujbbf34hq5XM3so24fXIXJVTelP6OCpYFuJyuizWwmyS3Pis/kyDCKbyR+LPRGDmLhVekNxrskCTt+ta2F1PA+zA7rFsofdk2VxDdXETW8aoA4PvnTnd6f2hFo7/CVAAAAFQDgzmUtpgKWt+U7Fpf5MOi/+5ZHJQAAAIBcRPlYZSkZcdZR2srcNSz82rwTCzrJgy2clxUp1LWY5fl0lcxO0Vn73L9irtwNPk+KEvxcb3WBqv6q1TaFnIl3dp+dzNDS3spjkVVSt/DTBHjFxrjS7qrqC1PFeCtAyKj9bGXt2DsCoGhCPlvgfUBSGqsnodjTNg0TQx1qW/HGAAAAAIAlu5scvM48376lMovWPnh71tYLxAc6bkniDtKrYX1HGGOSJ1JtmCmhybNniZrUlH6MgT9U8oCgxZ5NZNvp3qAfNly3ZPdxV8cHJ5zKekE6FfPnb0ezt1GMybSZ+W8NRKHI6AJemSZHQEyhcDOf3QHhKLIXB8oRyNiblyAW4+ETJA== jgb3@serling
@@ -0,0 +1,4 @@
1
+ But soft!
2
+ What light through yonder window breaks?
3
+ It is the east,
4
+ And Juliet is the sun.
@@ -0,0 +1,2 @@
1
+ -----BEGIN BOGUS PRIVATE KEY-----
2
+ Howdy doody time, pardner!
@@ -0,0 +1,18 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ Proc-Type: 4,ENCRYPTED
3
+ DEK-Info: DES-EDE3-CBC,E5D25575E4BE33DA
4
+
5
+ I0g6GVn6BbpYPtjoq6rXHmVNBdEuNP/ZM2esybJE5sDKOd24KvfEbZfkBJbmRJuv
6
+ HKap4LkwW5uGMX2A2Gm1HNmuL3kya+iU2IUiRbE9ucOY/45Il0GRl2EHPbmlSKFO
7
+ ir9dKN4PnuJVWTNvg5AlnTFJmrd9gY3q2VzWLqHkJjd2RqcdH32o8P9JNJ3MyBh1
8
+ 0r/oD7gvVEhwAldnCqSPZKDKJI7kO3iwl6NJguwpSxAl5aDiH7Cpf1ObCzG5J25j
9
+ P72l2Ruuen6tVLUxmisSyVzKqRBgYg9SkjKm1/8gG4giVXOsQFrRMKCzVpd0wB+j
10
+ V6u3u3EVqvEOOAzV2X4DyE5a0PECRSyCnjO4s2mPPkxxqpruRxs1aV27hZ0Wr4NI
11
+ nAzbDWKdvbI12vZbDPYD7RWNkdC+Plc8g98RvJ1ia8gMuOxCQ7ov1cCrenKFG503
12
+ frdSe4ndn1XNc1S5yrcQjPrS2lCE+ev17ZTiOsNWCzhXQwbJVEWr316fkS1Xz50/
13
+ TR2kicEWKRJqxhzw2xO3ud1jiSFezBS7KjlB8oR+OSBBjbFdh5mAtkL6Gz0C/CyB
14
+ nPrOlyDKMRRBrXgsJ13ty/GpFyrC0n2+0bMVtu7Sn6QDxzLittxV5rD8EBAasHkP
15
+ jD+JH4LI/eP+2UtFphrzqFc9sAGtvsicobL4RgMXQaPR5yhXDreW9ynmJSRYeH9Z
16
+ PoBVguFkub+IeMQybu8PuSsHcdAVtsbV9CGKztdSaziIIBsZUzBqk+i9DLRi1T5l
17
+ 9IAvQiHtrF6+iyVsRD3nVo/4JYnOllhSvk4q1EQKhmLFBjTcZBklIQ==
18
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,18 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ Proc-Type: 4,ENCRYPTED
3
+ DEK-Info: DES-EDE3-CBC,E5D25575E4BE33DA
4
+
5
+ K0g6GVn6BbpYPtjoq6rXHmVNBdEuNP/ZM2esybJE5sDKOd24KvfEbZfkBJbmRJuv
6
+ HKap4LkwW5uGMX2A2Gm1HNmuL3kya+iU2IUiRbE9ucOY/45Il0GRl2EHPbmlSKFO
7
+ ir9dKN4PnuJVWTNvg5AlnTFJmrd9gY3q2VzWLqHkJjd2RqcdH32o8P9JNJ3MyBh1
8
+ 0r/oD7gvVEhwAldnCqSPZKDKJI7kO3iwl6NJguwpSxAl5aDiH7Cpf1ObCzG5J25j
9
+ P72l2Ruuen6tVLUxmisSyVzKqRBgYg9SkjKm1/8gG4giVXOsQFrRMKCzVpd0wB+j
10
+ V6u3u3EVqvEOOAzV2X4DyE5a0PECRSyCnjO4s2mPPkxxqpruRxs1aV27hZ0Wr4NI
11
+ nAzbDWKdvbI12vZbDPYD7RWNkdC+Plc8g98RvJ1ia8gMuOxCQ7ov1cCrenKFG503
12
+ frdSe4ndn1XNc1S5yrcQjPrS2lCE+ev17ZTiOsNWCzhXQwbJVEWr316fkS1Xz50/
13
+ TR2kicEWKRJqxhzw2xO3ud1jiSFezBS7KjlB8oR+OSBBjbFdh5mAtkL6Gz0C/CyB
14
+ nPrOlyDKMRRBrXgsJ13ty/GpFyrC0n2+0bMVtu7Sn6QDxzLittxV5rD8EBAasHkP
15
+ jD+JH4LI/eP+2UtFphrzqFc9sAGtvsicobL4RgMXQaPR5yhXDreW9ynmJSRYeH9Z
16
+ PoBVguFkub+IeMQybu8PuSsHcdAVtsbV9CGKztdSaziIIBsZUzBqk+i9DLRi1T5l
17
+ 9IAvQiHtrF6+iyVsRD3nVo/4JYnOllhSvk4q1EQKhmLFBjTcZBklIQ==
18
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,15 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIICWQIBAAKBgQCuTn+zFINTBX1VFgfIMaO3UiohM1AvmjTOz/1eN6aNmkNZkYic
3
+ i818kiKZYY+y7hJSvxzTxzpoBGGbh8PFk6eufFcJoA9EVR7Ehm3FzfieVCUEA/RD
4
+ CMWhkhb9pOVc6Iu4nArl3R7upvfC7jXYb+cobHnAGg3jmc40Tuxk4+klTwIBIwKB
5
+ gBPrttKjQjVfto1hmn1HgGy47t85EHp4BgkB09BA39WrOuWqO3+a8umqTRjX8ypk
6
+ Wd2SLy4lZcK+rBHGX4RLY565Izrru+U2Uh4CkJVubbBPtRZguEOnkkl9xBRQVWC0
7
+ DlWRdVC80n7NJg4dVVPAmeIteBQgYdGSHDBS+QGdMvMrAkEA6EawWVxTzFEB799C
8
+ RYaHMVWKqbLTyLJ1Djy6bC8EKzMB3TiuaCMvBtDGA3S09LHXCoHePvBzpmCpYAcn
9
+ q1wvbQJBAMAcFbgG2u1/PAAdaAIyUGle9Yv1H0XTKXdmkXnLSpXbSgYPtQDJ6h0a
10
+ AWoWhqXy1lQdMb/FhjT25BjibxkPJisCQH4XvtFsooTbhLVqkbC2vms9EMKFpisf
11
+ DFgvmGadLiYUYBkBgz/Yld8g4IWIf32FHPcTTMMU0REtKL8Z07TLpLcCQDFmTrpK
12
+ 59arsFfNDB3SbHLd516A3Cfl13Z5dd19avNVpVIECfjjdrcGr+gUa8RFwhWhG2vT
13
+ tMvKdSr4ZbX8lMkCQHNIw7sJCz4z5VL5eX2Hg9UHkKKgMGpR/eaFZ+lmNeii57qB
14
+ SW+tgWxJksxLImWNuBdV13/PQ6TQEiIENOs/AYE=
15
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,15 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ KIICWQIBAAKBgQCuTn+zFINTBX1VFgfIMaO3UiohM1AvmjTOz/1eN6aNmkNZkYic
3
+ i818kiKZYY+y7hJSvxzTxzpoBGGbh8PFk6eufFcJoA9EVR7Ehm3FzfieVCUEA/RD
4
+ CMWhkhb9pOVc6Iu4nArl3R7upvfC7jXYb+cobHnAGg3jmc40Tuxk4+klTwIBIwKB
5
+ gBPrttKjQjVfto1hmn1HgGy47t85EHp4BgkB09BA39WrOuWqO3+a8umqTRjX8ypk
6
+ Wd2SLy4lZcK+rBHGX4RLY565Izrru+U2Uh4CkJVubbBPtRZguEOnkkl9xBRQVWC0
7
+ DlWRdVC80n7NJg4dVVPAmeIteBQgYdGSHDBS+QGdMvMrAkEA6EawWVxTzFEB799C
8
+ RYaHMVWKqbLTyLJ1Djy6bC8EKzMB3TiuaCMvBtDGA3S09LHXCoHePvBzpmCpYAcn
9
+ q1wvbQJBAMAcFbgG2u1/PAAdaAIyUGle9Yv1H0XTKXdmkXnLSpXbSgYPtQDJ6h0a
10
+ AWoWhqXy1lQdMb/FhjT25BjibxkPJisCQH4XvtFsooTbhLVqkbC2vms9EMKFpisf
11
+ DFgvmGadLiYUYBkBgz/Yld8g4IWIf32FHPcTTMMU0REtKL8Z07TLpLcCQDFmTrpK
12
+ 59arsFfNDB3SbHLd516A3Cfl13Z5dd19avNVpVIECfjjdrcGr+gUa8RFwhWhG2vT
13
+ tMvKdSr4ZbX8lMkCQHNIw7sJCz4z5VL5eX2Hg9UHkKKgMGpR/eaFZ+lmNeii57qB
14
+ SW+tgWxJksxLImWNuBdV13/PQ6TQEiIENOs/AYE=
15
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1 @@
1
+ ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEArk5/sxSDUwV9VRYHyDGjt1IqITNQL5o0zs/9XjemjZpDWZGInIvNfJIimWGPsu4SUr8c08c6aARhm4fDxZOnrnxXCaAPRFUexIZtxc34nlQlBAP0QwjFoZIW/aTlXOiLuJwK5d0e7qb3wu412G/nKGx5wBoN45nONE7sZOPpJU8= jgb3@serling
@@ -0,0 +1,58 @@
1
+ #--
2
+ # =============================================================================
3
+ # Copyright (c) 2004, Jamis Buck (jgb3@email.byu.edu)
4
+ # All rights reserved.
5
+ #
6
+ # This source file is distributed as part of the Net::SSH Secure Shell Client
7
+ # library for Ruby. This file (and the library as a whole) may be used only as
8
+ # allowed by either the BSD license, or the Ruby license (or, by association
9
+ # with the Ruby license, the GPL). See the "doc" subdirectory of the Net::SSH
10
+ # distribution for the texts of these licenses.
11
+ # -----------------------------------------------------------------------------
12
+ # net-ssh website : http://net-ssh.rubyforge.org
13
+ # project website: http://rubyforge.org/projects/net-ssh
14
+ # =============================================================================
15
+ #++
16
+
17
+ $:.unshift "../../../../lib"
18
+
19
+ require 'net/ssh/transport/ossl/hmac/hmac'
20
+ require 'test/unit'
21
+
22
+ class TC_HMAC < Test::Unit::TestCase
23
+
24
+ class MockHMAC < Net::SSH::Transport::OSSL::HMAC::Abstract
25
+ def initialize
26
+ @mac_length = 10
27
+ @key_length = 8
28
+ @digest_class = OpenSSL::Digest::MD5
29
+ end
30
+ end
31
+
32
+ def setup
33
+ @hmac = MockHMAC.new.new( "12345678901234567890" )
34
+ end
35
+
36
+ def test_key
37
+ assert_equal "12345678", @hmac.key
38
+ end
39
+
40
+ def test_key_length
41
+ assert_equal 8, @hmac.key_length
42
+ end
43
+
44
+ def test_mac_length
45
+ assert_equal 10, @hmac.mac_length
46
+ end
47
+
48
+ def test_digest_class
49
+ assert_equal OpenSSL::Digest::MD5, @hmac.digest_class
50
+ end
51
+
52
+ def test_digest
53
+ expect = "\221r\262\202\210\234\346 \242 "
54
+ assert_equal expect,
55
+ @hmac.digest( "To be, or not to be, that is the question" )
56
+ end
57
+
58
+ end
@@ -0,0 +1,50 @@
1
+ #--
2
+ # =============================================================================
3
+ # Copyright (c) 2004, Jamis Buck (jgb3@email.byu.edu)
4
+ # All rights reserved.
5
+ #
6
+ # This source file is distributed as part of the Net::SSH Secure Shell Client
7
+ # library for Ruby. This file (and the library as a whole) may be used only as
8
+ # allowed by either the BSD license, or the Ruby license (or, by association
9
+ # with the Ruby license, the GPL). See the "doc" subdirectory of the Net::SSH
10
+ # distribution for the texts of these licenses.
11
+ # -----------------------------------------------------------------------------
12
+ # net-ssh website : http://net-ssh.rubyforge.org
13
+ # project website: http://rubyforge.org/projects/net-ssh
14
+ # =============================================================================
15
+ #++
16
+
17
+ $:.unshift "../../../../lib"
18
+
19
+ require 'net/ssh/transport/ossl/hmac/md5'
20
+ require 'test/unit'
21
+
22
+ class TC_HMAC_MD5 < Test::Unit::TestCase
23
+
24
+ def setup
25
+ @hmac = Net::SSH::Transport::OSSL::HMAC::MD5.new.new( "1234567890123456789012345" )
26
+ end
27
+
28
+ def test_key
29
+ assert_equal "1234567890123456", @hmac.key
30
+ end
31
+
32
+ def test_key_length
33
+ assert_equal 16, @hmac.key_length
34
+ end
35
+
36
+ def test_mac_length
37
+ assert_equal 16, @hmac.mac_length
38
+ end
39
+
40
+ def test_digest_class
41
+ assert_equal OpenSSL::Digest::MD5, @hmac.digest_class
42
+ end
43
+
44
+ def test_digest
45
+ expect = "\242\214\260\003\320q\214i%\306\rG\326O\261\245"
46
+ assert_equal expect,
47
+ @hmac.digest( "To be, or not to be, that is the question" )
48
+ end
49
+
50
+ end
@@ -0,0 +1,50 @@
1
+ #--
2
+ # =============================================================================
3
+ # Copyright (c) 2004, Jamis Buck (jgb3@email.byu.edu)
4
+ # All rights reserved.
5
+ #
6
+ # This source file is distributed as part of the Net::SSH Secure Shell Client
7
+ # library for Ruby. This file (and the library as a whole) may be used only as
8
+ # allowed by either the BSD license, or the Ruby license (or, by association
9
+ # with the Ruby license, the GPL). See the "doc" subdirectory of the Net::SSH
10
+ # distribution for the texts of these licenses.
11
+ # -----------------------------------------------------------------------------
12
+ # net-ssh website : http://net-ssh.rubyforge.org
13
+ # project website: http://rubyforge.org/projects/net-ssh
14
+ # =============================================================================
15
+ #++
16
+
17
+ $:.unshift "../../../../lib"
18
+
19
+ require 'net/ssh/transport/ossl/hmac/md5-96'
20
+ require 'test/unit'
21
+
22
+ class TC_HMAC_MD5_96 < Test::Unit::TestCase
23
+
24
+ def setup
25
+ @hmac = Net::SSH::Transport::OSSL::HMAC::MD5_96.new.new( "1234567890123456789012345" )
26
+ end
27
+
28
+ def test_key
29
+ assert_equal "1234567890123456", @hmac.key
30
+ end
31
+
32
+ def test_key_length
33
+ assert_equal 16, @hmac.key_length
34
+ end
35
+
36
+ def test_mac_length
37
+ assert_equal 12, @hmac.mac_length
38
+ end
39
+
40
+ def test_digest_class
41
+ assert_equal OpenSSL::Digest::MD5, @hmac.digest_class
42
+ end
43
+
44
+ def test_digest
45
+ expect = "\242\214\260\003\320q\214i%\306\rG"
46
+ assert_equal expect,
47
+ @hmac.digest( "To be, or not to be, that is the question" )
48
+ end
49
+
50
+ end
@@ -0,0 +1,50 @@
1
+ #--
2
+ # =============================================================================
3
+ # Copyright (c) 2004, Jamis Buck (jgb3@email.byu.edu)
4
+ # All rights reserved.
5
+ #
6
+ # This source file is distributed as part of the Net::SSH Secure Shell Client
7
+ # library for Ruby. This file (and the library as a whole) may be used only as
8
+ # allowed by either the BSD license, or the Ruby license (or, by association
9
+ # with the Ruby license, the GPL). See the "doc" subdirectory of the Net::SSH
10
+ # distribution for the texts of these licenses.
11
+ # -----------------------------------------------------------------------------
12
+ # net-ssh website : http://net-ssh.rubyforge.org
13
+ # project website: http://rubyforge.org/projects/net-ssh
14
+ # =============================================================================
15
+ #++
16
+
17
+ $:.unshift "../../../../lib"
18
+
19
+ require 'net/ssh/transport/ossl/hmac/none'
20
+ require 'test/unit'
21
+
22
+ class TC_HMAC_None < Test::Unit::TestCase
23
+
24
+ def setup
25
+ @hmac = Net::SSH::Transport::OSSL::HMAC::None.new.new( "12345678901234567890" )
26
+ end
27
+
28
+ def test_key
29
+ assert_equal "", @hmac.key
30
+ end
31
+
32
+ def test_key_length
33
+ assert_equal 0, @hmac.key_length
34
+ end
35
+
36
+ def test_mac_length
37
+ assert_equal 0, @hmac.mac_length
38
+ end
39
+
40
+ def test_digest_class
41
+ assert_nil @hmac.digest_class
42
+ end
43
+
44
+ def test_digest
45
+ expect = ""
46
+ assert_equal expect,
47
+ @hmac.digest( "To be, or not to be, that is the question" )
48
+ end
49
+
50
+ end
@@ -0,0 +1,50 @@
1
+ #--
2
+ # =============================================================================
3
+ # Copyright (c) 2004, Jamis Buck (jgb3@email.byu.edu)
4
+ # All rights reserved.
5
+ #
6
+ # This source file is distributed as part of the Net::SSH Secure Shell Client
7
+ # library for Ruby. This file (and the library as a whole) may be used only as
8
+ # allowed by either the BSD license, or the Ruby license (or, by association
9
+ # with the Ruby license, the GPL). See the "doc" subdirectory of the Net::SSH
10
+ # distribution for the texts of these licenses.
11
+ # -----------------------------------------------------------------------------
12
+ # net-ssh website : http://net-ssh.rubyforge.org
13
+ # project website: http://rubyforge.org/projects/net-ssh
14
+ # =============================================================================
15
+ #++
16
+
17
+ $:.unshift "../../../../lib"
18
+
19
+ require 'net/ssh/transport/ossl/hmac/sha1'
20
+ require 'test/unit'
21
+
22
+ class TC_HMAC_SHA1 < Test::Unit::TestCase
23
+
24
+ def setup
25
+ @hmac = Net::SSH::Transport::OSSL::HMAC::SHA1.new.new( "1234567890123456789012345" )
26
+ end
27
+
28
+ def test_key
29
+ assert_equal "12345678901234567890", @hmac.key
30
+ end
31
+
32
+ def test_key_length
33
+ assert_equal 20, @hmac.key_length
34
+ end
35
+
36
+ def test_mac_length
37
+ assert_equal 20, @hmac.mac_length
38
+ end
39
+
40
+ def test_digest_class
41
+ assert_equal OpenSSL::Digest::SHA1, @hmac.digest_class
42
+ end
43
+
44
+ def test_digest
45
+ expect = "\203\266\253\336\242\311zE\360~\325j\322\271<\371\375\253\244k"
46
+ assert_equal expect,
47
+ @hmac.digest( "To be, or not to be, that is the question" )
48
+ end
49
+
50
+ end