ronin-support 1.0.0.beta2 → 1.0.0.beta3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (313) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +1 -0
  3. data/.yardopts +1 -1
  4. data/ChangeLog.md +5 -3
  5. data/Gemfile +2 -2
  6. data/README.md +139 -69
  7. data/gemspec.yml +3 -2
  8. data/lib/ronin/support/archive/core_ext/file.rb +1 -1
  9. data/lib/ronin/support/archive/core_ext.rb +1 -1
  10. data/lib/ronin/support/archive/mixin.rb +1 -1
  11. data/lib/ronin/support/archive/tar/reader.rb +1 -1
  12. data/lib/ronin/support/archive/tar/writer.rb +1 -1
  13. data/lib/ronin/support/archive/tar.rb +1 -1
  14. data/lib/ronin/support/archive/zip/reader/entry.rb +1 -1
  15. data/lib/ronin/support/archive/zip/reader/statistics.rb +1 -1
  16. data/lib/ronin/support/archive/zip/reader.rb +1 -1
  17. data/lib/ronin/support/archive/zip/writer.rb +1 -1
  18. data/lib/ronin/support/archive/zip.rb +1 -1
  19. data/lib/ronin/support/archive.rb +10 -1
  20. data/lib/ronin/support/binary/array.rb +1 -1
  21. data/lib/ronin/support/binary/bit_flip/core_ext/integer.rb +79 -0
  22. data/lib/ronin/support/binary/bit_flip/core_ext/string.rb +61 -0
  23. data/lib/ronin/support/binary/{hexdump.rb → bit_flip/core_ext.rb} +3 -3
  24. data/lib/ronin/support/binary/bit_flip.rb +18 -1
  25. data/lib/ronin/support/binary/buffer.rb +1 -1
  26. data/lib/ronin/support/binary/byte_slice.rb +1 -1
  27. data/lib/ronin/support/binary/core_ext/array.rb +1 -1
  28. data/lib/ronin/support/binary/core_ext/float.rb +1 -1
  29. data/lib/ronin/support/binary/core_ext/integer.rb +1 -58
  30. data/lib/ronin/support/binary/core_ext/io.rb +1 -1
  31. data/lib/ronin/support/binary/core_ext/string.rb +1 -40
  32. data/lib/ronin/support/binary/core_ext.rb +3 -1
  33. data/lib/ronin/support/binary/cstring.rb +1 -1
  34. data/lib/ronin/support/binary/ctypes/aggregate_type.rb +1 -1
  35. data/lib/ronin/support/binary/ctypes/arch/arm/big_endian.rb +1 -1
  36. data/lib/ronin/support/binary/ctypes/arch/arm.rb +1 -1
  37. data/lib/ronin/support/binary/ctypes/arch/arm64/big_endian.rb +1 -1
  38. data/lib/ronin/support/binary/ctypes/arch/arm64.rb +1 -1
  39. data/lib/ronin/support/binary/ctypes/arch/mips/little_endian.rb +1 -1
  40. data/lib/ronin/support/binary/ctypes/arch/mips.rb +1 -1
  41. data/lib/ronin/support/binary/ctypes/arch/mips64/little_endian.rb +1 -1
  42. data/lib/ronin/support/binary/ctypes/arch/mips64.rb +1 -1
  43. data/lib/ronin/support/binary/ctypes/arch/ppc.rb +1 -1
  44. data/lib/ronin/support/binary/ctypes/arch/ppc64.rb +1 -1
  45. data/lib/ronin/support/binary/ctypes/arch/x86.rb +1 -1
  46. data/lib/ronin/support/binary/ctypes/arch/x86_64.rb +1 -1
  47. data/lib/ronin/support/binary/ctypes/arch.rb +1 -1
  48. data/lib/ronin/support/binary/ctypes/array_object_type.rb +1 -1
  49. data/lib/ronin/support/binary/ctypes/array_type.rb +1 -1
  50. data/lib/ronin/support/binary/ctypes/big_endian.rb +1 -1
  51. data/lib/ronin/support/binary/ctypes/char_type.rb +1 -1
  52. data/lib/ronin/support/binary/ctypes/char_types.rb +1 -1
  53. data/lib/ronin/support/binary/ctypes/enum_type.rb +1 -1
  54. data/lib/ronin/support/binary/ctypes/float32_type.rb +1 -1
  55. data/lib/ronin/support/binary/ctypes/float64_type.rb +1 -1
  56. data/lib/ronin/support/binary/ctypes/float_type.rb +1 -1
  57. data/lib/ronin/support/binary/ctypes/int16_type.rb +1 -1
  58. data/lib/ronin/support/binary/ctypes/int32_type.rb +1 -1
  59. data/lib/ronin/support/binary/ctypes/int64_type.rb +1 -1
  60. data/lib/ronin/support/binary/ctypes/int8_type.rb +1 -1
  61. data/lib/ronin/support/binary/ctypes/int_type.rb +1 -1
  62. data/lib/ronin/support/binary/ctypes/little_endian.rb +1 -1
  63. data/lib/ronin/support/binary/ctypes/mixin.rb +1 -1
  64. data/lib/ronin/support/binary/ctypes/native.rb +1 -1
  65. data/lib/ronin/support/binary/ctypes/network.rb +1 -1
  66. data/lib/ronin/support/binary/ctypes/object_type.rb +1 -1
  67. data/lib/ronin/support/binary/ctypes/os/bsd.rb +1 -1
  68. data/lib/ronin/support/binary/ctypes/os/freebsd.rb +1 -1
  69. data/lib/ronin/support/binary/ctypes/os/linux.rb +1 -1
  70. data/lib/ronin/support/binary/ctypes/os/macos.rb +1 -1
  71. data/lib/ronin/support/binary/ctypes/os/netbsd.rb +1 -1
  72. data/lib/ronin/support/binary/ctypes/os/openbsd.rb +1 -1
  73. data/lib/ronin/support/binary/ctypes/os/unix.rb +1 -1
  74. data/lib/ronin/support/binary/ctypes/os/windows.rb +1 -1
  75. data/lib/ronin/support/binary/ctypes/os.rb +1 -1
  76. data/lib/ronin/support/binary/ctypes/scalar_type.rb +1 -1
  77. data/lib/ronin/support/binary/ctypes/string_type.rb +1 -1
  78. data/lib/ronin/support/binary/ctypes/struct_object_type.rb +1 -1
  79. data/lib/ronin/support/binary/ctypes/struct_type.rb +1 -1
  80. data/lib/ronin/support/binary/ctypes/type.rb +1 -1
  81. data/lib/ronin/support/binary/ctypes/type_resolver.rb +1 -1
  82. data/lib/ronin/support/binary/ctypes/uint16_type.rb +1 -1
  83. data/lib/ronin/support/binary/ctypes/uint32_type.rb +1 -1
  84. data/lib/ronin/support/binary/ctypes/uint64_type.rb +1 -1
  85. data/lib/ronin/support/binary/ctypes/uint8_type.rb +1 -1
  86. data/lib/ronin/support/binary/ctypes/uint_type.rb +1 -1
  87. data/lib/ronin/support/binary/ctypes/unbounded_array_type.rb +1 -1
  88. data/lib/ronin/support/binary/ctypes/union_object_type.rb +1 -1
  89. data/lib/ronin/support/binary/ctypes/union_type.rb +1 -1
  90. data/lib/ronin/support/binary/ctypes.rb +1 -1
  91. data/lib/ronin/support/binary/memory.rb +1 -1
  92. data/lib/ronin/support/binary/packet.rb +1 -1
  93. data/lib/ronin/support/binary/stack.rb +1 -1
  94. data/lib/ronin/support/binary/stream/methods.rb +1 -1
  95. data/lib/ronin/support/binary/stream.rb +1 -1
  96. data/lib/ronin/support/binary/struct/member.rb +1 -1
  97. data/lib/ronin/support/binary/struct.rb +1 -1
  98. data/lib/ronin/support/binary/template.rb +1 -1
  99. data/lib/ronin/support/binary/{hexdump → unhexdump}/core_ext/file.rb +16 -4
  100. data/lib/ronin/support/binary/{hexdump → unhexdump}/core_ext/string.rb +16 -4
  101. data/lib/ronin/support/binary/{hexdump → unhexdump}/core_ext.rb +3 -3
  102. data/lib/ronin/support/binary/{hexdump → unhexdump}/parser.rb +2 -2
  103. data/lib/ronin/support/binary/unhexdump.rb +37 -0
  104. data/lib/ronin/support/binary/union.rb +1 -1
  105. data/lib/ronin/support/binary.rb +28 -2
  106. data/lib/ronin/support/cli/ansi.rb +1 -1
  107. data/lib/ronin/support/cli/io_shell/core_ext/io.rb +1 -1
  108. data/lib/ronin/support/cli/io_shell/core_ext.rb +1 -1
  109. data/lib/ronin/support/cli/io_shell.rb +1 -1
  110. data/lib/ronin/support/cli/printing.rb +1 -1
  111. data/lib/ronin/support/cli.rb +1 -1
  112. data/lib/ronin/support/compression/core_ext/file.rb +1 -1
  113. data/lib/ronin/support/compression/core_ext/string.rb +1 -1
  114. data/lib/ronin/support/compression/core_ext.rb +1 -1
  115. data/lib/ronin/support/compression/gzip/reader.rb +2 -2
  116. data/lib/ronin/support/compression/gzip/writer.rb +2 -2
  117. data/lib/ronin/support/compression/gzip.rb +1 -1
  118. data/lib/ronin/support/compression/mixin.rb +1 -1
  119. data/lib/ronin/support/compression/zlib.rb +56 -1
  120. data/lib/ronin/support/compression.rb +14 -3
  121. data/lib/ronin/support/core_ext/enumerable.rb +1 -1
  122. data/lib/ronin/support/core_ext/file.rb +1 -1
  123. data/lib/ronin/support/core_ext/integer.rb +1 -1
  124. data/lib/ronin/support/core_ext/ipaddr.rb +1 -1
  125. data/lib/ronin/support/core_ext/kernel.rb +1 -1
  126. data/lib/ronin/support/core_ext/string.rb +1 -1
  127. data/lib/ronin/support/core_ext.rb +1 -2
  128. data/lib/ronin/support/crypto/cert.rb +1 -1
  129. data/lib/ronin/support/crypto/cert_chain.rb +1 -1
  130. data/lib/ronin/support/crypto/cipher/aes.rb +1 -1
  131. data/lib/ronin/support/crypto/cipher/aes128.rb +1 -1
  132. data/lib/ronin/support/crypto/cipher/aes256.rb +1 -1
  133. data/lib/ronin/support/crypto/cipher.rb +1 -1
  134. data/lib/ronin/support/crypto/core_ext/file.rb +1 -1
  135. data/lib/ronin/support/crypto/core_ext/string.rb +1 -1
  136. data/lib/ronin/support/crypto/core_ext.rb +1 -1
  137. data/lib/ronin/support/crypto/hmac.rb +1 -1
  138. data/lib/ronin/support/crypto/key/dh.rb +1 -1
  139. data/lib/ronin/support/crypto/key/dsa.rb +1 -1
  140. data/lib/ronin/support/crypto/key/ec.rb +1 -1
  141. data/lib/ronin/support/crypto/key/methods.rb +1 -1
  142. data/lib/ronin/support/crypto/key/rsa.rb +1 -1
  143. data/lib/ronin/support/crypto/key.rb +1 -1
  144. data/lib/ronin/support/crypto/mixin.rb +1 -1
  145. data/lib/ronin/support/crypto/openssl.rb +1 -1
  146. data/lib/ronin/support/crypto.rb +41 -1
  147. data/lib/ronin/support/encoding/base16/core_ext/string.rb +1 -1
  148. data/lib/ronin/support/encoding/base16/core_ext.rb +1 -1
  149. data/lib/ronin/support/encoding/base16.rb +6 -1
  150. data/lib/ronin/support/encoding/base32/core_ext/string.rb +1 -1
  151. data/lib/ronin/support/encoding/base32/core_ext.rb +1 -1
  152. data/lib/ronin/support/encoding/base32.rb +8 -3
  153. data/lib/ronin/support/encoding/base64/core_ext/string.rb +1 -1
  154. data/lib/ronin/support/encoding/base64/core_ext.rb +1 -1
  155. data/lib/ronin/support/encoding/base64.rb +9 -2
  156. data/lib/ronin/support/encoding/c/core_ext/integer.rb +1 -1
  157. data/lib/ronin/support/encoding/c/core_ext/string.rb +1 -1
  158. data/lib/ronin/support/encoding/c/core_ext.rb +1 -1
  159. data/lib/ronin/support/encoding/c.rb +11 -1
  160. data/lib/ronin/support/encoding/core_ext/string.rb +1 -1
  161. data/lib/ronin/support/encoding/core_ext.rb +1 -1
  162. data/lib/ronin/support/encoding/hex/core_ext/integer.rb +1 -1
  163. data/lib/ronin/support/encoding/hex/core_ext/string.rb +1 -1
  164. data/lib/ronin/support/encoding/hex/core_ext.rb +1 -1
  165. data/lib/ronin/support/encoding/hex.rb +13 -1
  166. data/lib/ronin/support/encoding/html/core_ext/integer.rb +1 -1
  167. data/lib/ronin/support/encoding/html/core_ext/string.rb +1 -1
  168. data/lib/ronin/support/encoding/html/core_ext.rb +1 -1
  169. data/lib/ronin/support/encoding/html.rb +10 -1
  170. data/lib/ronin/support/encoding/http/core_ext/integer.rb +1 -1
  171. data/lib/ronin/support/encoding/http/core_ext/string.rb +1 -1
  172. data/lib/ronin/support/encoding/http/core_ext.rb +1 -1
  173. data/lib/ronin/support/encoding/http.rb +10 -1
  174. data/lib/ronin/support/encoding/js/core_ext/integer.rb +1 -1
  175. data/lib/ronin/support/encoding/js/core_ext/string.rb +1 -1
  176. data/lib/ronin/support/encoding/js/core_ext.rb +1 -1
  177. data/lib/ronin/support/encoding/js.rb +12 -1
  178. data/lib/ronin/support/encoding/powershell/core_ext/integer.rb +1 -1
  179. data/lib/ronin/support/encoding/powershell/core_ext/string.rb +1 -1
  180. data/lib/ronin/support/encoding/powershell/core_ext.rb +1 -1
  181. data/lib/ronin/support/encoding/powershell.rb +12 -1
  182. data/lib/ronin/support/encoding/punycode/core_ext/string.rb +1 -1
  183. data/lib/ronin/support/encoding/punycode/core_ext.rb +1 -1
  184. data/lib/ronin/support/encoding/punycode.rb +6 -1
  185. data/lib/ronin/support/encoding/quoted_printable/core_ext/string.rb +1 -1
  186. data/lib/ronin/support/encoding/quoted_printable/core_ext.rb +1 -1
  187. data/lib/ronin/support/encoding/quoted_printable.rb +6 -1
  188. data/lib/ronin/support/encoding/ruby/core_ext/string.rb +1 -1
  189. data/lib/ronin/support/encoding/ruby/core_ext.rb +1 -1
  190. data/lib/ronin/support/encoding/ruby.rb +10 -1
  191. data/lib/ronin/support/encoding/shell/core_ext/integer.rb +1 -1
  192. data/lib/ronin/support/encoding/shell/core_ext/string.rb +1 -1
  193. data/lib/ronin/support/encoding/shell/core_ext.rb +1 -1
  194. data/lib/ronin/support/encoding/shell.rb +12 -1
  195. data/lib/ronin/support/encoding/smtp.rb +1 -1
  196. data/lib/ronin/support/encoding/sql/core_ext/string.rb +1 -1
  197. data/lib/ronin/support/encoding/sql/core_ext.rb +1 -1
  198. data/lib/ronin/support/encoding/sql.rb +13 -1
  199. data/lib/ronin/support/encoding/uri/core_ext/integer.rb +1 -1
  200. data/lib/ronin/support/encoding/uri/core_ext/string.rb +1 -1
  201. data/lib/ronin/support/encoding/uri/core_ext.rb +1 -1
  202. data/lib/ronin/support/encoding/uri.rb +16 -1
  203. data/lib/ronin/support/encoding/uuencoding/core_ext/string.rb +1 -1
  204. data/lib/ronin/support/encoding/uuencoding/core_ext.rb +1 -1
  205. data/lib/ronin/support/encoding/uuencoding.rb +6 -1
  206. data/lib/ronin/support/encoding/xml/core_ext/integer.rb +1 -1
  207. data/lib/ronin/support/encoding/xml/core_ext/string.rb +1 -1
  208. data/lib/ronin/support/encoding/xml/core_ext.rb +1 -1
  209. data/lib/ronin/support/encoding/xml.rb +10 -1
  210. data/lib/ronin/support/encoding.rb +1 -1
  211. data/lib/ronin/support/home.rb +1 -1
  212. data/lib/ronin/support/mixin.rb +1 -1
  213. data/lib/ronin/support/network/asn/dns_record.rb +1 -1
  214. data/lib/ronin/support/network/asn/list.rb +1 -1
  215. data/lib/ronin/support/network/asn/record.rb +1 -1
  216. data/lib/ronin/support/network/asn/record_set.rb +1 -1
  217. data/lib/ronin/support/network/asn.rb +1 -1
  218. data/lib/ronin/support/network/core_ext.rb +1 -1
  219. data/lib/ronin/support/network/dns/idn.rb +1 -1
  220. data/lib/ronin/support/network/dns/mixin.rb +1 -1
  221. data/lib/ronin/support/network/dns/resolver.rb +1 -1
  222. data/lib/ronin/support/network/dns.rb +1 -1
  223. data/lib/ronin/support/network/domain.rb +1 -1
  224. data/lib/ronin/support/network/email_address.rb +1 -1
  225. data/lib/ronin/support/network/esmtp/mixin.rb +1 -1
  226. data/lib/ronin/support/network/exceptions.rb +1 -1
  227. data/lib/ronin/support/network/ftp/mixin.rb +1 -1
  228. data/lib/ronin/support/network/host.rb +1 -1
  229. data/lib/ronin/support/network/http/cookie.rb +1 -1
  230. data/lib/ronin/support/network/http/core_ext/uri/http.rb +1 -1
  231. data/lib/ronin/support/network/http/core_ext.rb +1 -1
  232. data/lib/ronin/support/network/http/mixin.rb +1 -1
  233. data/lib/ronin/support/network/http/request.rb +1 -1
  234. data/lib/ronin/support/network/http/set_cookie.rb +1 -1
  235. data/lib/ronin/support/network/http/user_agents.rb +1 -1
  236. data/lib/ronin/support/network/http.rb +6 -1
  237. data/lib/ronin/support/network/imap/mixin.rb +1 -1
  238. data/lib/ronin/support/network/ip/mixin.rb +1 -1
  239. data/lib/ronin/support/network/ip.rb +1 -1
  240. data/lib/ronin/support/network/ip_range/cidr.rb +1 -1
  241. data/lib/ronin/support/network/ip_range/glob.rb +1 -1
  242. data/lib/ronin/support/network/ip_range/range.rb +1 -1
  243. data/lib/ronin/support/network/ip_range.rb +1 -1
  244. data/lib/ronin/support/network/mixin.rb +1 -1
  245. data/lib/ronin/support/network/packet.rb +6 -1
  246. data/lib/ronin/support/network/pop3/mixin.rb +1 -1
  247. data/lib/ronin/support/network/proxy.rb +1 -1
  248. data/lib/ronin/support/network/public_suffix/list.rb +1 -1
  249. data/lib/ronin/support/network/public_suffix/suffix.rb +1 -1
  250. data/lib/ronin/support/network/public_suffix/suffix_set.rb +1 -1
  251. data/lib/ronin/support/network/public_suffix.rb +1 -1
  252. data/lib/ronin/support/network/smtp/email.rb +1 -1
  253. data/lib/ronin/support/network/smtp/mixin.rb +1 -1
  254. data/lib/ronin/support/network/smtp.rb +1 -1
  255. data/lib/ronin/support/network/ssl/local_cert.rb +1 -1
  256. data/lib/ronin/support/network/ssl/local_key.rb +1 -1
  257. data/lib/ronin/support/network/ssl/mixin.rb +1 -1
  258. data/lib/ronin/support/network/ssl/openssl.rb +1 -1
  259. data/lib/ronin/support/network/ssl/proxy.rb +1 -1
  260. data/lib/ronin/support/network/ssl.rb +1 -1
  261. data/lib/ronin/support/network/tcp/mixin.rb +1 -1
  262. data/lib/ronin/support/network/tcp/proxy.rb +1 -1
  263. data/lib/ronin/support/network/tcp.rb +1 -1
  264. data/lib/ronin/support/network/telnet/mixin.rb +1 -1
  265. data/lib/ronin/support/network/telnet.rb +1 -1
  266. data/lib/ronin/support/network/tld/list.rb +1 -1
  267. data/lib/ronin/support/network/tld.rb +1 -1
  268. data/lib/ronin/support/network/tls/mixin.rb +1 -1
  269. data/lib/ronin/support/network/tls/proxy.rb +1 -1
  270. data/lib/ronin/support/network/tls.rb +1 -1
  271. data/lib/ronin/support/network/udp/mixin.rb +1 -1
  272. data/lib/ronin/support/network/udp/proxy.rb +1 -1
  273. data/lib/ronin/support/network/udp.rb +1 -1
  274. data/lib/ronin/support/network/unix/mixin.rb +1 -1
  275. data/lib/ronin/support/network.rb +1 -1
  276. data/lib/ronin/support/path.rb +1 -1
  277. data/lib/ronin/support/text/core_ext/regexp.rb +1 -1
  278. data/lib/ronin/support/text/core_ext/string.rb +1 -1
  279. data/lib/ronin/support/text/core_ext.rb +1 -1
  280. data/lib/ronin/support/text/entropy/core_ext/string.rb +1 -1
  281. data/lib/ronin/support/text/entropy/core_ext.rb +1 -1
  282. data/lib/ronin/support/text/entropy.rb +1 -1
  283. data/lib/ronin/support/text/erb/mixin.rb +1 -1
  284. data/lib/ronin/support/text/erb.rb +1 -1
  285. data/lib/ronin/support/text/homoglyph/core_ext/string.rb +1 -1
  286. data/lib/ronin/support/text/homoglyph/core_ext.rb +1 -1
  287. data/lib/ronin/support/text/homoglyph/exceptions.rb +1 -1
  288. data/lib/ronin/support/text/homoglyph/table.rb +1 -1
  289. data/lib/ronin/support/text/homoglyph.rb +10 -1
  290. data/lib/ronin/support/text/mixin.rb +1 -1
  291. data/lib/ronin/support/text/patterns/credentials.rb +1 -1
  292. data/lib/ronin/support/text/patterns/crypto.rb +1 -1
  293. data/lib/ronin/support/text/patterns/file_system.rb +1 -1
  294. data/lib/ronin/support/text/patterns/language.rb +1 -1
  295. data/lib/ronin/support/text/patterns/network/public_suffix.rb +1 -1
  296. data/lib/ronin/support/text/patterns/network.rb +1 -1
  297. data/lib/ronin/support/text/patterns/numeric.rb +1 -1
  298. data/lib/ronin/support/text/patterns/pii.rb +1 -1
  299. data/lib/ronin/support/text/patterns/source_code.rb +1 -1
  300. data/lib/ronin/support/text/patterns.rb +1 -1
  301. data/lib/ronin/support/text/random/mixin.rb +1 -1
  302. data/lib/ronin/support/text/random.rb +1 -1
  303. data/lib/ronin/support/text/typo/core_ext/string.rb +1 -1
  304. data/lib/ronin/support/text/typo/core_ext.rb +1 -1
  305. data/lib/ronin/support/text/typo/exceptions.rb +1 -1
  306. data/lib/ronin/support/text/typo/generator.rb +1 -1
  307. data/lib/ronin/support/text/typo.rb +12 -1
  308. data/lib/ronin/support/text.rb +1 -1
  309. data/lib/ronin/support/version.rb +2 -2
  310. data/lib/ronin/support.rb +1 -1
  311. data/ronin-support.gemspec +2 -2
  312. metadata +13 -10
  313. data/lib/ronin/support/core_ext/resolv.rb +0 -55
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -16,7 +16,7 @@
16
16
  # along with ronin-support. If not, see <https://www.gnu.org/licenses/>.
