ruby_smb 0.0.18 → 0.0.19

Sign up to get free protection for your applications and to get access to all the features.
Files changed (298) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/README.md +247 -7
  5. data/examples/anonymous_auth.rb +6 -3
  6. data/examples/append_file.rb +40 -0
  7. data/examples/authenticate.rb +12 -7
  8. data/examples/delete_file.rb +40 -0
  9. data/examples/list_directory.rb +45 -0
  10. data/examples/negotiate.rb +0 -1
  11. data/examples/negotiate_with_netbios_service.rb +36 -0
  12. data/examples/net_share_enum_all.rb +30 -0
  13. data/examples/read_file.rb +39 -0
  14. data/examples/rename_file.rb +41 -0
  15. data/examples/tree_connect.rb +2 -4
  16. data/examples/write_file.rb +40 -0
  17. data/lib/ruby_smb.rb +5 -0
  18. data/lib/ruby_smb/client.rb +196 -43
  19. data/lib/ruby_smb/client/authentication.rb +89 -48
  20. data/lib/ruby_smb/client/echo.rb +1 -4
  21. data/lib/ruby_smb/client/negotiation.rb +46 -45
  22. data/lib/ruby_smb/client/signing.rb +9 -16
  23. data/lib/ruby_smb/client/tree_connect.rb +8 -13
  24. data/lib/ruby_smb/client/utils.rb +79 -0
  25. data/lib/ruby_smb/dcerpc.rb +30 -0
  26. data/lib/ruby_smb/dcerpc/bind.rb +60 -0
  27. data/lib/ruby_smb/dcerpc/handle.rb +60 -0
  28. data/lib/ruby_smb/dcerpc/ndr.rb +41 -0
  29. data/lib/ruby_smb/dcerpc/request.rb +43 -0
  30. data/lib/ruby_smb/dcerpc/response.rb +46 -0
  31. data/lib/ruby_smb/dcerpc/srvsvc.rb +17 -0
  32. data/lib/ruby_smb/dcerpc/srvsvc/net_share_enum_all.rb +93 -0
  33. data/lib/ruby_smb/dcerpc/uuid.rb +28 -0
  34. data/lib/ruby_smb/dispatcher.rb +7 -3
  35. data/lib/ruby_smb/dispatcher/base.rb +23 -14
  36. data/lib/ruby_smb/dispatcher/socket.rb +71 -51
  37. data/lib/ruby_smb/dispositions.rb +32 -0
  38. data/lib/ruby_smb/error.rb +24 -18
  39. data/lib/ruby_smb/field.rb +5 -2
  40. data/lib/ruby_smb/field/extended_attribute_flag.rb +1 -1
  41. data/lib/ruby_smb/field/file_time.rb +3 -1
  42. data/lib/ruby_smb/field/security_descriptor.rb +6 -6
  43. data/lib/ruby_smb/field/smb2_fileid.rb +11 -0
  44. data/lib/ruby_smb/field/smb_fea.rb +3 -3
  45. data/lib/ruby_smb/field/smb_fea_list.rb +3 -3
  46. data/lib/ruby_smb/field/smb_gea.rb +12 -0
  47. data/lib/ruby_smb/field/smb_gea_list.rb +13 -0
  48. data/lib/ruby_smb/field/string16.rb +14 -0
  49. data/lib/ruby_smb/field/stringz16.rb +3 -7
  50. data/lib/ruby_smb/field/utime.rb +11 -10
  51. data/lib/ruby_smb/fscc.rb +12 -0
  52. data/lib/ruby_smb/fscc/control_codes.rb +26 -0
  53. data/lib/ruby_smb/{field → fscc}/ea_info_array.rb +12 -14
  54. data/lib/ruby_smb/fscc/file_attributes.rb +29 -0
  55. data/lib/ruby_smb/{field → fscc}/file_full_ea_info.rb +5 -5
  56. data/lib/ruby_smb/fscc/file_information.rb +60 -0
  57. data/lib/ruby_smb/fscc/file_information/file_both_directory_information.rb +29 -0
  58. data/lib/ruby_smb/fscc/file_information/file_directory_information.rb +25 -0
  59. data/lib/ruby_smb/fscc/file_information/file_disposition_information.rb +15 -0
  60. data/lib/ruby_smb/fscc/file_information/file_full_directory_information.rb +26 -0
  61. data/lib/ruby_smb/fscc/file_information/file_id_both_directory_information.rb +31 -0
  62. data/lib/ruby_smb/fscc/file_information/file_id_full_directory_information.rb +28 -0
  63. data/lib/ruby_smb/fscc/file_information/file_names_information.rb +18 -0
  64. data/lib/ruby_smb/fscc/file_information/file_rename_information.rb +44 -0
  65. data/lib/ruby_smb/generic_packet.rb +40 -18
  66. data/lib/ruby_smb/gss.rb +49 -56
  67. data/lib/ruby_smb/impersonation_levels.rb +7 -2
  68. data/lib/ruby_smb/nbss.rb +16 -0
  69. data/lib/ruby_smb/nbss/negative_session_response.rb +30 -0
  70. data/lib/ruby_smb/nbss/session_header.rb +13 -0
  71. data/lib/ruby_smb/nbss/session_request.rb +13 -0
  72. data/lib/ruby_smb/smb1.rb +20 -17
  73. data/lib/ruby_smb/smb1/bit_field.rb +3 -0
  74. data/lib/ruby_smb/smb1/bit_field/create_options.rb +5 -5
  75. data/lib/ruby_smb/smb1/bit_field/file_status_flags.rb +18 -0
  76. data/lib/ruby_smb/smb1/bit_field/open2_access_mode.rb +11 -11
  77. data/lib/ruby_smb/smb1/bit_field/open2_open_mode.rb +1 -1
  78. data/lib/ruby_smb/smb1/bit_field/optional_support.rb +0 -1
  79. data/lib/ruby_smb/smb1/bit_field/security_flags.rb +15 -0
  80. data/lib/ruby_smb/smb1/bit_field/share_access.rb +2 -3
  81. data/lib/ruby_smb/smb1/bit_field/smb_ext_file_attributes.rb +21 -24
  82. data/lib/ruby_smb/smb1/bit_field/smb_file_attributes.rb +1 -1
  83. data/lib/ruby_smb/smb1/commands.rb +5 -0
  84. data/lib/ruby_smb/smb1/create_actions.rb +3 -5
  85. data/lib/ruby_smb/smb1/file.rb +289 -0
  86. data/lib/ruby_smb/smb1/oplock_levels.rb +2 -4
  87. data/lib/ruby_smb/smb1/packet.rb +10 -0
  88. data/lib/ruby_smb/smb1/packet/close_request.rb +31 -0
  89. data/lib/ruby_smb/smb1/packet/close_response.rb +28 -0
  90. data/lib/ruby_smb/smb1/packet/echo_request.rb +5 -7
  91. data/lib/ruby_smb/smb1/packet/echo_response.rb +5 -7
  92. data/lib/ruby_smb/smb1/packet/empty_packet.rb +1 -2
  93. data/lib/ruby_smb/smb1/packet/logoff_request.rb +1 -4
  94. data/lib/ruby_smb/smb1/packet/logoff_response.rb +1 -4
  95. data/lib/ruby_smb/smb1/packet/negotiate_response.rb +22 -0
  96. data/lib/ruby_smb/smb1/packet/negotiate_response_extended.rb +22 -0
  97. data/lib/ruby_smb/smb1/packet/nt_create_andx_request.rb +62 -0
  98. data/lib/ruby_smb/smb1/packet/nt_create_andx_response.rb +66 -0
  99. data/lib/ruby_smb/smb1/packet/nt_trans.rb +1 -2
  100. data/lib/ruby_smb/smb1/packet/nt_trans/create_request.rb +19 -13
  101. data/lib/ruby_smb/smb1/packet/nt_trans/create_response.rb +8 -10
  102. data/lib/ruby_smb/smb1/packet/nt_trans/request.rb +11 -11
  103. data/lib/ruby_smb/smb1/packet/nt_trans/response.rb +10 -10
  104. data/lib/ruby_smb/smb1/packet/nt_trans/subcommands.rb +8 -1
  105. data/lib/ruby_smb/smb1/packet/read_andx_request.rb +84 -0
  106. data/lib/ruby_smb/smb1/packet/read_andx_response.rb +47 -0
  107. data/lib/ruby_smb/smb1/packet/session_setup_legacy_request.rb +2 -6
  108. data/lib/ruby_smb/smb1/packet/session_setup_legacy_response.rb +1 -4
  109. data/lib/ruby_smb/smb1/packet/session_setup_request.rb +1 -6
  110. data/lib/ruby_smb/smb1/packet/session_setup_response.rb +2 -4
  111. data/lib/ruby_smb/smb1/packet/trans2.rb +8 -2
  112. data/lib/ruby_smb/smb1/packet/trans2/data_block.rb +6 -7
  113. data/lib/ruby_smb/smb1/packet/trans2/find_first2_request.rb +77 -0
  114. data/lib/ruby_smb/smb1/packet/trans2/find_first2_response.rb +87 -0
  115. data/lib/ruby_smb/smb1/packet/trans2/find_information_level.rb +32 -0
  116. data/lib/ruby_smb/smb1/packet/trans2/find_information_level/find_file_full_directory_info.rb +45 -0
  117. data/lib/ruby_smb/smb1/packet/trans2/find_next2_request.rb +77 -0
  118. data/lib/ruby_smb/smb1/packet/trans2/find_next2_response.rb +86 -0
  119. data/lib/ruby_smb/smb1/packet/trans2/open2_request.rb +10 -10
  120. data/lib/ruby_smb/smb1/packet/trans2/open2_response.rb +10 -12
  121. data/lib/ruby_smb/smb1/packet/trans2/request.rb +15 -17
  122. data/lib/ruby_smb/smb1/packet/trans2/request_secondary.rb +8 -10
  123. data/lib/ruby_smb/smb1/packet/trans2/response.rb +11 -13
  124. data/lib/ruby_smb/smb1/packet/trans2/set_file_information_request.rb +66 -0
  125. data/lib/ruby_smb/smb1/packet/trans2/set_file_information_response.rb +57 -0
  126. data/lib/ruby_smb/smb1/packet/trans2/subcommands.rb +5 -2
  127. data/lib/ruby_smb/smb1/packet/tree_connect_request.rb +4 -6
  128. data/lib/ruby_smb/smb1/packet/tree_connect_response.rb +5 -7
  129. data/lib/ruby_smb/smb1/packet/tree_disconnect_request.rb +2 -4
  130. data/lib/ruby_smb/smb1/packet/tree_disconnect_response.rb +2 -4
  131. data/lib/ruby_smb/smb1/packet/write_andx_request.rb +68 -0
  132. data/lib/ruby_smb/smb1/packet/write_andx_response.rb +35 -0
  133. data/lib/ruby_smb/smb1/resource_type.rb +18 -0
  134. data/lib/ruby_smb/smb1/tree.rb +188 -5
  135. data/lib/ruby_smb/smb2.rb +16 -11
  136. data/lib/ruby_smb/smb2/bit_field.rb +1 -0
  137. data/lib/ruby_smb/smb2/bit_field/file_access_mask.rb +1 -1
  138. data/lib/ruby_smb/smb2/bit_field/session_flags.rb +1 -2
  139. data/lib/ruby_smb/smb2/bit_field/share_flags.rb +4 -6
  140. data/lib/ruby_smb/smb2/create_context.rb +29 -0
  141. data/lib/ruby_smb/smb2/file.rb +251 -0
  142. data/lib/ruby_smb/smb2/info_type.rb +21 -0
  143. data/lib/ruby_smb/smb2/packet.rb +16 -0
  144. data/lib/ruby_smb/smb2/packet/close_request.rb +22 -0
  145. data/lib/ruby_smb/smb2/packet/close_response.rb +29 -0
  146. data/lib/ruby_smb/smb2/packet/create_request.rb +54 -0
  147. data/lib/ruby_smb/smb2/packet/create_response.rb +35 -0
  148. data/lib/ruby_smb/smb2/packet/echo_request.rb +1 -3
  149. data/lib/ruby_smb/smb2/packet/echo_response.rb +1 -3
  150. data/lib/ruby_smb/smb2/packet/error_packet.rb +1 -3
  151. data/lib/ruby_smb/smb2/packet/ioctl_request.rb +54 -0
  152. data/lib/ruby_smb/smb2/packet/ioctl_response.rb +39 -0
  153. data/lib/ruby_smb/smb2/packet/logoff_request.rb +1 -4
  154. data/lib/ruby_smb/smb2/packet/logoff_response.rb +1 -4
  155. data/lib/ruby_smb/smb2/packet/negotiate_request.rb +1 -1
  156. data/lib/ruby_smb/smb2/packet/negotiate_response.rb +1 -1
  157. data/lib/ruby_smb/smb2/packet/query_directory_request.rb +35 -0
  158. data/lib/ruby_smb/smb2/packet/query_directory_response.rb +45 -0
  159. data/lib/ruby_smb/smb2/packet/read_request.rb +30 -0
  160. data/lib/ruby_smb/smb2/packet/read_response.rb +26 -0
  161. data/lib/ruby_smb/smb2/packet/session_setup_request.rb +2 -5
  162. data/lib/ruby_smb/smb2/packet/session_setup_response.rb +4 -7
  163. data/lib/ruby_smb/smb2/packet/set_info_request.rb +58 -0
  164. data/lib/ruby_smb/smb2/packet/set_info_response.rb +20 -0
  165. data/lib/ruby_smb/smb2/packet/tree_connect_request.rb +3 -4
  166. data/lib/ruby_smb/smb2/packet/tree_connect_response.rb +5 -9
  167. data/lib/ruby_smb/smb2/packet/tree_disconnect_request.rb +1 -4
  168. data/lib/ruby_smb/smb2/packet/tree_disconnect_response.rb +1 -4
  169. data/lib/ruby_smb/smb2/packet/write_request.rb +29 -0
  170. data/lib/ruby_smb/smb2/packet/write_response.rb +26 -0
  171. data/lib/ruby_smb/smb2/tree.rb +163 -7
  172. data/lib/ruby_smb/version.rb +1 -1
  173. data/spec/lib/ruby_smb/client_spec.rb +459 -120
  174. data/spec/lib/ruby_smb/dcerpc/bind_spec.rb +14 -0
  175. data/spec/lib/ruby_smb/dcerpc/handle_spec.rb +31 -0
  176. data/spec/lib/ruby_smb/dcerpc/request_spec.rb +21 -0
  177. data/spec/lib/ruby_smb/dcerpc/response_spec.rb +15 -0
  178. data/spec/lib/ruby_smb/dcerpc/srvsvc_spec.rb +13 -0
  179. data/spec/lib/ruby_smb/dcerpc/uuid_spec.rb +12 -0
  180. data/spec/lib/ruby_smb/dispatcher/base_spec.rb +26 -0
  181. data/spec/lib/ruby_smb/dispatcher/socket_spec.rb +118 -18
  182. data/spec/lib/ruby_smb/field/extended_attribute_flag_spec.rb +0 -3
  183. data/spec/lib/ruby_smb/field/file_time_spec.rb +4 -2
  184. data/spec/lib/ruby_smb/field/security_descriptor.rb +0 -1
  185. data/spec/lib/ruby_smb/field/smb2_fileid_spec.rb +10 -0
  186. data/spec/lib/ruby_smb/field/smb_fea_list_spec.rb +3 -5
  187. data/spec/lib/ruby_smb/field/smb_gea_list_spec.rb +37 -0
  188. data/spec/lib/ruby_smb/field/smb_gea_spec.rb +22 -0
  189. data/spec/lib/ruby_smb/field/stringz16_spec.rb +7 -9
  190. data/spec/lib/ruby_smb/field/utime_spec.rb +4 -2
  191. data/spec/lib/ruby_smb/{field → fscc}/ea_info_array_spec.rb +7 -9
  192. data/spec/lib/ruby_smb/{field → fscc}/file_full_ea_info_spec.rb +2 -3
  193. data/spec/lib/ruby_smb/fscc/file_information/file_both_directory_information_spec.rb +71 -0
  194. data/spec/lib/ruby_smb/fscc/file_information/file_directory_information_spec.rb +68 -0
  195. data/spec/lib/ruby_smb/fscc/file_information/file_disposition_information_spec.rb +26 -0
  196. data/spec/lib/ruby_smb/fscc/file_information/file_full_directory_information_spec.rb +69 -0
  197. data/spec/lib/ruby_smb/fscc/file_information/file_id_both_directory_information_spec.rb +72 -0
  198. data/spec/lib/ruby_smb/fscc/file_information/file_id_full_directory_information_spec.rb +70 -0
  199. data/spec/lib/ruby_smb/fscc/file_information/file_names_information_spec.rb +41 -0
  200. data/spec/lib/ruby_smb/fscc/file_information/file_rename_information_spec.rb +133 -0
  201. data/spec/lib/ruby_smb/fscc/fscc_file_attributes_spec.rb +143 -0
  202. data/spec/lib/ruby_smb/generic_packet_spec.rb +46 -21
  203. data/spec/lib/ruby_smb/nbss/negative_session_response_spec.rb +29 -0
  204. data/spec/lib/ruby_smb/nbss/session_header_spec.rb +30 -0
  205. data/spec/lib/ruby_smb/nbss/session_request_spec.rb +30 -0
  206. data/spec/lib/ruby_smb/smb1/bit_field/create_options_spec.rb +9 -1
  207. data/spec/lib/ruby_smb/smb1/bit_field/directory_access_mask_spec.rb +0 -2
  208. data/spec/lib/ruby_smb/smb1/bit_field/file_access_mask_spec.rb +0 -2
  209. data/spec/lib/ruby_smb/smb1/bit_field/file_status_flags_spec.rb +35 -0
  210. data/spec/lib/ruby_smb/smb1/bit_field/open2_access_mode_spec.rb +1 -3
  211. data/spec/lib/ruby_smb/smb1/bit_field/open2_flags_spec.rb +0 -2
  212. data/spec/lib/ruby_smb/smb1/bit_field/open2_open_mode_spec.rb +0 -1
  213. data/spec/lib/ruby_smb/smb1/bit_field/optional_support_spec.rb +0 -1
  214. data/spec/lib/ruby_smb/smb1/bit_field/security_flags_spec.rb +26 -0
  215. data/spec/lib/ruby_smb/smb1/bit_field/share_access_spec.rb +0 -3
  216. data/spec/lib/ruby_smb/smb1/bit_field/smb_ext_file_attributes_spec.rb +20 -39
  217. data/spec/lib/ruby_smb/smb1/bit_field/smb_file_attributes_spec.rb +0 -6
  218. data/spec/lib/ruby_smb/smb1/bit_field/smb_nmpipe_status_spec.rb +0 -2
  219. data/spec/lib/ruby_smb/smb1/bit_field/trans2_flags_spec.rb +0 -2
  220. data/spec/lib/ruby_smb/smb1/bit_field/tree_connect_flags_spec.rb +0 -2
  221. data/spec/lib/ruby_smb/smb1/file_spec.rb +469 -0
  222. data/spec/lib/ruby_smb/smb1/packet/close_request_spec.rb +54 -0
  223. data/spec/lib/ruby_smb/smb1/packet/close_response_spec.rb +45 -0
  224. data/spec/lib/ruby_smb/smb1/packet/echo_request_spec.rb +1 -4
  225. data/spec/lib/ruby_smb/smb1/packet/echo_response_spec.rb +1 -4
  226. data/spec/lib/ruby_smb/smb1/packet/error_packet_spec.rb +1 -3
  227. data/spec/lib/ruby_smb/smb1/packet/logoff_request_spec.rb +1 -4
  228. data/spec/lib/ruby_smb/smb1/packet/logoff_response_spec.rb +1 -4
  229. data/spec/lib/ruby_smb/smb1/packet/negotiate_request_spec.rb +1 -1
  230. data/spec/lib/ruby_smb/smb1/packet/negotiate_response_extended_spec.rb +37 -0
  231. data/spec/lib/ruby_smb/smb1/packet/negotiate_response_spec.rb +37 -0
  232. data/spec/lib/ruby_smb/smb1/packet/nt_create_andx_request_spec.rb +151 -0
  233. data/spec/lib/ruby_smb/smb1/packet/nt_create_andx_response_spec.rb +157 -0
  234. data/spec/lib/ruby_smb/smb1/packet/nt_trans/create_request_spec.rb +13 -6
  235. data/spec/lib/ruby_smb/smb1/packet/nt_trans/create_response_spec.rb +1 -7
  236. data/spec/lib/ruby_smb/smb1/packet/nt_trans/request_spec.rb +1 -6
  237. data/spec/lib/ruby_smb/smb1/packet/nt_trans/response_spec.rb +1 -5
  238. data/spec/lib/ruby_smb/smb1/packet/read_andx_request_spec.rb +149 -0
  239. data/spec/lib/ruby_smb/smb1/packet/read_andx_response_spec.rb +93 -0
  240. data/spec/lib/ruby_smb/smb1/packet/session_setup_legacy_request_spec.rb +1 -5
  241. data/spec/lib/ruby_smb/smb1/packet/session_setup_legacy_response_spec.rb +1 -5
  242. data/spec/lib/ruby_smb/smb1/packet/session_setup_request_spec.rb +3 -8
  243. data/spec/lib/ruby_smb/smb1/packet/session_setup_response_spec.rb +2 -4
  244. data/spec/lib/ruby_smb/smb1/packet/trans2/find_first2_request_spec.rb +180 -0
  245. data/spec/lib/ruby_smb/smb1/packet/trans2/find_first2_response_spec.rb +104 -0
  246. data/spec/lib/ruby_smb/smb1/packet/trans2/find_information_level/find_file_full_directory_info_spec.rb +128 -0
  247. data/spec/lib/ruby_smb/smb1/packet/trans2/find_next2_request_spec.rb +174 -0
  248. data/spec/lib/ruby_smb/smb1/packet/trans2/find_next2_response_spec.rb +102 -0
  249. data/spec/lib/ruby_smb/smb1/packet/trans2/open2_request_spec.rb +1 -6
  250. data/spec/lib/ruby_smb/smb1/packet/trans2/open2_response_spec.rb +2 -7
  251. data/spec/lib/ruby_smb/smb1/packet/trans2/request_secondary_spec.rb +1 -5
  252. data/spec/lib/ruby_smb/smb1/packet/trans2/request_spec.rb +1 -5
  253. data/spec/lib/ruby_smb/smb1/packet/trans2/response_spec.rb +1 -4
  254. data/spec/lib/ruby_smb/smb1/packet/trans2/set_file_information_request_spec.rb +98 -0
  255. data/spec/lib/ruby_smb/smb1/packet/trans2/set_file_information_response_spec.rb +56 -0
  256. data/spec/lib/ruby_smb/smb1/packet/tree_connect_request_spec.rb +1 -5
  257. data/spec/lib/ruby_smb/smb1/packet/tree_connect_response_spec.rb +1 -6
  258. data/spec/lib/ruby_smb/smb1/packet/tree_disconnect_request_spec.rb +1 -4
  259. data/spec/lib/ruby_smb/smb1/packet/tree_disconnect_response_spec.rb +1 -4
  260. data/spec/lib/ruby_smb/smb1/packet/write_andx_request_spec.rb +148 -0
  261. data/spec/lib/ruby_smb/smb1/packet/write_andx_response_spec.rb +54 -0
  262. data/spec/lib/ruby_smb/smb1/tree_spec.rb +409 -7
  263. data/spec/lib/ruby_smb/smb2/bit_field/directory_access_mask_spec.rb +0 -2
  264. data/spec/lib/ruby_smb/smb2/bit_field/file_access_mask_spec.rb +0 -2
  265. data/spec/lib/ruby_smb/smb2/bit_field/session_flags_spec.rb +1 -1
  266. data/spec/lib/ruby_smb/smb2/bit_field/share_capabilities_spec.rb +0 -1
  267. data/spec/lib/ruby_smb/smb2/bit_field/share_flags_spec.rb +0 -2
  268. data/spec/lib/ruby_smb/smb2/create_context_spec.rb +42 -0
  269. data/spec/lib/ruby_smb/smb2/file_spec.rb +233 -0
  270. data/spec/lib/ruby_smb/smb2/packet/close_request_spec.rb +40 -0
  271. data/spec/lib/ruby_smb/smb2/packet/close_response_spec.rb +40 -0
  272. data/spec/lib/ruby_smb/smb2/packet/create_request_spec.rb +101 -0
  273. data/spec/lib/ruby_smb/smb2/packet/create_response_spec.rb +64 -0
  274. data/spec/lib/ruby_smb/smb2/packet/echo_request_spec.rb +1 -3
  275. data/spec/lib/ruby_smb/smb2/packet/echo_response_spec.rb +1 -3
  276. data/spec/lib/ruby_smb/smb2/packet/ioctl_request_spec.rb +48 -0
  277. data/spec/lib/ruby_smb/smb2/packet/logoff_request_spec.rb +1 -3
  278. data/spec/lib/ruby_smb/smb2/packet/logoff_response_spec.rb +1 -3
  279. data/spec/lib/ruby_smb/smb2/packet/query_directory_request_spec.rb +80 -0
  280. data/spec/lib/ruby_smb/smb2/packet/query_directory_response_spec.rb +64 -0
  281. data/spec/lib/ruby_smb/smb2/packet/read_request_spec.rb +43 -0
  282. data/spec/lib/ruby_smb/smb2/packet/read_response_spec.rb +50 -0
  283. data/spec/lib/ruby_smb/smb2/packet/session_setup_request_spec.rb +3 -4
  284. data/spec/lib/ruby_smb/smb2/packet/session_setup_response_spec.rb +2 -3
  285. data/spec/lib/ruby_smb/smb2/packet/set_info_request_spec.rb +205 -0
  286. data/spec/lib/ruby_smb/smb2/packet/set_info_response_spec.rb +32 -0
  287. data/spec/lib/ruby_smb/smb2/packet/tree_connect_request_spec.rb +3 -5
  288. data/spec/lib/ruby_smb/smb2/packet/tree_connect_response_spec.rb +1 -2
  289. data/spec/lib/ruby_smb/smb2/packet/tree_disconnect_request_spec.rb +1 -3
  290. data/spec/lib/ruby_smb/smb2/packet/tree_disconnect_response_spec.rb +1 -3
  291. data/spec/lib/ruby_smb/smb2/packet/write_request_spec.rb +51 -0
  292. data/spec/lib/ruby_smb/smb2/packet/write_response_spec.rb +38 -0
  293. data/spec/lib/ruby_smb/smb2/tree_spec.rb +191 -5
  294. data/spec/spec_helper.rb +1 -1
  295. metadata +195 -12
  296. metadata.gz.sig +0 -0
  297. data/lib/ruby_smb/smb1/dispositions.rb +0 -36
  298. data/spec/lib/ruby_smb/dispatcher/dispatcher_base_spec.rb +0 -22
