polyfile-weave 0.5.5__py3-none-any.whl

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.

Potentially problematic release.


This version of polyfile-weave might be problematic. Click here for more details.

Files changed (585) hide show
  1. polyfile/__init__.py +15 -0
  2. polyfile/__main__.py +394 -0
  3. polyfile/arithmetic.py +27 -0
  4. polyfile/ast.py +114 -0
  5. polyfile/debugger.py +1039 -0
  6. polyfile/expressions.py +346 -0
  7. polyfile/fileutils.py +343 -0
  8. polyfile/html.py +135 -0
  9. polyfile/http/__init__.py +1 -0
  10. polyfile/http/defacto.py +37 -0
  11. polyfile/http/deprecated.py +51 -0
  12. polyfile/http/experimental.py +67 -0
  13. polyfile/http/http_11.py +548 -0
  14. polyfile/http/matcher.py +37 -0
  15. polyfile/http/structured_headers.py +48 -0
  16. polyfile/iterators.py +72 -0
  17. polyfile/jpeg.py +24 -0
  18. polyfile/kaitai/__init__.py +0 -0
  19. polyfile/kaitai/compiler.py +156 -0
  20. polyfile/kaitai/parser.py +312 -0
  21. polyfile/kaitai/parsers/__init__.py +0 -0
  22. polyfile/kaitai/parsers/aix_utmp.py +116 -0
  23. polyfile/kaitai/parsers/allegro_dat.py +367 -0
  24. polyfile/kaitai/parsers/andes_firmware.py +64 -0
  25. polyfile/kaitai/parsers/android_bootldr_asus.py +105 -0
  26. polyfile/kaitai/parsers/android_bootldr_huawei.py +181 -0
  27. polyfile/kaitai/parsers/android_bootldr_qcom.py +217 -0
  28. polyfile/kaitai/parsers/android_dto.py +138 -0
  29. polyfile/kaitai/parsers/android_img.py +319 -0
  30. polyfile/kaitai/parsers/android_nanoapp_header.py +83 -0
  31. polyfile/kaitai/parsers/android_opengl_shaders_cache.py +151 -0
  32. polyfile/kaitai/parsers/android_sparse.py +237 -0
  33. polyfile/kaitai/parsers/android_super.py +401 -0
  34. polyfile/kaitai/parsers/apm_partition_table.py +196 -0
  35. polyfile/kaitai/parsers/apple_single_double.py +180 -0
  36. polyfile/kaitai/parsers/asn1_der.py +235 -0
  37. polyfile/kaitai/parsers/au.py +138 -0
  38. polyfile/kaitai/parsers/avantes_roh60.py +112 -0
  39. polyfile/kaitai/parsers/avi.py +296 -0
  40. polyfile/kaitai/parsers/bcd.py +111 -0
  41. polyfile/kaitai/parsers/bitcoin_transaction.py +210 -0
  42. polyfile/kaitai/parsers/blender_blend.py +334 -0
  43. polyfile/kaitai/parsers/bmp.py +780 -0
  44. polyfile/kaitai/parsers/bson.py +411 -0
  45. polyfile/kaitai/parsers/btrfs_stream.py +318 -0
  46. polyfile/kaitai/parsers/bytes_with_io.py +27 -0
  47. polyfile/kaitai/parsers/chrome_pak.py +194 -0
  48. polyfile/kaitai/parsers/code_6502.py +456 -0
  49. polyfile/kaitai/parsers/compressed_resource.py +217 -0
  50. polyfile/kaitai/parsers/cpio_old_le.py +154 -0
  51. polyfile/kaitai/parsers/cramfs.py +344 -0
  52. polyfile/kaitai/parsers/creative_voice_file.py +342 -0
  53. polyfile/kaitai/parsers/dbf.py +274 -0
  54. polyfile/kaitai/parsers/dcmp_0.py +664 -0
  55. polyfile/kaitai/parsers/dcmp_1.py +422 -0
  56. polyfile/kaitai/parsers/dcmp_2.py +312 -0
  57. polyfile/kaitai/parsers/dcmp_variable_length_integer.py +66 -0
  58. polyfile/kaitai/parsers/dex.py +1086 -0
  59. polyfile/kaitai/parsers/dicom.py +4370 -0
  60. polyfile/kaitai/parsers/dime_message.py +201 -0
  61. polyfile/kaitai/parsers/dns_packet.py +569 -0
  62. polyfile/kaitai/parsers/doom_wad.py +654 -0
  63. polyfile/kaitai/parsers/dos_datetime.py +191 -0
  64. polyfile/kaitai/parsers/dos_mz.py +172 -0
  65. polyfile/kaitai/parsers/ds_store.py +513 -0
  66. polyfile/kaitai/parsers/dtb.py +310 -0
  67. polyfile/kaitai/parsers/dune_2_pak.py +126 -0
  68. polyfile/kaitai/parsers/edid.py +472 -0
  69. polyfile/kaitai/parsers/efivar_signature_list.py +331 -0
  70. polyfile/kaitai/parsers/elf.py +2482 -0
  71. polyfile/kaitai/parsers/ethernet_frame.py +114 -0
  72. polyfile/kaitai/parsers/exif.py +723 -0
  73. polyfile/kaitai/parsers/ext2.py +537 -0
  74. polyfile/kaitai/parsers/fallout2_dat.py +187 -0
  75. polyfile/kaitai/parsers/fallout_dat.py +156 -0
  76. polyfile/kaitai/parsers/fasttracker_xm_module.py +558 -0
  77. polyfile/kaitai/parsers/ftl_dat.py +90 -0
  78. polyfile/kaitai/parsers/genmidi_op2.py +161 -0
  79. polyfile/kaitai/parsers/gettext_mo.py +541 -0
  80. polyfile/kaitai/parsers/gif.py +492 -0
  81. polyfile/kaitai/parsers/gimp_brush.py +244 -0
  82. polyfile/kaitai/parsers/glibc_utmp.py +114 -0
  83. polyfile/kaitai/parsers/gltf_binary.py +132 -0
  84. polyfile/kaitai/parsers/google_protobuf.py +151 -0
  85. polyfile/kaitai/parsers/gpt_partition_table.py +175 -0
  86. polyfile/kaitai/parsers/gran_turismo_vol.py +140 -0
  87. polyfile/kaitai/parsers/grub2_font.py +337 -0
  88. polyfile/kaitai/parsers/gzip.py +232 -0
  89. polyfile/kaitai/parsers/hashcat_restore.py +60 -0
  90. polyfile/kaitai/parsers/hccap.py +111 -0
  91. polyfile/kaitai/parsers/hccapx.py +103 -0
  92. polyfile/kaitai/parsers/heaps_pak.py +177 -0
  93. polyfile/kaitai/parsers/heroes_of_might_and_magic_agg.py +116 -0
  94. polyfile/kaitai/parsers/heroes_of_might_and_magic_bmp.py +34 -0
  95. polyfile/kaitai/parsers/icmp_packet.py +136 -0
  96. polyfile/kaitai/parsers/ico.py +129 -0
  97. polyfile/kaitai/parsers/id3v1_1.py +220 -0
  98. polyfile/kaitai/parsers/id3v2_3.py +324 -0
  99. polyfile/kaitai/parsers/id3v2_4.py +423 -0
  100. polyfile/kaitai/parsers/ines.py +282 -0
  101. polyfile/kaitai/parsers/ipv4_packet.py +158 -0
  102. polyfile/kaitai/parsers/ipv6_packet.py +55 -0
  103. polyfile/kaitai/parsers/iso9660.py +544 -0
  104. polyfile/kaitai/parsers/java_class.py +1113 -0
  105. polyfile/kaitai/parsers/jpeg.py +361 -0
  106. polyfile/kaitai/parsers/luks.py +149 -0
  107. polyfile/kaitai/parsers/lzh.py +165 -0
  108. polyfile/kaitai/parsers/mac_os_resource_snd.py +493 -0
  109. polyfile/kaitai/parsers/mach_o.py +3033 -0
  110. polyfile/kaitai/parsers/mach_o_fat.py +92 -0
  111. polyfile/kaitai/parsers/magicavoxel_vox.py +391 -0
  112. polyfile/kaitai/parsers/manifest.json +1 -0
  113. polyfile/kaitai/parsers/mbr_partition_table.py +119 -0
  114. polyfile/kaitai/parsers/mcap.py +1015 -0
  115. polyfile/kaitai/parsers/microsoft_cfb.py +293 -0
  116. polyfile/kaitai/parsers/microsoft_network_monitor_v2.py +309 -0
  117. polyfile/kaitai/parsers/microsoft_pe.py +765 -0
  118. polyfile/kaitai/parsers/mifare_classic.py +706 -0
  119. polyfile/kaitai/parsers/minecraft_nbt.py +449 -0
  120. polyfile/kaitai/parsers/monomakh_sapr_chg.py +69 -0
  121. polyfile/kaitai/parsers/mozilla_mar.py +239 -0
  122. polyfile/kaitai/parsers/mp4.py +333 -0
  123. polyfile/kaitai/parsers/msgpack.py +467 -0
  124. polyfile/kaitai/parsers/nitf.py +1189 -0
  125. polyfile/kaitai/parsers/nt_mdt_pal.py +155 -0
  126. polyfile/kaitai/parsers/ogg.py +118 -0
  127. polyfile/kaitai/parsers/openpgp_message.py +993 -0
  128. polyfile/kaitai/parsers/packet_ppi.py +515 -0
  129. polyfile/kaitai/parsers/pcap.py +344 -0
  130. polyfile/kaitai/parsers/pcf_font.py +506 -0
  131. polyfile/kaitai/parsers/pcx.py +195 -0
  132. polyfile/kaitai/parsers/pcx_dcx.py +79 -0
  133. polyfile/kaitai/parsers/phar_without_stub.py +399 -0
  134. polyfile/kaitai/parsers/php_serialized_value.py +505 -0
  135. polyfile/kaitai/parsers/png.py +721 -0
  136. polyfile/kaitai/parsers/protocol_body.py +260 -0
  137. polyfile/kaitai/parsers/psx_tim.py +104 -0
  138. polyfile/kaitai/parsers/python_pickle.py +718 -0
  139. polyfile/kaitai/parsers/python_pyc_27.py +510 -0
  140. polyfile/kaitai/parsers/quake_mdl.py +441 -0
  141. polyfile/kaitai/parsers/quake_pak.py +112 -0
  142. polyfile/kaitai/parsers/quicktime_mov.py +634 -0
  143. polyfile/kaitai/parsers/rar.py +265 -0
  144. polyfile/kaitai/parsers/regf.py +569 -0
  145. polyfile/kaitai/parsers/renderware_binary_stream.py +877 -0
  146. polyfile/kaitai/parsers/resource_fork.py +611 -0
  147. polyfile/kaitai/parsers/respack.py +57 -0
  148. polyfile/kaitai/parsers/riff.py +409 -0
  149. polyfile/kaitai/parsers/rpm.py +964 -0
  150. polyfile/kaitai/parsers/rtcp_payload.py +579 -0
  151. polyfile/kaitai/parsers/rtp_packet.py +150 -0
  152. polyfile/kaitai/parsers/rtpdump.py +115 -0
  153. polyfile/kaitai/parsers/ruby_marshal.py +423 -0
  154. polyfile/kaitai/parsers/s3m.py +493 -0
  155. polyfile/kaitai/parsers/saints_row_2_vpp_pc.py +254 -0
  156. polyfile/kaitai/parsers/shapefile_index.py +174 -0
  157. polyfile/kaitai/parsers/shapefile_main.py +893 -0
  158. polyfile/kaitai/parsers/some_ip.py +209 -0
  159. polyfile/kaitai/parsers/some_ip_container.py +37 -0
  160. polyfile/kaitai/parsers/some_ip_sd.py +86 -0
  161. polyfile/kaitai/parsers/some_ip_sd_entries.py +160 -0
  162. polyfile/kaitai/parsers/some_ip_sd_options.py +374 -0
  163. polyfile/kaitai/parsers/specpr.py +404 -0
  164. polyfile/kaitai/parsers/sqlite3.py +472 -0
  165. polyfile/kaitai/parsers/ssh_public_key.py +252 -0
  166. polyfile/kaitai/parsers/standard_midi_file.py +390 -0
  167. polyfile/kaitai/parsers/stl.py +111 -0
  168. polyfile/kaitai/parsers/sudoers_ts.py +201 -0
  169. polyfile/kaitai/parsers/swf.py +406 -0
  170. polyfile/kaitai/parsers/systemd_journal.py +361 -0
  171. polyfile/kaitai/parsers/tcp_segment.py +57 -0
  172. polyfile/kaitai/parsers/tga.py +213 -0
  173. polyfile/kaitai/parsers/tls_client_hello.py +293 -0
  174. polyfile/kaitai/parsers/tr_dos_image.py +322 -0
  175. polyfile/kaitai/parsers/tsm.py +198 -0
  176. polyfile/kaitai/parsers/ttf.py +1847 -0
  177. polyfile/kaitai/parsers/udp_datagram.py +42 -0
  178. polyfile/kaitai/parsers/uefi_te.py +236 -0
  179. polyfile/kaitai/parsers/uimage.py +198 -0
  180. polyfile/kaitai/parsers/utf8_string.py +137 -0
  181. polyfile/kaitai/parsers/vfat.py +410 -0
  182. polyfile/kaitai/parsers/vlq_base128_be.py +104 -0
  183. polyfile/kaitai/parsers/vlq_base128_le.py +129 -0
  184. polyfile/kaitai/parsers/vmware_vmdk.py +167 -0
  185. polyfile/kaitai/parsers/vp8_ivf.py +112 -0
  186. polyfile/kaitai/parsers/warcraft_2_pud.py +423 -0
  187. polyfile/kaitai/parsers/wav.py +1014 -0
  188. polyfile/kaitai/parsers/websocket.py +167 -0
  189. polyfile/kaitai/parsers/windows_evt_log.py +304 -0
  190. polyfile/kaitai/parsers/windows_lnk_file.py +467 -0
  191. polyfile/kaitai/parsers/windows_minidump.py +575 -0
  192. polyfile/kaitai/parsers/windows_resource_file.py +243 -0
  193. polyfile/kaitai/parsers/windows_shell_items.py +190 -0
  194. polyfile/kaitai/parsers/windows_systemtime.py +52 -0
  195. polyfile/kaitai/parsers/wmf.py +502 -0
  196. polyfile/kaitai/parsers/xar.py +181 -0
  197. polyfile/kaitai/parsers/xwd.py +189 -0
  198. polyfile/kaitai/parsers/zip.py +685 -0
  199. polyfile/kaitai/parsers/zisofs.py +158 -0
  200. polyfile/kaitai/parsers/zx_spectrum_tap.py +184 -0
  201. polyfile/kaitaimatcher.py +113 -0
  202. polyfile/languagematcher.py +217 -0
  203. polyfile/logger.py +135 -0
  204. polyfile/magic.py +2983 -0
  205. polyfile/magic_defs/COPYING +29 -0
  206. polyfile/magic_defs/__init__.py +0 -0
  207. polyfile/magic_defs/acorn +102 -0
  208. polyfile/magic_defs/adi +13 -0
  209. polyfile/magic_defs/adventure +122 -0
  210. polyfile/magic_defs/aes +29 -0
  211. polyfile/magic_defs/algol68 +35 -0
  212. polyfile/magic_defs/allegro +9 -0
  213. polyfile/magic_defs/alliant +18 -0
  214. polyfile/magic_defs/alpha +32 -0
  215. polyfile/magic_defs/amanda +12 -0
  216. polyfile/magic_defs/amigaos +218 -0
  217. polyfile/magic_defs/android +259 -0
  218. polyfile/magic_defs/animation +1197 -0
  219. polyfile/magic_defs/aout +46 -0
  220. polyfile/magic_defs/apache +28 -0
  221. polyfile/magic_defs/apl +7 -0
  222. polyfile/magic_defs/apple +773 -0
  223. polyfile/magic_defs/application +7 -0
  224. polyfile/magic_defs/applix +13 -0
  225. polyfile/magic_defs/apt +52 -0
  226. polyfile/magic_defs/archive +2586 -0
  227. polyfile/magic_defs/aria +38 -0
  228. polyfile/magic_defs/arm +50 -0
  229. polyfile/magic_defs/asf +132 -0
  230. polyfile/magic_defs/assembler +18 -0
  231. polyfile/magic_defs/asterix +18 -0
  232. polyfile/magic_defs/att3b +41 -0
  233. polyfile/magic_defs/audio +1291 -0
  234. polyfile/magic_defs/avm +33 -0
  235. polyfile/magic_defs/basis +18 -0
  236. polyfile/magic_defs/beetle +7 -0
  237. polyfile/magic_defs/ber +65 -0
  238. polyfile/magic_defs/bflt +14 -0
  239. polyfile/magic_defs/bhl +10 -0
  240. polyfile/magic_defs/bioinformatics +178 -0
  241. polyfile/magic_defs/biosig +154 -0
  242. polyfile/magic_defs/blackberry +8 -0
  243. polyfile/magic_defs/blcr +25 -0
  244. polyfile/magic_defs/blender +50 -0
  245. polyfile/magic_defs/blit +24 -0
  246. polyfile/magic_defs/bm +10 -0
  247. polyfile/magic_defs/bout +11 -0
  248. polyfile/magic_defs/bsdi +33 -0
  249. polyfile/magic_defs/bsi +10 -0
  250. polyfile/magic_defs/btsnoop +13 -0
  251. polyfile/magic_defs/burp +7 -0
  252. polyfile/magic_defs/bytecode +41 -0
  253. polyfile/magic_defs/c-lang +110 -0
  254. polyfile/magic_defs/c64 +531 -0
  255. polyfile/magic_defs/cad +437 -0
  256. polyfile/magic_defs/cafebabe +107 -0
  257. polyfile/magic_defs/cbor +21 -0
  258. polyfile/magic_defs/ccf +14 -0
  259. polyfile/magic_defs/cddb +12 -0
  260. polyfile/magic_defs/chord +15 -0
  261. polyfile/magic_defs/cisco +12 -0
  262. polyfile/magic_defs/citrus +12 -0
  263. polyfile/magic_defs/clarion +27 -0
  264. polyfile/magic_defs/claris +48 -0
  265. polyfile/magic_defs/clipper +65 -0
  266. polyfile/magic_defs/clojure +30 -0
  267. polyfile/magic_defs/coff +98 -0
  268. polyfile/magic_defs/commands +201 -0
  269. polyfile/magic_defs/communications +22 -0
  270. polyfile/magic_defs/compress +461 -0
  271. polyfile/magic_defs/console +1213 -0
  272. polyfile/magic_defs/convex +69 -0
  273. polyfile/magic_defs/coverage +91 -0
  274. polyfile/magic_defs/cracklib +14 -0
  275. polyfile/magic_defs/crypto +31 -0
  276. polyfile/magic_defs/csv +8 -0
  277. polyfile/magic_defs/ctags +6 -0
  278. polyfile/magic_defs/ctf +23 -0
  279. polyfile/magic_defs/cubemap +8 -0
  280. polyfile/magic_defs/cups +56 -0
  281. polyfile/magic_defs/dact +11 -0
  282. polyfile/magic_defs/database +886 -0
  283. polyfile/magic_defs/dataone +47 -0
  284. polyfile/magic_defs/dbpf +15 -0
  285. polyfile/magic_defs/der +146 -0
  286. polyfile/magic_defs/diamond +12 -0
  287. polyfile/magic_defs/dif +33 -0
  288. polyfile/magic_defs/diff +41 -0
  289. polyfile/magic_defs/digital +59 -0
  290. polyfile/magic_defs/dolby +69 -0
  291. polyfile/magic_defs/dsf +25 -0
  292. polyfile/magic_defs/dump +96 -0
  293. polyfile/magic_defs/dwarfs +45 -0
  294. polyfile/magic_defs/dyadic +61 -0
  295. polyfile/magic_defs/ebml +8 -0
  296. polyfile/magic_defs/edid +11 -0
  297. polyfile/magic_defs/editors +43 -0
  298. polyfile/magic_defs/efi +15 -0
  299. polyfile/magic_defs/elf +379 -0
  300. polyfile/magic_defs/encore +22 -0
  301. polyfile/magic_defs/epoc +62 -0
  302. polyfile/magic_defs/erlang +21 -0
  303. polyfile/magic_defs/espressif +57 -0
  304. polyfile/magic_defs/esri +28 -0
  305. polyfile/magic_defs/etf +33 -0
  306. polyfile/magic_defs/fcs +9 -0
  307. polyfile/magic_defs/filesystems +2694 -0
  308. polyfile/magic_defs/finger +16 -0
  309. polyfile/magic_defs/firmware +133 -0
  310. polyfile/magic_defs/flash +62 -0
  311. polyfile/magic_defs/flif +36 -0
  312. polyfile/magic_defs/fonts +449 -0
  313. polyfile/magic_defs/forth +82 -0
  314. polyfile/magic_defs/fortran +9 -0
  315. polyfile/magic_defs/frame +62 -0
  316. polyfile/magic_defs/freebsd +164 -0
  317. polyfile/magic_defs/fsav +128 -0
  318. polyfile/magic_defs/fusecompress +12 -0
  319. polyfile/magic_defs/games +696 -0
  320. polyfile/magic_defs/gcc +17 -0
  321. polyfile/magic_defs/gconv +10 -0
  322. polyfile/magic_defs/gentoo +85 -0
  323. polyfile/magic_defs/geo +166 -0
  324. polyfile/magic_defs/geos +20 -0
  325. polyfile/magic_defs/gimp +77 -0
  326. polyfile/magic_defs/git +13 -0
  327. polyfile/magic_defs/glibc +21 -0
  328. polyfile/magic_defs/gnome +59 -0
  329. polyfile/magic_defs/gnu +173 -0
  330. polyfile/magic_defs/gnumeric +8 -0
  331. polyfile/magic_defs/gpt +240 -0
  332. polyfile/magic_defs/gpu +28 -0
  333. polyfile/magic_defs/grace +21 -0
  334. polyfile/magic_defs/graphviz +12 -0
  335. polyfile/magic_defs/gringotts +48 -0
  336. polyfile/magic_defs/guile +13 -0
  337. polyfile/magic_defs/hardware +12 -0
  338. polyfile/magic_defs/hitachi-sh +30 -0
  339. polyfile/magic_defs/hp +433 -0
  340. polyfile/magic_defs/human68k +26 -0
  341. polyfile/magic_defs/ibm370 +52 -0
  342. polyfile/magic_defs/ibm6000 +35 -0
  343. polyfile/magic_defs/icc +214 -0
  344. polyfile/magic_defs/iff +80 -0
  345. polyfile/magic_defs/images +4210 -0
  346. polyfile/magic_defs/inform +9 -0
  347. polyfile/magic_defs/intel +310 -0
  348. polyfile/magic_defs/interleaf +9 -0
  349. polyfile/magic_defs/island +10 -0
  350. polyfile/magic_defs/ispell +63 -0
  351. polyfile/magic_defs/isz +15 -0
  352. polyfile/magic_defs/java +52 -0
  353. polyfile/magic_defs/javascript +171 -0
  354. polyfile/magic_defs/jpeg +252 -0
  355. polyfile/magic_defs/json +8 -0
  356. polyfile/magic_defs/karma +9 -0
  357. polyfile/magic_defs/kde +11 -0
  358. polyfile/magic_defs/keepass +20 -0
  359. polyfile/magic_defs/kerberos +45 -0
  360. polyfile/magic_defs/kicad +85 -0
  361. polyfile/magic_defs/kml +34 -0
  362. polyfile/magic_defs/lammps +64 -0
  363. polyfile/magic_defs/lecter +6 -0
  364. polyfile/magic_defs/lex +12 -0
  365. polyfile/magic_defs/lif +50 -0
  366. polyfile/magic_defs/linux +557 -0
  367. polyfile/magic_defs/lisp +78 -0
  368. polyfile/magic_defs/llvm +22 -0
  369. polyfile/magic_defs/locoscript +12 -0
  370. polyfile/magic_defs/lua +31 -0
  371. polyfile/magic_defs/luks +126 -0
  372. polyfile/magic_defs/m4 +11 -0
  373. polyfile/magic_defs/mach +303 -0
  374. polyfile/magic_defs/macintosh +505 -0
  375. polyfile/magic_defs/macos +7 -0
  376. polyfile/magic_defs/magic +10 -0
  377. polyfile/magic_defs/magic.mgc +0 -0
  378. polyfile/magic_defs/mail.news +132 -0
  379. polyfile/magic_defs/make +21 -0
  380. polyfile/magic_defs/map +413 -0
  381. polyfile/magic_defs/maple +109 -0
  382. polyfile/magic_defs/marc21 +30 -0
  383. polyfile/magic_defs/mathcad +8 -0
  384. polyfile/magic_defs/mathematica +188 -0
  385. polyfile/magic_defs/matroska +17 -0
  386. polyfile/magic_defs/mcrypt +52 -0
  387. polyfile/magic_defs/measure +44 -0
  388. polyfile/magic_defs/mercurial +13 -0
  389. polyfile/magic_defs/metastore +8 -0
  390. polyfile/magic_defs/meteorological +53 -0
  391. polyfile/magic_defs/microfocus +21 -0
  392. polyfile/magic_defs/mime +9 -0
  393. polyfile/magic_defs/mips +120 -0
  394. polyfile/magic_defs/mirage +8 -0
  395. polyfile/magic_defs/misctools +140 -0
  396. polyfile/magic_defs/mkid +11 -0
  397. polyfile/magic_defs/mlssa +8 -0
  398. polyfile/magic_defs/mmdf +6 -0
  399. polyfile/magic_defs/modem +92 -0
  400. polyfile/magic_defs/modulefile +9 -0
  401. polyfile/magic_defs/motorola +71 -0
  402. polyfile/magic_defs/mozilla +37 -0
  403. polyfile/magic_defs/msdos +2304 -0
  404. polyfile/magic_defs/msooxml +68 -0
  405. polyfile/magic_defs/msvc +222 -0
  406. polyfile/magic_defs/msx +309 -0
  407. polyfile/magic_defs/mup +24 -0
  408. polyfile/magic_defs/music +17 -0
  409. polyfile/magic_defs/nasa +7 -0
  410. polyfile/magic_defs/natinst +24 -0
  411. polyfile/magic_defs/ncr +49 -0
  412. polyfile/magic_defs/neko +12 -0
  413. polyfile/magic_defs/netbsd +251 -0
  414. polyfile/magic_defs/netscape +26 -0
  415. polyfile/magic_defs/netware +11 -0
  416. polyfile/magic_defs/news +13 -0
  417. polyfile/magic_defs/nifty +202 -0
  418. polyfile/magic_defs/nim-lang +29 -0
  419. polyfile/magic_defs/nitpicker +14 -0
  420. polyfile/magic_defs/numpy +9 -0
  421. polyfile/magic_defs/oasis +12 -0
  422. polyfile/magic_defs/ocaml +14 -0
  423. polyfile/magic_defs/octave +6 -0
  424. polyfile/magic_defs/ole2compounddocs +760 -0
  425. polyfile/magic_defs/olf +98 -0
  426. polyfile/magic_defs/openfst +17 -0
  427. polyfile/magic_defs/opentimestamps +16 -0
  428. polyfile/magic_defs/oric +16 -0
  429. polyfile/magic_defs/os2 +186 -0
  430. polyfile/magic_defs/os400 +39 -0
  431. polyfile/magic_defs/os9 +80 -0
  432. polyfile/magic_defs/osf1 +10 -0
  433. polyfile/magic_defs/palm +156 -0
  434. polyfile/magic_defs/parix +13 -0
  435. polyfile/magic_defs/parrot +22 -0
  436. polyfile/magic_defs/pascal +39 -0
  437. polyfile/magic_defs/pbf +11 -0
  438. polyfile/magic_defs/pbm +8 -0
  439. polyfile/magic_defs/pc88 +24 -0
  440. polyfile/magic_defs/pc98 +77 -0
  441. polyfile/magic_defs/pci_ids +116 -0
  442. polyfile/magic_defs/pcjr +8 -0
  443. polyfile/magic_defs/pdf +51 -0
  444. polyfile/magic_defs/pdp +42 -0
  445. polyfile/magic_defs/perl +100 -0
  446. polyfile/magic_defs/pgf +52 -0
  447. polyfile/magic_defs/pgp +581 -0
  448. polyfile/magic_defs/pgp-binary-keys +388 -0
  449. polyfile/magic_defs/pkgadd +7 -0
  450. polyfile/magic_defs/plan9 +25 -0
  451. polyfile/magic_defs/playdate +57 -0
  452. polyfile/magic_defs/plus5 +18 -0
  453. polyfile/magic_defs/pmem +46 -0
  454. polyfile/magic_defs/polyfile_zip +5 -0
  455. polyfile/magic_defs/polyml +23 -0
  456. polyfile/magic_defs/printer +269 -0
  457. polyfile/magic_defs/project +10 -0
  458. polyfile/magic_defs/psdbms +14 -0
  459. polyfile/magic_defs/psl +14 -0
  460. polyfile/magic_defs/pulsar +13 -0
  461. polyfile/magic_defs/puzzle +17 -0
  462. polyfile/magic_defs/pwsafe +14 -0
  463. polyfile/magic_defs/pyramid +12 -0
  464. polyfile/magic_defs/python +305 -0
  465. polyfile/magic_defs/qt +30 -0
  466. polyfile/magic_defs/revision +66 -0
  467. polyfile/magic_defs/riff +840 -0
  468. polyfile/magic_defs/rinex +44 -0
  469. polyfile/magic_defs/ringdove +45 -0
  470. polyfile/magic_defs/rpi +52 -0
  471. polyfile/magic_defs/rpm +45 -0
  472. polyfile/magic_defs/rpmsg +7 -0
  473. polyfile/magic_defs/rst +11 -0
  474. polyfile/magic_defs/rtf +94 -0
  475. polyfile/magic_defs/ruby +55 -0
  476. polyfile/magic_defs/rust +21 -0
  477. polyfile/magic_defs/sc +7 -0
  478. polyfile/magic_defs/sccs +24 -0
  479. polyfile/magic_defs/scientific +144 -0
  480. polyfile/magic_defs/securitycerts +6 -0
  481. polyfile/magic_defs/selinux +24 -0
  482. polyfile/magic_defs/sendmail +37 -0
  483. polyfile/magic_defs/sequent +42 -0
  484. polyfile/magic_defs/sereal +35 -0
  485. polyfile/magic_defs/sgi +144 -0
  486. polyfile/magic_defs/sgml +161 -0
  487. polyfile/magic_defs/sharc +23 -0
  488. polyfile/magic_defs/sinclair +40 -0
  489. polyfile/magic_defs/sisu +18 -0
  490. polyfile/magic_defs/sketch +6 -0
  491. polyfile/magic_defs/smalltalk +25 -0
  492. polyfile/magic_defs/smile +34 -0
  493. polyfile/magic_defs/sniffer +482 -0
  494. polyfile/magic_defs/softquad +40 -0
  495. polyfile/magic_defs/sosi +40 -0
  496. polyfile/magic_defs/spec +21 -0
  497. polyfile/magic_defs/spectrum +184 -0
  498. polyfile/magic_defs/sql +288 -0
  499. polyfile/magic_defs/ssh +39 -0
  500. polyfile/magic_defs/ssl +20 -0
  501. polyfile/magic_defs/statistics +45 -0
  502. polyfile/magic_defs/subtitle +38 -0
  503. polyfile/magic_defs/sun +141 -0
  504. polyfile/magic_defs/svf +5 -0
  505. polyfile/magic_defs/sylk +36 -0
  506. polyfile/magic_defs/symbos +42 -0
  507. polyfile/magic_defs/sysex +429 -0
  508. polyfile/magic_defs/tcl +29 -0
  509. polyfile/magic_defs/teapot +6 -0
  510. polyfile/magic_defs/terminfo +63 -0
  511. polyfile/magic_defs/tex +141 -0
  512. polyfile/magic_defs/tgif +7 -0
  513. polyfile/magic_defs/ti-8x +239 -0
  514. polyfile/magic_defs/timezone +42 -0
  515. polyfile/magic_defs/tplink +95 -0
  516. polyfile/magic_defs/troff +38 -0
  517. polyfile/magic_defs/tuxedo +8 -0
  518. polyfile/magic_defs/typeset +8 -0
  519. polyfile/magic_defs/uf2 +72 -0
  520. polyfile/magic_defs/unicode +15 -0
  521. polyfile/magic_defs/unisig +12 -0
  522. polyfile/magic_defs/unknown +34 -0
  523. polyfile/magic_defs/usd +21 -0
  524. polyfile/magic_defs/uterus +16 -0
  525. polyfile/magic_defs/uuencode +28 -0
  526. polyfile/magic_defs/vacuum-cleaner +54 -0
  527. polyfile/magic_defs/varied.out +46 -0
  528. polyfile/magic_defs/varied.script +21 -0
  529. polyfile/magic_defs/vax +32 -0
  530. polyfile/magic_defs/vicar +17 -0
  531. polyfile/magic_defs/virtual +307 -0
  532. polyfile/magic_defs/virtutech +12 -0
  533. polyfile/magic_defs/visx +32 -0
  534. polyfile/magic_defs/vms +30 -0
  535. polyfile/magic_defs/vmware +6 -0
  536. polyfile/magic_defs/vorbis +155 -0
  537. polyfile/magic_defs/vxl +14 -0
  538. polyfile/magic_defs/warc +16 -0
  539. polyfile/magic_defs/weak +16 -0
  540. polyfile/magic_defs/web +18 -0
  541. polyfile/magic_defs/webassembly +17 -0
  542. polyfile/magic_defs/windows +1811 -0
  543. polyfile/magic_defs/wireless +7 -0
  544. polyfile/magic_defs/wordprocessors +630 -0
  545. polyfile/magic_defs/wsdl +23 -0
  546. polyfile/magic_defs/x68000 +25 -0
  547. polyfile/magic_defs/xdelta +13 -0
  548. polyfile/magic_defs/xenix +106 -0
  549. polyfile/magic_defs/xilinx +58 -0
  550. polyfile/magic_defs/xo65 +37 -0
  551. polyfile/magic_defs/xwindows +43 -0
  552. polyfile/magic_defs/yara +17 -0
  553. polyfile/magic_defs/zfs +96 -0
  554. polyfile/magic_defs/zilog +12 -0
  555. polyfile/magic_defs/zip +126 -0
  556. polyfile/magic_defs/zyxel +17 -0
  557. polyfile/nes.py +144 -0
  558. polyfile/nitf.py +15 -0
  559. polyfile/pdf.py +1264 -0
  560. polyfile/pickles.py +45 -0
  561. polyfile/polyfile.py +409 -0
  562. polyfile/profiling.py +115 -0
  563. polyfile/repl.py +624 -0
  564. polyfile/search.py +310 -0
  565. polyfile/serialization.py +323 -0
  566. polyfile/structmatcher.py +46 -0
  567. polyfile/structs.py +281 -0
  568. polyfile/templates/download.js +162 -0
  569. polyfile/templates/hexdump.css +268 -0
  570. polyfile/templates/hexdump.js +756 -0
  571. polyfile/templates/jquery-3.4.1.min.js +2 -0
  572. polyfile/templates/template.html +119 -0
  573. polyfile/wildcards.py +62 -0
  574. polyfile/zipmatcher.py +183 -0
  575. polyfile_weave-0.5.5.dist-info/METADATA +173 -0
  576. polyfile_weave-0.5.5.dist-info/RECORD +585 -0
  577. polyfile_weave-0.5.5.dist-info/WHEEL +5 -0
  578. polyfile_weave-0.5.5.dist-info/entry_points.txt +2 -0
  579. polyfile_weave-0.5.5.dist-info/licenses/LICENSE +202 -0
  580. polyfile_weave-0.5.5.dist-info/top_level.txt +2 -0
  581. polymerge/__init__.py +1 -0
  582. polymerge/__main__.py +296 -0
  583. polymerge/cfg.py +127 -0
  584. polymerge/polymerge.py +227 -0
  585. polymerge/polytracker.py +190 -0