17
17
  #
18
18
 
19
- require 'ronin/support/binary/hexdump/parser'
19
+ require 'ronin/support/binary/unhexdump/parser'
20
20
 
21
21
  class File
22
22
 
@@ -28,7 +28,7 @@ class File
28
28
  #
29
29
  # @param [Hash{Symbol => Object}] kwargs
30
30
  # Additional keyword arguments for
31
- # {Ronin::Support::Binary::Hexdump::Parser#initialize}.
31
+ # {Ronin::Support::Binary::Unhexdump::Parser#initialize}.
32
32
  #
33
33
  # @option kwargs [:od, :hexdump] :format (:hexdump)
34
34
  # The expected format of the hexdump. Must be either `:od` or
@@ -108,10 +108,22 @@ class File
108
108
  # Unsupported `type:` value, or the `format:` was not `:hexdump` or
109
109
  # `:od`.
110
110
  #
111
+ # @example Unhexdump a hexdump created by GNU `hexdump -C`:
112
+ # File.unhexdump('hexdump.txt')
113
+ # # => "hello\n"
114
+ #
115
+ # @example Unhexdump a hexdump created by GNU `hexdump`:
116
+ # File.unhexdump('hexdump.txt', type: :uint16_le)
117
+ # # => "hello\n"
118
+ #
119
+ # @example Unhexdump a hexdump created by `od`:
120
+ # File.unhexdump('od.txt', format: :od)
121
+ # # => "hello\n"
122
+ #
111
123
  # @api public