data/spec/spec_helper.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require 'simplecov'
2
2
 
3
3
  SimpleCov.start do
4
- add_filter "/spec/"
4
+ add_filter '/spec/'
5
5
  end
6
6
 
7
7
  require 'coveralls'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_smb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.18
4
+ version: 0.0.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Maloney
@@ -89,7 +89,7 @@ cert_chain:
89
89
  G+Hmcg1v810agasPdoydE0RTVZgEOOMoQ07qu7JFXVWZ9ZQpHT7qJATWL/b2csFG
90
90
  8mVuTXnyJOKRJA==
91
91
  -----END CERTIFICATE-----
92
- date: 2017-05-30 00:00:00.000000000 Z
92
+ date: 2018-02-21 00:00:00.000000000 Z
93
93
  dependencies:
94
94
  - !ruby/object:Gem::Dependency
95
95
  name: redcarpet
@@ -222,9 +222,17 @@ files:
222
222
  - README.md
223
223
  - Rakefile
224
224
  - examples/anonymous_auth.rb
225
+ - examples/append_file.rb
225
226
  - examples/authenticate.rb
227
+ - examples/delete_file.rb
228
+ - examples/list_directory.rb
226
229
  - examples/negotiate.rb
230
+ - examples/negotiate_with_netbios_service.rb
231
+ - examples/net_share_enum_all.rb
232
+ - examples/read_file.rb
233
+ - examples/rename_file.rb
227
234
  - examples/tree_connect.rb