@@ -0,0 +1,581 @@
1
+
2
+ #------------------------------------------------------------------------------
3
+ # $File: pgp,v 1.25 2021/04/26 15:56:00 christos Exp $
4
+ # pgp: file(1) magic for Pretty Good Privacy
5
+
6
+ # Handling of binary PGP keys is in pgp-binary-keys.
7
+ # see https://lists.gnupg.org/pipermail/gnupg-devel/1999-September/016052.html
8
+ #
9
+ 0 beshort 0xa600 PGP encrypted data
10
+ #!:mime application/pgp-encrypted
11
+ #0 string -----BEGIN\040PGP text/PGP armored data
12
+ !:mime text/PGP # encoding: armored data
13
+ #>15 string PUBLIC\040KEY\040BLOCK- public key block
14
+ #>15 string MESSAGE- message
15
+ #>15 string SIGNED\040MESSAGE- signed message
16
+ #>15 string PGP\040SIGNATURE- signature
17
+
18
+ # Update: Joerg Jenderek
19
+ # URL: http://en.wikipedia.org/wiki/Pretty_Good_Privacy
20
+ # Reference: https://reposcope.com/mimetype/application/pgp-keys
21
+ 2 string ---BEGIN\040PGP\040PRIVATE\040KEY\040BLOCK- PGP private key block
22
+ #!:mime text/PGP
23
+ !:mime application/pgp-keys
24
+ !:ext asc
25
+ 2 string ---BEGIN\040PGP\040PUBLIC\040KEY\040BLOCK- PGP public key block
26
+ !:mime application/pgp-keys
27
+ !:ext asc
28
+ >10 search/100 \n\n
29
+ >>&0 use pgp
30
+ 0 string -----BEGIN\040PGP\040MESSAGE- PGP message
31
+ # https://reposcope.com/mimetype/application/pgp-encrypted
32
+ #!:mime application/pgp
33
+ !:mime application/pgp-encrypted
34
+ !:ext asc
35
+ #!:ext asc/pgp/gpg
36
+ >10 search/100 \n\n
37
+ >>&0 use pgp
38
+ # Reference: https://www.gnupg.org/gph/en/manual/x135.html
39
+ 0 string -----BEGIN\040PGP\040SIGNED\040MESSAGE- PGP signed message
40
+ #!:mime text/plain
41
+ !:mime text/PGP
42
+ #!:mime application/pgp
43
+ !:ext asc
44
+ 0 string -----BEGIN\040PGP\040SIGNATURE- PGP signature
45
+ # https://reposcope.com/mimetype/application/pgp-signature
46
+ !:mime application/pgp-signature
47
+ !:ext asc
48
+ >10 search/100 \n\n
49
+ >>&0 use pgp
50
+
51
+ # Decode the type of the packet based on it's base64 encoding.
52
+ # Idea from Mark Martinec
53
+ # The specification is in RFC 4880, section 4.2 and 4.3:
54
+ # https://tools.ietf.org/html/rfc4880#section-4.2
55
+
56
+ 0 name pgp
57
+ >0 byte 0x67 Reserved (old)
58
+ >0 byte 0x68 Public-Key Encrypted Session Key (old)
59
+ >0 byte 0x69 Signature (old)
60
+ >0 byte 0x6a Symmetric-Key Encrypted Session Key (old)
61
+ >0 byte 0x6b One-Pass Signature (old)
62
+ >0 byte 0x6c Secret-Key (old)
63
+ >0 byte 0x6d Public-Key (old)
64
+ >0 byte 0x6e Secret-Subkey (old)
65
+ >0 byte 0x6f Compressed Data (old)
66
+ >0 byte 0x70 Symmetrically Encrypted Data (old)
67
+ >0 byte 0x71 Marker (old)
68
+ >0 byte 0x72 Literal Data (old)
69
+ >0 byte 0x73 Trust (old)
70
+ >0 byte 0x74 User ID (old)
71
+ >0 byte 0x75 Public-Subkey (old)
72
+ >0 byte 0x76 Unused (old)
73
+ >0 byte 0x77
74
+ >>1 byte&0xc0 0x00 Reserved
75
+ >>1 byte&0xc0 0x40 Public-Key Encrypted Session Key
76
+ >>1 byte&0xc0 0x80 Signature
77
+ >>1 byte&0xc0 0xc0 Symmetric-Key Encrypted Session Key
78
+ >0 byte 0x78
79
+ >>1 byte&0xc0 0x00 One-Pass Signature
80
+ >>1 byte&0xc0 0x40 Secret-Key
81
+ >>1 byte&0xc0 0x80 Public-Key
82
+ >>1 byte&0xc0 0xc0 Secret-Subkey
83
+ >0 byte 0x79
84
+ >>1 byte&0xc0 0x00 Compressed Data
85
+ >>1 byte&0xc0 0x40 Symmetrically Encrypted Data
86
+ >>1 byte&0xc0 0x80 Marker
87
+ >>1 byte&0xc0 0xc0 Literal Data
88
+ >0 byte 0x7a
89
+ >>1 byte&0xc0 0x00 Trust
90
+ >>1 byte&0xc0 0x40 User ID
91
+ >>1 byte&0xc0 0x80 Public-Subkey
92
+ >>1 byte&0xc0 0xc0 Unused [z%x]
93
+ >0 byte 0x30
94
+ >>1 byte&0xc0 0x00 Unused [0%x]
95
+ >>1 byte&0xc0 0x40 User Attribute
96
+ >>1 byte&0xc0 0x80 Sym. Encrypted and Integrity Protected Data
97
+ >>1 byte&0xc0 0xc0 Modification Detection Code
98
+
99
+ # magic signatures to detect PGP crypto material (from stef)
100
+ # detects and extracts metadata from:
101
+ # - symmetric encrypted packet header
102
+ # - RSA (e=65537) secret (sub-)keys
103
+
104
+ # 1024b RSA encrypted data
105
+
106
+ 0 string \x84\x8c\x03 PGP RSA encrypted session key -
107
+ >3 belong x keyid: %08X
108
+ >7 belong x %08X
109
+ >11 byte 0x01 RSA (Encrypt or Sign) 1024b
110
+ >11 byte 0x02 RSA Encrypt-Only 1024b
111
+ >12 string \x04\x00
112
+ >12 string \x03\xff
113
+ >12 string \x03\xfe
114
+ >12 string \x03\xfd
115
+ >12 string \x03\xfc
116
+ >12 string \x03\xfb
117
+ >12 string \x03\xfa
118
+ >12 string \x03\xf9
119
+ >142 byte 0xd2 .
120
+
121
+ # 2048b RSA encrypted data
122
+
123
+ 0 string \x85\x01\x0c\x03 PGP RSA encrypted session key -
124
+ >4 belong x keyid: %08X
125
+ >8 belong x %08X
126
+ >12 byte 0x01 RSA (Encrypt or Sign) 2048b
127
+ >12 byte 0x02 RSA Encrypt-Only 2048b
128
+ >13 string \x08\x00
129
+ >13 string \x07\xff
130
+ >13 string \x07\xfe
131
+ >13 string \x07\xfd
132
+ >13 string \x07\xfc
133
+ >13 string \x07\xfb
134
+ >13 string \x07\xfa
135
+ >13 string \x07\xf9
136
+ >271 byte 0xd2 .
137
+
138
+ # 3072b RSA encrypted data
139
+
140
+ 0 string \x85\x01\x8c\x03 PGP RSA encrypted session key -
141
+ >4 belong x keyid: %08X
142
+ >8 belong x %08X
143
+ >12 byte 0x01 RSA (Encrypt or Sign) 3072b
144
+ >12 byte 0x02 RSA Encrypt-Only 3072b
145
+ >13 string \x0c\x00
146
+ >13 string \x0b\xff
147
+ >13 string \x0b\xfe
148
+ >13 string \x0b\xfd
149
+ >13 string \x0b\xfc
150
+ >13 string \x0b\xfb
151
+ >13 string \x0b\xfa
152
+ >13 string \x0b\xf9
153
+ >399 byte 0xd2 .
154
+
155
+ # 4096b RSA encrypted data
156
+
157
+ 0 string \x85\x02\x0c\x03 PGP RSA encrypted session key -
158
+ >4 belong x keyid: %08X
159
+ >8 belong x %08X
160
+ >12 byte 0x01 RSA (Encrypt or Sign) 4096b
161
+ >12 byte 0x02 RSA Encrypt-Only 4096b
162
+ >13 string \x10\x00
163
+ >13 string \x0f\xff
164
+ >13 string \x0f\xfe
165
+ >13 string \x0f\xfd
166
+ >13 string \x0f\xfc
167
+ >13 string \x0f\xfb
168
+ >13 string \x0f\xfa
169
+ >13 string \x0f\xf9
170
+ >527 byte 0xd2 .
171
+
172
+ # 8192b RSA encrypted data
173
+
174
+ 0 string \x85\x04\x0c\x03 PGP RSA encrypted session key -
175
+ >4 belong x keyid: %08X
176
+ >8 belong x %08X
177
+ >12 byte 0x01 RSA (Encrypt or Sign) 8192b
178
+ >12 byte 0x02 RSA Encrypt-Only 8192b
179
+ >13 string \x20\x00
180
+ >13 string \x1f\xff
181
+ >13 string \x1f\xfe
182
+ >13 string \x1f\xfd
183
+ >13 string \x1f\xfc
184
+ >13 string \x1f\xfb
185
+ >13 string \x1f\xfa
186
+ >13 string \x1f\xf9
187
+ >1039 byte 0xd2 .
188
+
189
+ # 1024b Elgamal encrypted data
190
+
191
+ 0 string \x85\x01\x0e\x03 PGP Elgamal encrypted session key -
192
+ >4 belong x keyid: %08X
193
+ >8 belong x %08X
194
+ >12 byte 0x10 Elgamal Encrypt-Only 1024b.
195
+ >13 string \x04\x00
196
+ >13 string \x03\xff
197
+ >13 string \x03\xfe
198
+ >13 string \x03\xfd
199
+ >13 string \x03\xfc
200
+ >13 string \x03\xfb
201
+ >13 string \x03\xfa
202
+ >13 string \x03\xf9
203
+
204
+ # 2048b Elgamal encrypted data
205
+
206
+ 0 string \x85\x02\x0e\x03 PGP Elgamal encrypted session key -
207
+ >4 belong x keyid: %08X
208
+ >8 belong x %08X
209
+ >12 byte 0x10 Elgamal Encrypt-Only 2048b.
210
+ >13 string \x08\x00
211
+ >13 string \x07\xff
212
+ >13 string \x07\xfe
213
+ >13 string \x07\xfd
214
+ >13 string \x07\xfc
215
+ >13 string \x07\xfb
216
+ >13 string \x07\xfa
217
+ >13 string \x07\xf9
218
+
219
+ # 3072b Elgamal encrypted data
220
+
221
+ 0 string \x85\x03\x0e\x03 PGP Elgamal encrypted session key -
222
+ >4 belong x keyid: %08X
223
+ >8 belong x %08X
224
+ >12 byte 0x10 Elgamal Encrypt-Only 3072b.
225
+ >13 string \x0c\x00
226
+ >13 string \x0b\xff
227
+ >13 string \x0b\xfe
228
+ >13 string \x0b\xfd
229
+ >13 string \x0b\xfc
230
+ >13 string \x0b\xfb
231
+ >13 string \x0b\xfa
232
+ >13 string \x0b\xf9
233
+
234
+ # crypto algo mapper
235
+
236
+ 0 name crypto
237
+ >0 byte 0x00 Plaintext or unencrypted data
238
+ >0 byte 0x01 IDEA
239
+ >0 byte 0x02 TripleDES
240
+ >0 byte 0x03 CAST5 (128 bit key)
241
+ >0 byte 0x04 Blowfish (128 bit key, 16 rounds)
242
+ >0 byte 0x07 AES with 128-bit key
243
+ >0 byte 0x08 AES with 192-bit key
244
+ >0 byte 0x09 AES with 256-bit key
245
+ >0 byte 0x0a Twofish with 256-bit key
246
+
247
+ # hash algo mapper
248
+
249
+ 0 name hash
250
+ >0 byte 0x01 MD5
251
+ >0 byte 0x02 SHA-1
252
+ >0 byte 0x03 RIPE-MD/160
253
+ >0 byte 0x08 SHA256
254
+ >0 byte 0x09 SHA384
255
+ >0 byte 0x0a SHA512
256
+ >0 byte 0x0b SHA224
257
+
258
+ # display public key algorithms as human readable text
259
+ 0 name key_algo
260
+ >0 byte 0x01 RSA (Encrypt or Sign)
261
+ # keep old look of version 5.28 without parentheses
262
+ >0 byte 0x02 RSA Encrypt-Only
263
+ >0 byte 0x03 RSA (Sign-Only)
264
+ >0 byte 16 ElGamal (Encrypt-Only)
265
+ >0 byte 17 DSA
266
+ >0 byte 18 Elliptic Curve
267
+ >0 byte 19 ECDSA
268
+ >0 byte 20 ElGamal (Encrypt or Sign)
269
+ >0 byte 21 Diffie-Hellman
270
+ >0 default x
271
+ >>0 ubyte <22 unknown (pub %d)
272
+ # this should never happen
273
+ >>0 ubyte >21 invalid (%d)
274
+
275
+ # pgp symmetric encrypted data
276
+
277
+ 0 byte 0x8c PGP symmetric key encrypted data -
278
+ >1 byte 0x0d
279
+ >1 byte 0x0c
280
+ >2 byte 0x04
281
+ >3 use crypto
282
+ >4 byte 0x01 salted -
283
+ >>5 use hash
284
+ >>14 byte 0xd2 .
285
+ >>14 byte 0xc9 .
286
+ >4 byte 0x03 salted & iterated -
287
+ >>5 use hash
288
+ >>15 byte 0xd2 .
289
+ >>15 byte 0xc9 .
290
+
291
+ # encrypted keymaterial needs s2k & can be checksummed/hashed
292
+
293
+ 0 name chkcrypto
294
+ >0 use crypto
295
+ >1 byte 0x00 Simple S2K
296
+ >1 byte 0x01 Salted S2K
297
+ >1 byte 0x03 Salted&Iterated S2K
298
+ >2 use hash
299
+
300
+ # all PGP keys start with this prolog
301
+ # containing version, creation date, and purpose
302
+
303
+ 0 name keyprolog
304
+ >0 byte 0x04
305
+ >1 beldate x created on %s -
306
+ >5 byte 0x01 RSA (Encrypt or Sign)
307
+ >5 byte 0x02 RSA Encrypt-Only
308
+
309
+ # end of secret keys known signature
310
+ # contains e=65537 and the prolog to
311
+ # the encrypted parameters
312
+
313
+ 0 name keyend
314
+ >0 string \x00\x11\x01\x00\x01 e=65537
315
+ >5 use crypto
316
+ >5 byte 0xff checksummed
317
+ >>6 use chkcrypto
318
+ >5 byte 0xfe hashed
319
+ >>6 use chkcrypto
320
+
321
+ # PGP secret keys contain also the public parts
322
+ # these vary by bitsize of the key
323
+
324
+ 0 name x1024
325
+ >0 use keyprolog
326
+ >6 string \x03\xfe
327
+ >6 string \x03\xff
328
+ >6 string \x04\x00
329
+ >136 use keyend
330
+
331
+ 0 name x2048
332
+ >0 use keyprolog
333
+ >6 string \x80\x00
334
+ >6 string \x07\xfe
335
+ >6 string \x07\xff
336
+ >264 use keyend
337
+
338
+ 0 name x3072
339
+ >0 use keyprolog
340
+ >6 string \x0b\xfe
341
+ >6 string \x0b\xff
342
+ >6 string \x0c\x00
343
+ >392 use keyend
344
+
345
+ 0 name x4096
346
+ >0 use keyprolog
347
+ >6 string \x10\x00
348
+ >6 string \x0f\xfe
349
+ >6 string \x0f\xff
350
+ >520 use keyend
351
+
352
+ # \x00|\x1f[\xfe\xff]).{1024})'
353
+ 0 name x8192
354
+ >0 use keyprolog
355
+ >6 string \x20\x00
356
+ >6 string \x1f\xfe
357
+ >6 string \x1f\xff
358
+ >1032 use keyend
359
+
360
+ # depending on the size of the pkt
361
+ # we branch into the proper key size
362
+ # signatures defined as x{keysize}
363
+
364
+ 0 name pgpkey
365
+ >0 string \x01\xd8 1024b
366
+ >>2 use x1024
367
+ >0 string \x01\xeb 1024b
368
+ >>2 use x1024
369
+ >0 string \x01\xfb 1024b
370
+ >>2 use x1024
371
+ >0 string \x01\xfd 1024b
372
+ >>2 use x1024
373
+ >0 string \x01\xf3 1024b
374
+ >>2 use x1024
375
+ >0 string \x01\xee 1024b
376
+ >>2 use x1024
377
+ >0 string \x01\xfe 1024b
378
+ >>2 use x1024
379
+ >0 string \x01\xf4 1024b
380
+ >>2 use x1024
381
+ >0 string \x02\x0d 1024b
382
+ >>2 use x1024
383
+ >0 string \x02\x03 1024b
384
+ >>2 use x1024
385
+ >0 string \x02\x05 1024b
386
+ >>2 use x1024
387
+ >0 string \x02\x15 1024b
388
+ >>2 use x1024
389
+ >0 string \x02\x00 1024b
390
+ >>2 use x1024
391
+ >0 string \x02\x10 1024b
392
+ >>2 use x1024
393
+ >0 string \x02\x04 1024b
394
+ >>2 use x1024
395
+ >0 string \x02\x06 1024b
396
+ >>2 use x1024
397
+ >0 string \x02\x16 1024b
398
+ >>2 use x1024
399
+ >0 string \x03\x98 2048b
400
+ >>2 use x2048
401
+ >0 string \x03\xab 2048b
402
+ >>2 use x2048
403
+ >0 string \x03\xbb 2048b
404
+ >>2 use x2048
405
+ >0 string \x03\xbd 2048b
406
+ >>2 use x2048
407
+ >0 string \x03\xcd 2048b
408
+ >>2 use x2048
409
+ >0 string \x03\xb3 2048b
410
+ >>2 use x2048
411
+ >0 string \x03\xc3 2048b
412
+ >>2 use x2048
413
+ >0 string \x03\xc5 2048b
414
+ >>2 use x2048
415
+ >0 string \x03\xd5 2048b
416
+ >>2 use x2048
417
+ >0 string \x03\xae 2048b
418
+ >>2 use x2048
419
+ >0 string \x03\xbe 2048b
420
+ >>2 use x2048
421
+ >0 string \x03\xc0 2048b
422
+ >>2 use x2048
423
+ >0 string \x03\xd0 2048b
424
+ >>2 use x2048
425
+ >0 string \x03\xb4 2048b
426
+ >>2 use x2048
427
+ >0 string \x03\xc4 2048b
428
+ >>2 use x2048
429
+ >0 string \x03\xc6 2048b
430
+ >>2 use x2048
431
+ >0 string \x03\xd6 2048b
432
+ >>2 use x2048
433
+ >0 string \x05X 3072b
434
+ >>2 use x3072
435
+ >0 string \x05k 3072b
436
+ >>2 use x3072
437
+ >0 string \x05{ 3072b
438
+ >>2 use x3072
439
+ >0 string \x05} 3072b
440
+ >>2 use x3072
441
+ >0 string \x05\x8d 3072b
442
+ >>2 use x3072
443
+ >0 string \x05s 3072b
444
+ >>2 use x3072
445
+ >0 string \x05\x83 3072b
446
+ >>2 use x3072
447
+ >0 string \x05\x85 3072b
448
+ >>2 use x3072
449
+ >0 string \x05\x95 3072b
450
+ >>2 use x3072
451
+ >0 string \x05n 3072b
452
+ >>2 use x3072
453
+ >0 string \x05\x7e 3072b
454
+ >>2 use x3072
455
+ >0 string \x05\x80 3072b
456
+ >>2 use x3072
457
+ >0 string \x05\x90 3072b
458
+ >>2 use x3072
459
+ >0 string \x05t 3072b
460
+ >>2 use x3072
461
+ >0 string \x05\x84 3072b
462
+ >>2 use x3072
463
+ >0 string \x05\x86 3072b
464
+ >>2 use x3072
465
+ >0 string \x05\x96 3072b
466
+ >>2 use x3072
467
+ >0 string \x07[ 4096b
468
+ >>2 use x4096
469
+ >0 string \x07\x18 4096b
470
+ >>2 use x4096
471
+ >0 string \x07+ 4096b
472
+ >>2 use x4096
473
+ >0 string \x07; 4096b
474
+ >>2 use x4096
475
+ >0 string \x07= 4096b
476
+ >>2 use x4096
477
+ >0 string \x07M 4096b
478
+ >>2 use x4096
479
+ >0 string \x073 4096b
480
+ >>2 use x4096
481
+ >0 string \x07C 4096b
482
+ >>2 use x4096
483
+ >0 string \x07E 4096b
484
+ >>2 use x4096
485
+ >0 string \x07U 4096b
486
+ >>2 use x4096
487
+ >0 string \x07. 4096b
488
+ >>2 use x4096
489
+ >0 string \x07> 4096b
490
+ >>2 use x4096
491
+ >0 string \x07@ 4096b
492
+ >>2 use x4096
493
+ >0 string \x07P 4096b
494
+ >>2 use x4096
495
+ >0 string \x074 4096b
496
+ >>2 use x4096
497
+ >0 string \x07D 4096b
498
+ >>2 use x4096
499
+ >0 string \x07F 4096b
500
+ >>2 use x4096
501
+ >0 string \x07V 4096b
502
+ >>2 use x4096
503
+ >0 string \x0e[ 8192b
504
+ >>2 use x8192
505
+ >0 string \x0e\x18 8192b
506
+ >>2 use x8192
507
+ >0 string \x0e+ 8192b
508
+ >>2 use x8192
509
+ >0 string \x0e; 8192b
510
+ >>2 use x8192
511
+ >0 string \x0e= 8192b
512
+ >>2 use x8192
513
+ >0 string \x0eM 8192b
514
+ >>2 use x8192
515
+ >0 string \x0e3 8192b
516
+ >>2 use x8192
517
+ >0 string \x0eC 8192b
518
+ >>2 use x8192
519
+ >0 string \x0eE 8192b
520
+ >>2 use x8192
521
+ >0 string \x0eU 8192b
522
+ >>2 use x8192
523
+ >0 string \x0e. 8192b
524
+ >>2 use x8192
525
+ >0 string \x0e> 8192b
526
+ >>2 use x8192
527
+ >0 string \x0e@ 8192b
528
+ >>2 use x8192
529
+ >0 string \x0eP 8192b
530
+ >>2 use x8192
531
+ >0 string \x0e4 8192b
532
+ >>2 use x8192
533
+ >0 string \x0eD 8192b
534
+ >>2 use x8192
535
+ >0 string \x0eF 8192b
536
+ >>2 use x8192
537
+ >0 string \x0eV 8192b
538
+ >>2 use x8192
539
+
540
+ # PGP RSA (e=65537) secret (sub-)key header
541
+
542
+ 0 byte 0x97 PGP Secret Sub-key -
543
+ >1 use pgpkey
544
+ 0 byte 0x9d
545
+ # Update: Joerg Jenderek
546
+ # secret subkey packet (tag 7) with same structure as secret key packet (tag 5)
547
+ # skip Fetus.Sys16 CALIBUS.MAIN OrbFix.Sys16.Ex by looking for positive len
548
+ >1 ubeshort >0
549
+ #>1 ubeshort x \b, body length %#x
550
+ # next packet type often 88h,89h~(tag 2)~Signature Packet
551
+ #>>(1.S+3) ubyte x \b, next packet type %#x
552
+ # skip Dragon.SHR DEMO.INIT by looking for positive version
553
+ >>3 ubyte >0
554
+ # skip BUISSON.13 GUITAR1 by looking for low version number
555
+ >>>3 ubyte <5 PGP Secret Sub-key
556
+ # sub-key are normally part of secret key. So it does not occur as standalone file
557
+ #!:ext bin
558
+ # version 2,3~old 4~new . Comment following line for version 5.28 look
559
+ >>>>3 ubyte x (v%d)
560
+ >>>>3 ubyte x -
561
+ # old versions 2 or 3 but no real example found
562
+ >>>>3 ubyte <4
563
+ # 2 byte for key bits in version 5.28 look
564
+ >>>>>11 ubeshort x %db
565
+ >>>>>4 beldate x created on %s -
566
+ # old versions use 2 additional bytes after time stamp
567
+ #>>>>>8 ubeshort x %#x
568
+ # display key algorithm 1~RSA Encrypt|Sign - 21~Diffie-Hellman
569
+ >>>>>10 use key_algo
570
+ >>>>>(11.S/8) ubequad x
571
+ # look after first key
572
+ >>>>>>&5 use keyend
573
+ # new version
574
+ >>>>3 ubyte >3
575
+ >>>>>9 ubeshort x %db
576
+ >>>>>4 beldate x created on %s -
577
+ # display key algorithm
578
+ >>>>>8 use key_algo
579
+ >>>>>(9.S/8) ubequad x
580
+ # look after first key for something like s2k
581
+ >>>>>>&3 use keyend