112
124
  #
113
125
  def self.unhexdump(path,**kwargs)
114
- parser = Ronin::Support::Binary::Hexdump::Parser.new(**kwargs)
126
+ parser = Ronin::Support::Binary::Unhexdump::Parser.new(**kwargs)
115
127
  parser.unhexdump(new(path))
116
128
  end
117
129
 
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -16,7 +16,7 @@
16
16
  # along with ronin-support. If not, see <https://www.gnu.org/licenses/>.
17
17
  #
18
18
 
19
- require 'ronin/support/binary/hexdump/parser'
19
+ require 'ronin/support/binary/unhexdump/parser'
20
20
 
21
21
  class String
22
22
 
@@ -25,7 +25,7 @@ class String
25
25
  #
26
26
  # @param [Hash{Symbol => Object}] kwargs
27
27
  # Additional keyword arguments for
28
- # {Ronin::Support::Binary::Hexdump::Parser#initialize}.
28
+ # {Ronin::Support::Binary::Unhexdump::Parser#initialize}.
29
29
  #
30
30
  # @option kwargs [:od, :hexdump] :format (:hexdump)
31
31
  # The expected format of the hexdump. Must be either `:od` or
@@ -105,10 +105,22 @@ class String
105
105
  # Unsupported `type:` value, or the `format:` was not `:hexdump` or