235
+ - examples/write_file.rb
228
236
  - lib/ruby_smb.rb
229
237
  - lib/ruby_smb/client.rb
230
238
  - lib/ruby_smb/client/authentication.rb
@@ -232,24 +240,55 @@ files:
232
240
  - lib/ruby_smb/client/negotiation.rb
233
241
  - lib/ruby_smb/client/signing.rb
234
242
  - lib/ruby_smb/client/tree_connect.rb
243
+ - lib/ruby_smb/client/utils.rb
244
+ - lib/ruby_smb/dcerpc.rb
245
+ - lib/ruby_smb/dcerpc/bind.rb
246
+ - lib/ruby_smb/dcerpc/handle.rb
247
+ - lib/ruby_smb/dcerpc/ndr.rb
248
+ - lib/ruby_smb/dcerpc/request.rb
249
+ - lib/ruby_smb/dcerpc/response.rb
250
+ - lib/ruby_smb/dcerpc/srvsvc.rb
251
+ - lib/ruby_smb/dcerpc/srvsvc/net_share_enum_all.rb
252
+ - lib/ruby_smb/dcerpc/uuid.rb
235
253
  - lib/ruby_smb/dispatcher.rb
236
254
  - lib/ruby_smb/dispatcher/base.rb
237
255
  - lib/ruby_smb/dispatcher/socket.rb