106
106
  # `:od`.
107
107
  #
108
+ # @example Unhexdump a hexdump created by GNU `hexdump -C`:
109
+ # hexdump.unhexdump
110
+ # # => "hello\n"
111
+ #
112
+ # @example Unhexdump a hexdump created by GNU `hexdump`:
113
+ # hexdump.unhexdump(type: :uint16_le)
114
+ # # => "hello\n"
115
+ #
116
+ # @example Unhexdump a hexdump created by `od`:
117
+ # od.unhexdump(format: :od)
118
+ # # => "hello\n"
119
+ #
108
120
  # @api public
109
121
  #
110
122
  def unhexdump(**kwargs)
111
- parser = Ronin::Support::Binary::Hexdump::Parser.new(**kwargs)
123
+ parser = Ronin::Support::Binary::Unhexdump::Parser.new(**kwargs)
112
124
  parser.unhexdump(self)
113
125
  end
114
126
 
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -16,5 +16,5 @@
16
16
  # along with ronin-support. If not, see <https://www.gnu.org/licenses/>.
17
17
  #
18
18
 
19
- require 'ronin/support/binary/hexdump/core_ext/string'
20
- require 'ronin/support/binary/hexdump/core_ext/file'
19
+ require 'ronin/support/binary/unhexdump/core_ext/string'
20
+ require 'ronin/support/binary/unhexdump/core_ext/file'
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -23,7 +23,7 @@ require 'chars'
23
23
  module Ronin