256
+ - lib/ruby_smb/dispositions.rb
238
257
  - lib/ruby_smb/error.rb
239
258
  - lib/ruby_smb/field.rb
240
- - lib/ruby_smb/field/ea_info_array.rb
241
259
  - lib/ruby_smb/field/extended_attribute_flag.rb
242
- - lib/ruby_smb/field/file_full_ea_info.rb
243
260
  - lib/ruby_smb/field/file_time.rb
244
261
  - lib/ruby_smb/field/nt_status.rb
245
262
  - lib/ruby_smb/field/security_descriptor.rb
263
+ - lib/ruby_smb/field/smb2_fileid.rb
246
264
  - lib/ruby_smb/field/smb_fea.rb
247
265
  - lib/ruby_smb/field/smb_fea_list.rb
266
+ - lib/ruby_smb/field/smb_gea.rb
267
+ - lib/ruby_smb/field/smb_gea_list.rb
268
+ - lib/ruby_smb/field/string16.rb
248
269
  - lib/ruby_smb/field/stringz16.rb
249
270
  - lib/ruby_smb/field/utime.rb
271
+ - lib/ruby_smb/fscc.rb
272
+ - lib/ruby_smb/fscc/control_codes.rb
273
+ - lib/ruby_smb/fscc/ea_info_array.rb
274
+ - lib/ruby_smb/fscc/file_attributes.rb
275
+ - lib/ruby_smb/fscc/file_full_ea_info.rb
276
+ - lib/ruby_smb/fscc/file_information.rb
277
+ - lib/ruby_smb/fscc/file_information/file_both_directory_information.rb
278
+ - lib/ruby_smb/fscc/file_information/file_directory_information.rb
279
+ - lib/ruby_smb/fscc/file_information/file_disposition_information.rb
280
+ - lib/ruby_smb/fscc/file_information/file_full_directory_information.rb
281
+ - lib/ruby_smb/fscc/file_information/file_id_both_directory_information.rb
282
+ - lib/ruby_smb/fscc/file_information/file_id_full_directory_information.rb
283
+ - lib/ruby_smb/fscc/file_information/file_names_information.rb
284
+ - lib/ruby_smb/fscc/file_information/file_rename_information.rb
250
285
  - lib/ruby_smb/generic_packet.rb
251
286
  - lib/ruby_smb/gss.rb
252
287
  - lib/ruby_smb/impersonation_levels.rb
288
+ - lib/ruby_smb/nbss.rb
289
+ - lib/ruby_smb/nbss/negative_session_response.rb
290
+ - lib/ruby_smb/nbss/session_header.rb
291
+ - lib/ruby_smb/nbss/session_request.rb
253
292
  - lib/ruby_smb/smb1.rb
254
293
  - lib/ruby_smb/smb1/andx_block.rb
255
294
  - lib/ruby_smb/smb1/bit_field.rb
@@ -257,12 +296,14 @@ files:
257
296
  - lib/ruby_smb/smb1/bit_field/create_options.rb
258
297
  - lib/ruby_smb/smb1/bit_field/directory_access_mask.rb
259
298
  - lib/ruby_smb/smb1/bit_field/file_access_mask.rb
299
+ - lib/ruby_smb/smb1/bit_field/file_status_flags.rb
260
300
  - lib/ruby_smb/smb1/bit_field/header_flags.rb
261
301
  - lib/ruby_smb/smb1/bit_field/header_flags2.rb