24
24
  module Support
25
25
  module Binary
26
- module Hexdump
26
+ module Unhexdump
27
27
  #
28
28
  # @since 0.5.0
29
29
  #
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+ #
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
+ #
5
+ # ronin-support is free software: you can redistribute it and/or modify
6
+ # it under the terms of the GNU Lesser General Public License as published
7
+ # by the Free Software Foundation, either version 3 of the License, or
8
+ # (at your option) any later version.
9
+ #
10
+ # ronin-support is distributed in the hope that it will be useful,
11
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ # GNU Lesser General Public License for more details.
14
+ #
15
+ # You should have received a copy of the GNU Lesser General Public License
16
+ # along with ronin-support. If not, see <https://www.gnu.org/licenses/>.
17
+ #
18
+
19
+ require 'ronin/support/binary/unhexdump/parser'
20
+ require 'ronin/support/binary/unhexdump/core_ext'
21
+
22
+ module Ronin
23
+ module Support
24
+ module Binary
25
+ #
26
+ # Methods for parsing hexdumps back into raw data.
27
+ #
28
+ # ## Core-Ext Methods
29
+ #
30
+ # * {File.unhexdump}
31
+ # * {String#unhexdump}
32
+ #
33
+ module Unhexdump
34
+ end
35
+ end
36
+ end
37
+ end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -23,4 +23,30 @@ require 'ronin/support/binary/array'
23
23
  require 'ronin/support/binary/stack'
24
24
  require 'ronin/support/binary/struct'
25
25
  require 'ronin/support/binary/union'
26
- require 'ronin/support/binary/hexdump'
26
+ require 'ronin/support/binary/unhexdump'
27
+
28
+ module Ronin
29
+ module Support
30
+ #
31
+ # Modules and classes for working with binary data.
32
+ #
33
+ # ## Core-Ext Methods
34
+ #
35
+ # * {::Array#pack}
36
+ # * {::Float#pack}
37
+ # * {::Integer#pack}
38
+ # * {::Integer#to_uint8}
39
+ # * {::Integer#to_uint16}
40
+ # * {::Integer#to_uint32}
41
+ # * {::Integer#to_uint64}
42
+ # * {::Integer#to_int8}
43
+ # * {::Integer#to_int16}
44
+ # * {::Integer#to_int32}
45
+ # * {::Integer#to_int64}
46
+ # * {::String#unpack}
47
+ # * {::String#unpack1}
48
+ #
49
+ module Binary
50
+ end
51
+ end
52
+ end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # Ronin Support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # Ronin Support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -33,7 +33,7 @@ module Ronin
33
33
  #
34
34
  # @since 1.0.0
35
35
  #
36
- class Reader < Zlib::GzipReader
36
+ class Reader < ::Zlib::GzipReader
37
37
 