262
302
  - lib/ruby_smb/smb1/bit_field/open2_access_mode.rb
263
303
  - lib/ruby_smb/smb1/bit_field/open2_flags.rb
264
304
  - lib/ruby_smb/smb1/bit_field/open2_open_mode.rb
265
305
  - lib/ruby_smb/smb1/bit_field/optional_support.rb
306
+ - lib/ruby_smb/smb1/bit_field/security_flags.rb
266
307
  - lib/ruby_smb/smb1/bit_field/security_mode.rb
267
308
  - lib/ruby_smb/smb1/bit_field/share_access.rb
268
309
  - lib/ruby_smb/smb1/bit_field/smb_ext_file_attributes.rb
@@ -274,9 +315,11 @@ files:
274
315
  - lib/ruby_smb/smb1/create_actions.rb
275
316
  - lib/ruby_smb/smb1/data_block.rb
276
317
  - lib/ruby_smb/smb1/dialect.rb
277
- - lib/ruby_smb/smb1/dispositions.rb
318
+ - lib/ruby_smb/smb1/file.rb
278
319
  - lib/ruby_smb/smb1/oplock_levels.rb
279
320
  - lib/ruby_smb/smb1/packet.rb
321
+ - lib/ruby_smb/smb1/packet/close_request.rb
322
+ - lib/ruby_smb/smb1/packet/close_response.rb
280
323
  - lib/ruby_smb/smb1/packet/echo_request.rb
281
324
  - lib/ruby_smb/smb1/packet/echo_response.rb
282
325
  - lib/ruby_smb/smb1/packet/empty_packet.rb
@@ -285,29 +328,44 @@ files:
285
328
  - lib/ruby_smb/smb1/packet/negotiate_request.rb
286
329
  - lib/ruby_smb/smb1/packet/negotiate_response.rb
287
330
  - lib/ruby_smb/smb1/packet/negotiate_response_extended.rb
331
+ - lib/ruby_smb/smb1/packet/nt_create_andx_request.rb
332
+ - lib/ruby_smb/smb1/packet/nt_create_andx_response.rb
288
333
  - lib/ruby_smb/smb1/packet/nt_trans.rb
289
334
  - lib/ruby_smb/smb1/packet/nt_trans/create_request.rb
290
335
  - lib/ruby_smb/smb1/packet/nt_trans/create_response.rb
291
336
  - lib/ruby_smb/smb1/packet/nt_trans/request.rb
292
337
  - lib/ruby_smb/smb1/packet/nt_trans/response.rb
293
338
  - lib/ruby_smb/smb1/packet/nt_trans/subcommands.rb
339
+ - lib/ruby_smb/smb1/packet/read_andx_request.rb
340
+ - lib/ruby_smb/smb1/packet/read_andx_response.rb
294
341
  - lib/ruby_smb/smb1/packet/session_setup_legacy_request.rb
295
342
  - lib/ruby_smb/smb1/packet/session_setup_legacy_response.rb
296
343
  - lib/ruby_smb/smb1/packet/session_setup_request.rb
297
344
  - lib/ruby_smb/smb1/packet/session_setup_response.rb
298
345
  - lib/ruby_smb/smb1/packet/trans2.rb
299
346
  - lib/ruby_smb/smb1/packet/trans2/data_block.rb
347
+ - lib/ruby_smb/smb1/packet/trans2/find_first2_request.rb
348
+ - lib/ruby_smb/smb1/packet/trans2/find_first2_response.rb
349
+ - lib/ruby_smb/smb1/packet/trans2/find_information_level.rb
350
+ - lib/ruby_smb/smb1/packet/trans2/find_information_level/find_file_full_directory_info.rb
351
+ - lib/ruby_smb/smb1/packet/trans2/find_next2_request.rb
352
+ - lib/ruby_smb/smb1/packet/trans2/find_next2_response.rb
300
353
  - lib/ruby_smb/smb1/packet/trans2/open2_request.rb
301
354
  - lib/ruby_smb/smb1/packet/trans2/open2_response.rb
302
355
  - lib/ruby_smb/smb1/packet/trans2/request.rb
303
356
  - lib/ruby_smb/smb1/packet/trans2/request_secondary.rb
304
357
  - lib/ruby_smb/smb1/packet/trans2/response.rb
358
+ - lib/ruby_smb/smb1/packet/trans2/set_file_information_request.rb
359
+ - lib/ruby_smb/smb1/packet/trans2/set_file_information_response.rb
305
360
  - lib/ruby_smb/smb1/packet/trans2/subcommands.rb
306
361
  - lib/ruby_smb/smb1/packet/tree_connect_request.rb
307
362
  - lib/ruby_smb/smb1/packet/tree_connect_response.rb
308
363
  - lib/ruby_smb/smb1/packet/tree_disconnect_request.rb
309
364
  - lib/ruby_smb/smb1/packet/tree_disconnect_response.rb
365
+ - lib/ruby_smb/smb1/packet/write_andx_request.rb
366
+ - lib/ruby_smb/smb1/packet/write_andx_response.rb
310
367
  - lib/ruby_smb/smb1/parameter_block.rb
368
+ - lib/ruby_smb/smb1/resource_type.rb
311
369
  - lib/ruby_smb/smb1/smb_header.rb
312
370
  - lib/ruby_smb/smb1/tree.rb
313
371
  - lib/ruby_smb/smb2.rb
@@ -322,49 +380,89 @@ files:
322
380
  - lib/ruby_smb/smb2/bit_field/smb2_security_mode.rb
323
381
  - lib/ruby_smb/smb2/bit_field/smb2_security_mode_single.rb
324
382
  - lib/ruby_smb/smb2/commands.rb
383
+ - lib/ruby_smb/smb2/create_context.rb
384
+ - lib/ruby_smb/smb2/file.rb
385
+ - lib/ruby_smb/smb2/info_type.rb
325
386
  - lib/ruby_smb/smb2/packet.rb
387
+ - lib/ruby_smb/smb2/packet/close_request.rb
388
+ - lib/ruby_smb/smb2/packet/close_response.rb
389
+ - lib/ruby_smb/smb2/packet/create_request.rb
390
+ - lib/ruby_smb/smb2/packet/create_response.rb
326
391
  - lib/ruby_smb/smb2/packet/echo_request.rb
327
392
  - lib/ruby_smb/smb2/packet/echo_response.rb
328
393
  - lib/ruby_smb/smb2/packet/error_packet.rb
394
+ - lib/ruby_smb/smb2/packet/ioctl_request.rb
395
+ - lib/ruby_smb/smb2/packet/ioctl_response.rb
329
396
  - lib/ruby_smb/smb2/packet/logoff_request.rb
330
397
  - lib/ruby_smb/smb2/packet/logoff_response.rb
331
398
  - lib/ruby_smb/smb2/packet/negotiate_request.rb
332
399
  - lib/ruby_smb/smb2/packet/negotiate_response.rb
400
+ - lib/ruby_smb/smb2/packet/query_directory_request.rb
401
+ - lib/ruby_smb/smb2/packet/query_directory_response.rb
402
+ - lib/ruby_smb/smb2/packet/read_request.rb
403
+ - lib/ruby_smb/smb2/packet/read_response.rb
333
404
  - lib/ruby_smb/smb2/packet/session_setup_request.rb
334
405
  - lib/ruby_smb/smb2/packet/session_setup_response.rb
406
+ - lib/ruby_smb/smb2/packet/set_info_request.rb
407
+ - lib/ruby_smb/smb2/packet/set_info_response.rb
335
408
  - lib/ruby_smb/smb2/packet/tree_connect_request.rb
336
409
  - lib/ruby_smb/smb2/packet/tree_connect_response.rb
337
410
  - lib/ruby_smb/smb2/packet/tree_disconnect_request.rb
338
411
  - lib/ruby_smb/smb2/packet/tree_disconnect_response.rb
412
+ - lib/ruby_smb/smb2/packet/write_request.rb
413
+ - lib/ruby_smb/smb2/packet/write_response.rb
339
414
  - lib/ruby_smb/smb2/smb2_header.rb
340
415
  - lib/ruby_smb/smb2/tree.rb
341
416
  - lib/ruby_smb/version.rb
342
417
  - ruby_smb.gemspec
343
418
  - spec/lib/ruby_smb/client_spec.rb
344
- - spec/lib/ruby_smb/dispatcher/dispatcher_base_spec.rb
419
+ - spec/lib/ruby_smb/dcerpc/bind_spec.rb
420
+ - spec/lib/ruby_smb/dcerpc/handle_spec.rb
421
+ - spec/lib/ruby_smb/dcerpc/request_spec.rb
422
+ - spec/lib/ruby_smb/dcerpc/response_spec.rb
423
+ - spec/lib/ruby_smb/dcerpc/srvsvc_spec.rb
424
+ - spec/lib/ruby_smb/dcerpc/uuid_spec.rb
425
+ - spec/lib/ruby_smb/dispatcher/base_spec.rb
345
426
  - spec/lib/ruby_smb/dispatcher/socket_spec.rb
346
- - spec/lib/ruby_smb/field/ea_info_array_spec.rb
347
427
  - spec/lib/ruby_smb/field/extended_attribute_flag_spec.rb
348
- - spec/lib/ruby_smb/field/file_full_ea_info_spec.rb
349
428
  - spec/lib/ruby_smb/field/file_time_spec.rb
350
429
  - spec/lib/ruby_smb/field/nt_status_spec.rb
351
430
  - spec/lib/ruby_smb/field/security_descriptor.rb
431
+ - spec/lib/ruby_smb/field/smb2_fileid_spec.rb
352
432
  - spec/lib/ruby_smb/field/smb_fea_list_spec.rb
353
433
  - spec/lib/ruby_smb/field/smb_fea_spec.rb
434
+ - spec/lib/ruby_smb/field/smb_gea_list_spec.rb
435
+ - spec/lib/ruby_smb/field/smb_gea_spec.rb
354
436
  - spec/lib/ruby_smb/field/stringz16_spec.rb
355
437
  - spec/lib/ruby_smb/field/utime_spec.rb
438
+ - spec/lib/ruby_smb/fscc/ea_info_array_spec.rb
439
+ - spec/lib/ruby_smb/fscc/file_full_ea_info_spec.rb
440
+ - spec/lib/ruby_smb/fscc/file_information/file_both_directory_information_spec.rb
441
+ - spec/lib/ruby_smb/fscc/file_information/file_directory_information_spec.rb
442
+ - spec/lib/ruby_smb/fscc/file_information/file_disposition_information_spec.rb
443
+ - spec/lib/ruby_smb/fscc/file_information/file_full_directory_information_spec.rb
444
+ - spec/lib/ruby_smb/fscc/file_information/file_id_both_directory_information_spec.rb
445
+ - spec/lib/ruby_smb/fscc/file_information/file_id_full_directory_information_spec.rb
446
+ - spec/lib/ruby_smb/fscc/file_information/file_names_information_spec.rb
447
+ - spec/lib/ruby_smb/fscc/file_information/file_rename_information_spec.rb
448
+ - spec/lib/ruby_smb/fscc/fscc_file_attributes_spec.rb
356
449
  - spec/lib/ruby_smb/generic_packet_spec.rb
450
+ - spec/lib/ruby_smb/nbss/negative_session_response_spec.rb
451
+ - spec/lib/ruby_smb/nbss/session_header_spec.rb
452
+ - spec/lib/ruby_smb/nbss/session_request_spec.rb
357
453
  - spec/lib/ruby_smb/smb1/andx_block_spec.rb
358
454
  - spec/lib/ruby_smb/smb1/bit_field/capabilities_spec.rb
359
455
  - spec/lib/ruby_smb/smb1/bit_field/create_options_spec.rb
360
456
  - spec/lib/ruby_smb/smb1/bit_field/directory_access_mask_spec.rb
361
457
  - spec/lib/ruby_smb/smb1/bit_field/file_access_mask_spec.rb
458
+ - spec/lib/ruby_smb/smb1/bit_field/file_status_flags_spec.rb
362
459
  - spec/lib/ruby_smb/smb1/bit_field/header_flags2_spec.rb
363
460
  - spec/lib/ruby_smb/smb1/bit_field/header_flags_spec.rb
364
461
  - spec/lib/ruby_smb/smb1/bit_field/open2_access_mode_spec.rb
365
462
  - spec/lib/ruby_smb/smb1/bit_field/open2_flags_spec.rb
366
463
  - spec/lib/ruby_smb/smb1/bit_field/open2_open_mode_spec.rb
367
464
  - spec/lib/ruby_smb/smb1/bit_field/optional_support_spec.rb
465
+ - spec/lib/ruby_smb/smb1/bit_field/security_flags_spec.rb
368
466
  - spec/lib/ruby_smb/smb1/bit_field/security_mode_spec.rb
369
467
  - spec/lib/ruby_smb/smb1/bit_field/share_access_spec.rb
370
468
  - spec/lib/ruby_smb/smb1/bit_field/smb_ext_file_attributes_spec.rb
@@ -374,6 +472,9 @@ files:
374
472
  - spec/lib/ruby_smb/smb1/bit_field/tree_connect_flags_spec.rb
375
473
  - spec/lib/ruby_smb/smb1/data_block_spec.rb
376
474
  - spec/lib/ruby_smb/smb1/dialect_spec.rb
475
+ - spec/lib/ruby_smb/smb1/file_spec.rb
476
+ - spec/lib/ruby_smb/smb1/packet/close_request_spec.rb
477
+ - spec/lib/ruby_smb/smb1/packet/close_response_spec.rb
377
478
  - spec/lib/ruby_smb/smb1/packet/echo_request_spec.rb
378
479
  - spec/lib/ruby_smb/smb1/packet/echo_response_spec.rb
379
480
  - spec/lib/ruby_smb/smb1/packet/error_packet_spec.rb
@@ -382,23 +483,36 @@ files:
382
483
  - spec/lib/ruby_smb/smb1/packet/negotiate_request_spec.rb
383
484
  - spec/lib/ruby_smb/smb1/packet/negotiate_response_extended_spec.rb
384
485
  - spec/lib/ruby_smb/smb1/packet/negotiate_response_spec.rb
486
+ - spec/lib/ruby_smb/smb1/packet/nt_create_andx_request_spec.rb
487
+ - spec/lib/ruby_smb/smb1/packet/nt_create_andx_response_spec.rb
385
488
  - spec/lib/ruby_smb/smb1/packet/nt_trans/create_request_spec.rb
386
489
  - spec/lib/ruby_smb/smb1/packet/nt_trans/create_response_spec.rb
387
490
  - spec/lib/ruby_smb/smb1/packet/nt_trans/request_spec.rb
388
491
  - spec/lib/ruby_smb/smb1/packet/nt_trans/response_spec.rb
492
+ - spec/lib/ruby_smb/smb1/packet/read_andx_request_spec.rb
493
+ - spec/lib/ruby_smb/smb1/packet/read_andx_response_spec.rb
389
494
  - spec/lib/ruby_smb/smb1/packet/session_setup_legacy_request_spec.rb
390
495
  - spec/lib/ruby_smb/smb1/packet/session_setup_legacy_response_spec.rb
391
496
  - spec/lib/ruby_smb/smb1/packet/session_setup_request_spec.rb
392
497
  - spec/lib/ruby_smb/smb1/packet/session_setup_response_spec.rb
498
+ - spec/lib/ruby_smb/smb1/packet/trans2/find_first2_request_spec.rb
499
+ - spec/lib/ruby_smb/smb1/packet/trans2/find_first2_response_spec.rb
500
+ - spec/lib/ruby_smb/smb1/packet/trans2/find_information_level/find_file_full_directory_info_spec.rb
501
+ - spec/lib/ruby_smb/smb1/packet/trans2/find_next2_request_spec.rb
502
+ - spec/lib/ruby_smb/smb1/packet/trans2/find_next2_response_spec.rb
393
503
  - spec/lib/ruby_smb/smb1/packet/trans2/open2_request_spec.rb
394
504
  - spec/lib/ruby_smb/smb1/packet/trans2/open2_response_spec.rb
395
505
  - spec/lib/ruby_smb/smb1/packet/trans2/request_secondary_spec.rb
396
506
  - spec/lib/ruby_smb/smb1/packet/trans2/request_spec.rb
397
507
  - spec/lib/ruby_smb/smb1/packet/trans2/response_spec.rb
508
+ - spec/lib/ruby_smb/smb1/packet/trans2/set_file_information_request_spec.rb
509
+ - spec/lib/ruby_smb/smb1/packet/trans2/set_file_information_response_spec.rb
398
510
  - spec/lib/ruby_smb/smb1/packet/tree_connect_request_spec.rb