38
38
  #
39
39
  # Initializes the gzip writer.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -33,7 +33,7 @@ module Ronin
33
33
  #
34
34
  # @since 1.0.0
35
35
  #
36
- class Writer < Zlib::GzipWriter
36
+ class Writer < ::Zlib::GzipWriter
37
37
 
38
38
  #
39
39
  # Initializes the gzip writer.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-support is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Lesser General Public License as published
@@ -21,3 +21,58 @@ begin
21
21
  rescue ::LoadError
22
22
  warn "WARNING: Ruby was not compiled with zlib support"
23
23
  end
24
+
25
+ module Ronin
26
+ module Support
27
+ module Compression
28
+ #
29
+ # Methods for zlib compression.
30
+ #
31
+ # @api public
32
+ #
33
+ # @since 1.0.0
34
+ #
35
+ module Zlib
36
+ include ::Zlib
37
+
38
+ #
39
+ # Zlib inflate a string.
40
+ #
41
+ # @param [String] string
42
+ # The Zlib compressed input.
43
+ #
44
+ # @return [String]
45
+ # The Zlib inflated form of the input.
46
+ #
47
+ # @example
48
+ # Compression::Zlib.inflate("x\x9C\xCBH\xCD\xC9\xC9\a\x00\x06,\x02\x15")
49
+ # # => "hello"
50
+ #
51
+ # @api public
52
+ #
53
+ def self.inflate(string)
54
+ ::Zlib::Inflate.inflate(string)
55
+ end
56
+
57
+ #
58
+ # Zlib deflate a string.
59
+ #
60
+ # @param [String] string
61
+ # The uncompressed input.
62
+ #
63
+ # @return [String]
64
+ # The Zlib deflated form of the input.
65
+ #
66
+ # @example
67
+ # Compression::Zlib.deflate("hello")
68
+ # # => "x\x9C\xCBH\xCD\xC9\xC9\a\x00\x06,\x02\x15"
69
+ #
70
+ # @api public
71
+ #
72
+ def self.deflate(string)
73
+ ::Zlib::Deflate.deflate(string)
74
+ end
75
+ end
76
+ end
77
+ end
78
+ end