399
511
  - spec/lib/ruby_smb/smb1/packet/tree_connect_response_spec.rb
400
512
  - spec/lib/ruby_smb/smb1/packet/tree_disconnect_request_spec.rb
401
513
  - spec/lib/ruby_smb/smb1/packet/tree_disconnect_response_spec.rb
514
+ - spec/lib/ruby_smb/smb1/packet/write_andx_request_spec.rb
515
+ - spec/lib/ruby_smb/smb1/packet/write_andx_response_spec.rb
402
516
  - spec/lib/ruby_smb/smb1/parameter_block_spec.rb
403
517
  - spec/lib/ruby_smb/smb1/smb_header_spec.rb
404
518
  - spec/lib/ruby_smb/smb1/tree_spec.rb
@@ -410,18 +524,33 @@ files:
410
524
  - spec/lib/ruby_smb/smb2/bit_field/share_flags_spec.rb
411
525
  - spec/lib/ruby_smb/smb2/bit_field/smb2_capabilities_spec.rb
412
526
  - spec/lib/ruby_smb/smb2/bit_field/smb_secruity_mode_spec.rb
527
+ - spec/lib/ruby_smb/smb2/create_context_spec.rb
528
+ - spec/lib/ruby_smb/smb2/file_spec.rb
529
+ - spec/lib/ruby_smb/smb2/packet/close_request_spec.rb
530
+ - spec/lib/ruby_smb/smb2/packet/close_response_spec.rb
531
+ - spec/lib/ruby_smb/smb2/packet/create_request_spec.rb
532
+ - spec/lib/ruby_smb/smb2/packet/create_response_spec.rb
413
533
  - spec/lib/ruby_smb/smb2/packet/echo_request_spec.rb
414
534
  - spec/lib/ruby_smb/smb2/packet/echo_response_spec.rb
535
+ - spec/lib/ruby_smb/smb2/packet/ioctl_request_spec.rb
415
536
  - spec/lib/ruby_smb/smb2/packet/logoff_request_spec.rb
416
537
  - spec/lib/ruby_smb/smb2/packet/logoff_response_spec.rb
417
538
  - spec/lib/ruby_smb/smb2/packet/negotiate_request_spec.rb
418
539
  - spec/lib/ruby_smb/smb2/packet/negotiate_response_spec.rb
540
+ - spec/lib/ruby_smb/smb2/packet/query_directory_request_spec.rb
541
+ - spec/lib/ruby_smb/smb2/packet/query_directory_response_spec.rb
542
+ - spec/lib/ruby_smb/smb2/packet/read_request_spec.rb
543
+ - spec/lib/ruby_smb/smb2/packet/read_response_spec.rb
419
544
  - spec/lib/ruby_smb/smb2/packet/session_setup_request_spec.rb
420
545
  - spec/lib/ruby_smb/smb2/packet/session_setup_response_spec.rb
546
+ - spec/lib/ruby_smb/smb2/packet/set_info_request_spec.rb
547
+ - spec/lib/ruby_smb/smb2/packet/set_info_response_spec.rb
421
548
  - spec/lib/ruby_smb/smb2/packet/tree_connect_request_spec.rb
422
549
  - spec/lib/ruby_smb/smb2/packet/tree_connect_response_spec.rb
423
550
  - spec/lib/ruby_smb/smb2/packet/tree_disconnect_request_spec.rb
424
551
  - spec/lib/ruby_smb/smb2/packet/tree_disconnect_response_spec.rb
552
+ - spec/lib/ruby_smb/smb2/packet/write_request_spec.rb
553
+ - spec/lib/ruby_smb/smb2/packet/write_response_spec.rb
425
554
  - spec/lib/ruby_smb/smb2/smb2_header_spec.rb
426
555
  - spec/lib/ruby_smb/smb2/tree_spec.rb
427
556
  - spec/lib/ruby_smb_spec.rb
@@ -448,36 +577,59 @@ required_rubygems_version: !ruby/object:Gem::Requirement
448
577
  version: '0'
449
578
  requirements: []
450
579
  rubyforge_project:
451
- rubygems_version: 2.6.8
580
+ rubygems_version: 2.6.13
452
581
  signing_key:
453
582
  specification_version: 4
454
583
  summary: A pure Ruby implementation of the SMB Protocol Family
455
584
  test_files:
456
585
  - spec/lib/ruby_smb/client_spec.rb
457
- - spec/lib/ruby_smb/dispatcher/dispatcher_base_spec.rb
586
+ - spec/lib/ruby_smb/dcerpc/bind_spec.rb
587
+ - spec/lib/ruby_smb/dcerpc/handle_spec.rb
588
+ - spec/lib/ruby_smb/dcerpc/request_spec.rb
589
+ - spec/lib/ruby_smb/dcerpc/response_spec.rb
590
+ - spec/lib/ruby_smb/dcerpc/srvsvc_spec.rb
591
+ - spec/lib/ruby_smb/dcerpc/uuid_spec.rb
592
+ - spec/lib/ruby_smb/dispatcher/base_spec.rb
458
593
  - spec/lib/ruby_smb/dispatcher/socket_spec.rb
459
- - spec/lib/ruby_smb/field/ea_info_array_spec.rb
460
594
  - spec/lib/ruby_smb/field/extended_attribute_flag_spec.rb
461
- - spec/lib/ruby_smb/field/file_full_ea_info_spec.rb
462
595
  - spec/lib/ruby_smb/field/file_time_spec.rb
463
596
  - spec/lib/ruby_smb/field/nt_status_spec.rb
464
597
  - spec/lib/ruby_smb/field/security_descriptor.rb
598
+ - spec/lib/ruby_smb/field/smb2_fileid_spec.rb
465
599
  - spec/lib/ruby_smb/field/smb_fea_list_spec.rb
466
600
  - spec/lib/ruby_smb/field/smb_fea_spec.rb
601
+ - spec/lib/ruby_smb/field/smb_gea_list_spec.rb
602
+ - spec/lib/ruby_smb/field/smb_gea_spec.rb
467
603
  - spec/lib/ruby_smb/field/stringz16_spec.rb
468
604
  - spec/lib/ruby_smb/field/utime_spec.rb
605
+ - spec/lib/ruby_smb/fscc/ea_info_array_spec.rb
606
+ - spec/lib/ruby_smb/fscc/file_full_ea_info_spec.rb
607
+ - spec/lib/ruby_smb/fscc/file_information/file_both_directory_information_spec.rb
608
+ - spec/lib/ruby_smb/fscc/file_information/file_directory_information_spec.rb
609
+ - spec/lib/ruby_smb/fscc/file_information/file_disposition_information_spec.rb
610
+ - spec/lib/ruby_smb/fscc/file_information/file_full_directory_information_spec.rb
611
+ - spec/lib/ruby_smb/fscc/file_information/file_id_both_directory_information_spec.rb
612
+ - spec/lib/ruby_smb/fscc/file_information/file_id_full_directory_information_spec.rb
613
+ - spec/lib/ruby_smb/fscc/file_information/file_names_information_spec.rb
614
+ - spec/lib/ruby_smb/fscc/file_information/file_rename_information_spec.rb
615
+ - spec/lib/ruby_smb/fscc/fscc_file_attributes_spec.rb
469
616
  - spec/lib/ruby_smb/generic_packet_spec.rb
617
+ - spec/lib/ruby_smb/nbss/negative_session_response_spec.rb
618
+ - spec/lib/ruby_smb/nbss/session_header_spec.rb
619
+ - spec/lib/ruby_smb/nbss/session_request_spec.rb
470
620
  - spec/lib/ruby_smb/smb1/andx_block_spec.rb
471
621
  - spec/lib/ruby_smb/smb1/bit_field/capabilities_spec.rb
472
622
  - spec/lib/ruby_smb/smb1/bit_field/create_options_spec.rb
473
623
  - spec/lib/ruby_smb/smb1/bit_field/directory_access_mask_spec.rb
474
624
  - spec/lib/ruby_smb/smb1/bit_field/file_access_mask_spec.rb
625
+ - spec/lib/ruby_smb/smb1/bit_field/file_status_flags_spec.rb
475
626
  - spec/lib/ruby_smb/smb1/bit_field/header_flags2_spec.rb
476
627
  - spec/lib/ruby_smb/smb1/bit_field/header_flags_spec.rb
477
628
  - spec/lib/ruby_smb/smb1/bit_field/open2_access_mode_spec.rb
478
629
  - spec/lib/ruby_smb/smb1/bit_field/open2_flags_spec.rb
479
630
  - spec/lib/ruby_smb/smb1/bit_field/open2_open_mode_spec.rb
480
631
  - spec/lib/ruby_smb/smb1/bit_field/optional_support_spec.rb
632
+ - spec/lib/ruby_smb/smb1/bit_field/security_flags_spec.rb
481
633
  - spec/lib/ruby_smb/smb1/bit_field/security_mode_spec.rb
482
634
  - spec/lib/ruby_smb/smb1/bit_field/share_access_spec.rb
483
635
  - spec/lib/ruby_smb/smb1/bit_field/smb_ext_file_attributes_spec.rb
@@ -487,6 +639,9 @@ test_files:
487
639
  - spec/lib/ruby_smb/smb1/bit_field/tree_connect_flags_spec.rb
488
640
  - spec/lib/ruby_smb/smb1/data_block_spec.rb
489
641
  - spec/lib/ruby_smb/smb1/dialect_spec.rb
642
+ - spec/lib/ruby_smb/smb1/file_spec.rb
643
+ - spec/lib/ruby_smb/smb1/packet/close_request_spec.rb
644
+ - spec/lib/ruby_smb/smb1/packet/close_response_spec.rb
490
645
  - spec/lib/ruby_smb/smb1/packet/echo_request_spec.rb
491
646
  - spec/lib/ruby_smb/smb1/packet/echo_response_spec.rb
492
647
  - spec/lib/ruby_smb/smb1/packet/error_packet_spec.rb
@@ -495,23 +650,36 @@ test_files:
495
650
  - spec/lib/ruby_smb/smb1/packet/negotiate_request_spec.rb
496
651
  - spec/lib/ruby_smb/smb1/packet/negotiate_response_extended_spec.rb
497
652
  - spec/lib/ruby_smb/smb1/packet/negotiate_response_spec.rb
653
+ - spec/lib/ruby_smb/smb1/packet/nt_create_andx_request_spec.rb
654
+ - spec/lib/ruby_smb/smb1/packet/nt_create_andx_response_spec.rb
498
655
  - spec/lib/ruby_smb/smb1/packet/nt_trans/create_request_spec.rb
499
656
  - spec/lib/ruby_smb/smb1/packet/nt_trans/create_response_spec.rb
500
657
  - spec/lib/ruby_smb/smb1/packet/nt_trans/request_spec.rb
501
658
  - spec/lib/ruby_smb/smb1/packet/nt_trans/response_spec.rb
659
+ - spec/lib/ruby_smb/smb1/packet/read_andx_request_spec.rb
660
+ - spec/lib/ruby_smb/smb1/packet/read_andx_response_spec.rb
502
661
  - spec/lib/ruby_smb/smb1/packet/session_setup_legacy_request_spec.rb
503
662
  - spec/lib/ruby_smb/smb1/packet/session_setup_legacy_response_spec.rb
504
663
  - spec/lib/ruby_smb/smb1/packet/session_setup_request_spec.rb
505
664
  - spec/lib/ruby_smb/smb1/packet/session_setup_response_spec.rb
665
+ - spec/lib/ruby_smb/smb1/packet/trans2/find_first2_request_spec.rb
666
+ - spec/lib/ruby_smb/smb1/packet/trans2/find_first2_response_spec.rb
667
+ - spec/lib/ruby_smb/smb1/packet/trans2/find_information_level/find_file_full_directory_info_spec.rb
668
+ - spec/lib/ruby_smb/smb1/packet/trans2/find_next2_request_spec.rb
669
+ - spec/lib/ruby_smb/smb1/packet/trans2/find_next2_response_spec.rb
506
670
  - spec/lib/ruby_smb/smb1/packet/trans2/open2_request_spec.rb
507
671
  - spec/lib/ruby_smb/smb1/packet/trans2/open2_response_spec.rb
508
672
  - spec/lib/ruby_smb/smb1/packet/trans2/request_secondary_spec.rb
509
673
  - spec/lib/ruby_smb/smb1/packet/trans2/request_spec.rb
510
674
  - spec/lib/ruby_smb/smb1/packet/trans2/response_spec.rb
675
+ - spec/lib/ruby_smb/smb1/packet/trans2/set_file_information_request_spec.rb
676
+ - spec/lib/ruby_smb/smb1/packet/trans2/set_file_information_response_spec.rb
511
677
  - spec/lib/ruby_smb/smb1/packet/tree_connect_request_spec.rb
512
678
  - spec/lib/ruby_smb/smb1/packet/tree_connect_response_spec.rb
513
679
  - spec/lib/ruby_smb/smb1/packet/tree_disconnect_request_spec.rb
514
680
  - spec/lib/ruby_smb/smb1/packet/tree_disconnect_response_spec.rb
681
+ - spec/lib/ruby_smb/smb1/packet/write_andx_request_spec.rb
682
+ - spec/lib/ruby_smb/smb1/packet/write_andx_response_spec.rb
515
683
  - spec/lib/ruby_smb/smb1/parameter_block_spec.rb
516
684
  - spec/lib/ruby_smb/smb1/smb_header_spec.rb
517
685
  - spec/lib/ruby_smb/smb1/tree_spec.rb
@@ -523,18 +691,33 @@ test_files:
523
691
  - spec/lib/ruby_smb/smb2/bit_field/share_flags_spec.rb
524
692
  - spec/lib/ruby_smb/smb2/bit_field/smb2_capabilities_spec.rb
525
693
  - spec/lib/ruby_smb/smb2/bit_field/smb_secruity_mode_spec.rb
694
+ - spec/lib/ruby_smb/smb2/create_context_spec.rb
695
+ - spec/lib/ruby_smb/smb2/file_spec.rb
696
+ - spec/lib/ruby_smb/smb2/packet/close_request_spec.rb
697
+ - spec/lib/ruby_smb/smb2/packet/close_response_spec.rb
698
+ - spec/lib/ruby_smb/smb2/packet/create_request_spec.rb
699
+ - spec/lib/ruby_smb/smb2/packet/create_response_spec.rb
526
700
  - spec/lib/ruby_smb/smb2/packet/echo_request_spec.rb
527
701
  - spec/lib/ruby_smb/smb2/packet/echo_response_spec.rb
702
+ - spec/lib/ruby_smb/smb2/packet/ioctl_request_spec.rb
528
703
  - spec/lib/ruby_smb/smb2/packet/logoff_request_spec.rb
529
704
  - spec/lib/ruby_smb/smb2/packet/logoff_response_spec.rb
530
705
  - spec/lib/ruby_smb/smb2/packet/negotiate_request_spec.rb
531
706
  - spec/lib/ruby_smb/smb2/packet/negotiate_response_spec.rb
707
+ - spec/lib/ruby_smb/smb2/packet/query_directory_request_spec.rb
708
+ - spec/lib/ruby_smb/smb2/packet/query_directory_response_spec.rb
709
+ - spec/lib/ruby_smb/smb2/packet/read_request_spec.rb
710
+ - spec/lib/ruby_smb/smb2/packet/read_response_spec.rb
532
711
  - spec/lib/ruby_smb/smb2/packet/session_setup_request_spec.rb
533
712
  - spec/lib/ruby_smb/smb2/packet/session_setup_response_spec.rb
713
+ - spec/lib/ruby_smb/smb2/packet/set_info_request_spec.rb
714
+ - spec/lib/ruby_smb/smb2/packet/set_info_response_spec.rb
534
715
  - spec/lib/ruby_smb/smb2/packet/tree_connect_request_spec.rb
535
716
  - spec/lib/ruby_smb/smb2/packet/tree_connect_response_spec.rb
536
717
  - spec/lib/ruby_smb/smb2/packet/tree_disconnect_request_spec.rb
537
718
  - spec/lib/ruby_smb/smb2/packet/tree_disconnect_response_spec.rb
719
+ - spec/lib/ruby_smb/smb2/packet/write_request_spec.rb
720
+ - spec/lib/ruby_smb/smb2/packet/write_response_spec.rb
538
721
  - spec/lib/ruby_smb/smb2/smb2_header_spec.rb
539
722
  - spec/lib/ruby_smb/smb2/tree_spec.rb
540
723
  - spec/lib/ruby_smb_spec.rb