pypcapkit 1.3.3.post1__cp313-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.
Files changed (466) hide show
  1. pcapkit/__init__.py +126 -0
  2. pcapkit/__main__.py +138 -0
  3. pcapkit/all.py +136 -0
  4. pcapkit/const/__init__.py +81 -0
  5. pcapkit/const/arp/__init__.py +25 -0
  6. pcapkit/const/arp/hardware.py +181 -0
  7. pcapkit/const/arp/operation.py +131 -0
  8. pcapkit/const/ftp/__init__.py +25 -0
  9. pcapkit/const/ftp/command.py +309 -0
  10. pcapkit/const/ftp/return_code.py +304 -0
  11. pcapkit/const/hip/__init__.py +94 -0
  12. pcapkit/const/hip/certificate.py +77 -0
  13. pcapkit/const/hip/cipher.py +65 -0
  14. pcapkit/const/hip/di.py +59 -0
  15. pcapkit/const/hip/ecdsa_curve.py +59 -0
  16. pcapkit/const/hip/ecdsa_low_curve.py +56 -0
  17. pcapkit/const/hip/eddsa_curve.py +65 -0
  18. pcapkit/const/hip/esp_transform_suite.py +98 -0
  19. pcapkit/const/hip/group.py +86 -0
  20. pcapkit/const/hip/hi_algorithm.py +86 -0
  21. pcapkit/const/hip/hit_suite.py +68 -0
  22. pcapkit/const/hip/nat_traversal.py +62 -0
  23. pcapkit/const/hip/notify_message.py +200 -0
  24. pcapkit/const/hip/packet.py +89 -0
  25. pcapkit/const/hip/parameter.py +377 -0
  26. pcapkit/const/hip/registration.py +68 -0
  27. pcapkit/const/hip/registration_failure.py +84 -0
  28. pcapkit/const/hip/suite.py +71 -0
  29. pcapkit/const/hip/transport.py +59 -0
  30. pcapkit/const/http/__init__.py +39 -0
  31. pcapkit/const/http/error_code.py +95 -0
  32. pcapkit/const/http/frame.py +95 -0
  33. pcapkit/const/http/method.py +184 -0
  34. pcapkit/const/http/setting.py +96 -0
  35. pcapkit/const/http/status_code.py +294 -0
  36. pcapkit/const/ipv4/__init__.py +57 -0
  37. pcapkit/const/ipv4/classification_level.py +64 -0
  38. pcapkit/const/ipv4/option_class.py +55 -0
  39. pcapkit/const/ipv4/option_number.py +137 -0
  40. pcapkit/const/ipv4/protection_authority.py +63 -0
  41. pcapkit/const/ipv4/qs_function.py +51 -0
  42. pcapkit/const/ipv4/router_alert.py +251 -0
  43. pcapkit/const/ipv4/tos_del.py +51 -0
  44. pcapkit/const/ipv4/tos_ecn.py +55 -0
  45. pcapkit/const/ipv4/tos_pre.py +63 -0
  46. pcapkit/const/ipv4/tos_rel.py +51 -0
  47. pcapkit/const/ipv4/tos_thr.py +51 -0
  48. pcapkit/const/ipv4/ts_flag.py +53 -0
  49. pcapkit/const/ipv6/__init__.py +53 -0
  50. pcapkit/const/ipv6/extension_header.py +66 -0
  51. pcapkit/const/ipv6/option.py +137 -0
  52. pcapkit/const/ipv6/option_action.py +55 -0
  53. pcapkit/const/ipv6/qs_function.py +51 -0
  54. pcapkit/const/ipv6/router_alert.py +266 -0
  55. pcapkit/const/ipv6/routing.py +80 -0
  56. pcapkit/const/ipv6/seed_id.py +55 -0
  57. pcapkit/const/ipv6/smf_dpd_mode.py +51 -0
  58. pcapkit/const/ipv6/tagger_id.py +62 -0
  59. pcapkit/const/ipx/__init__.py +27 -0
  60. pcapkit/const/ipx/packet.py +72 -0
  61. pcapkit/const/ipx/socket.py +104 -0
  62. pcapkit/const/l2tp/__init__.py +21 -0
  63. pcapkit/const/l2tp/type.py +51 -0
  64. pcapkit/const/mh/__init__.py +204 -0
  65. pcapkit/const/mh/access_type.py +92 -0
  66. pcapkit/const/mh/ack_status_code.py +71 -0
  67. pcapkit/const/mh/ani_suboption.py +74 -0
  68. pcapkit/const/mh/auth_subtype.py +53 -0
  69. pcapkit/const/mh/binding_ack_flag.py +66 -0
  70. pcapkit/const/mh/binding_error.py +51 -0
  71. pcapkit/const/mh/binding_revocation.py +59 -0
  72. pcapkit/const/mh/binding_update_flag.py +81 -0
  73. pcapkit/const/mh/cga_extension.py +66 -0
  74. pcapkit/const/mh/cga_sec.py +57 -0
  75. pcapkit/const/mh/cga_type.py +68 -0
  76. pcapkit/const/mh/dhcp_support_mode.py +53 -0
  77. pcapkit/const/mh/dns_status_code.py +65 -0
  78. pcapkit/const/mh/dsmip6_tls_packet.py +62 -0
  79. pcapkit/const/mh/dsmipv6_home_address.py +74 -0
  80. pcapkit/const/mh/enumerating_algorithm.py +56 -0
  81. pcapkit/const/mh/fb_ack_status.py +62 -0
  82. pcapkit/const/mh/fb_action.py +71 -0
  83. pcapkit/const/mh/fb_indication_trigger.py +65 -0
  84. pcapkit/const/mh/fb_type.py +59 -0
  85. pcapkit/const/mh/flow_id_status.py +77 -0
  86. pcapkit/const/mh/flow_id_suboption.py +71 -0
  87. pcapkit/const/mh/handoff_type.py +71 -0
  88. pcapkit/const/mh/handover_ack_flag.py +54 -0
  89. pcapkit/const/mh/handover_ack_status.py +92 -0
  90. pcapkit/const/mh/handover_initiate_flag.py +57 -0
  91. pcapkit/const/mh/handover_initiate_status.py +62 -0
  92. pcapkit/const/mh/home_address_reply.py +71 -0
  93. pcapkit/const/mh/lla_code.py +63 -0
  94. pcapkit/const/mh/lma_mag_suboption.py +59 -0
  95. pcapkit/const/mh/mn_group_id.py +59 -0
  96. pcapkit/const/mh/mn_id_subtype.py +77 -0
  97. pcapkit/const/mh/operator_id.py +63 -0
  98. pcapkit/const/mh/option.py +260 -0
  99. pcapkit/const/mh/packet.py +119 -0
  100. pcapkit/const/mh/qos_attribute.py +89 -0
  101. pcapkit/const/mh/revocation_status_code.py +83 -0
  102. pcapkit/const/mh/revocation_trigger.py +86 -0
  103. pcapkit/const/mh/status_code.py +232 -0
  104. pcapkit/const/mh/traffic_selector.py +62 -0
  105. pcapkit/const/mh/upa_status.py +71 -0
  106. pcapkit/const/mh/upn_reason.py +80 -0
  107. pcapkit/const/ospf/__init__.py +27 -0
  108. pcapkit/const/ospf/authentication.py +65 -0
  109. pcapkit/const/ospf/packet.py +71 -0
  110. pcapkit/const/pcapng/__init__.py +51 -0
  111. pcapkit/const/pcapng/block_type.py +152 -0
  112. pcapkit/const/pcapng/filter_type.py +48 -0
  113. pcapkit/const/pcapng/hash_algorithm.py +59 -0
  114. pcapkit/const/pcapng/option_type.py +233 -0
  115. pcapkit/const/pcapng/record_type.py +57 -0
  116. pcapkit/const/pcapng/secrets_type.py +56 -0
  117. pcapkit/const/pcapng/verdict_type.py +53 -0
  118. pcapkit/const/reg/__init__.py +34 -0
  119. pcapkit/const/reg/apptype.py +32702 -0
  120. pcapkit/const/reg/ethertype.py +714 -0
  121. pcapkit/const/reg/linktype.py +902 -0
  122. pcapkit/const/reg/transtype.py +523 -0
  123. pcapkit/const/tcp/__init__.py +35 -0
  124. pcapkit/const/tcp/checksum.py +55 -0
  125. pcapkit/const/tcp/flags.py +73 -0
  126. pcapkit/const/tcp/mp_tcp_option.py +80 -0
  127. pcapkit/const/tcp/option.py +198 -0
  128. pcapkit/const/vlan/__init__.py +23 -0
  129. pcapkit/const/vlan/priority_level.py +71 -0
  130. pcapkit/corekit/__init__.py +59 -0
  131. pcapkit/corekit/fields/__init__.py +45 -0
  132. pcapkit/corekit/fields/collections.py +282 -0
  133. pcapkit/corekit/fields/field.py +269 -0
  134. pcapkit/corekit/fields/ipaddress.py +274 -0
  135. pcapkit/corekit/fields/misc.py +722 -0
  136. pcapkit/corekit/fields/numbers.py +375 -0
  137. pcapkit/corekit/fields/strings.py +245 -0
  138. pcapkit/corekit/infoclass.py +394 -0
  139. pcapkit/corekit/io.py +506 -0
  140. pcapkit/corekit/module.py +39 -0
  141. pcapkit/corekit/multidict.py +626 -0
  142. pcapkit/corekit/protochain.py +263 -0
  143. pcapkit/corekit/version.py +33 -0
  144. pcapkit/dumpkit/__init__.py +15 -0
  145. pcapkit/dumpkit/common.py +199 -0
  146. pcapkit/dumpkit/null.py +77 -0
  147. pcapkit/dumpkit/pcap.py +144 -0
  148. pcapkit/foundation/__init__.py +45 -0
  149. pcapkit/foundation/engines/__init__.py +36 -0
  150. pcapkit/foundation/engines/dpkt.py +230 -0
  151. pcapkit/foundation/engines/engine.py +194 -0
  152. pcapkit/foundation/engines/pcap.py +188 -0
  153. pcapkit/foundation/engines/pcapng.py +310 -0
  154. pcapkit/foundation/engines/pyshark.py +166 -0
  155. pcapkit/foundation/engines/scapy.py +161 -0
  156. pcapkit/foundation/extraction.py +915 -0
  157. pcapkit/foundation/reassembly/__init__.py +49 -0
  158. pcapkit/foundation/reassembly/data/__init__.py +48 -0
  159. pcapkit/foundation/reassembly/data/ip.py +117 -0
  160. pcapkit/foundation/reassembly/data/tcp.py +145 -0
  161. pcapkit/foundation/reassembly/ip.py +192 -0
  162. pcapkit/foundation/reassembly/ipv4.py +50 -0
  163. pcapkit/foundation/reassembly/ipv6.py +50 -0
  164. pcapkit/foundation/reassembly/reassembly.py +389 -0
  165. pcapkit/foundation/reassembly/tcp.py +249 -0
  166. pcapkit/foundation/registry/__init__.py +41 -0
  167. pcapkit/foundation/registry/foundation.py +327 -0
  168. pcapkit/foundation/registry/protocols.py +885 -0
  169. pcapkit/foundation/traceflow/__init__.py +44 -0
  170. pcapkit/foundation/traceflow/data/__init__.py +30 -0
  171. pcapkit/foundation/traceflow/data/tcp.py +105 -0
  172. pcapkit/foundation/traceflow/tcp.py +159 -0
  173. pcapkit/foundation/traceflow/traceflow.py +390 -0
  174. pcapkit/interface/__init__.py +22 -0
  175. pcapkit/interface/core.py +185 -0
  176. pcapkit/interface/misc.py +120 -0
  177. pcapkit/protocols/__init__.py +85 -0
  178. pcapkit/protocols/application/NotImplemented/bgp.py +0 -0
  179. pcapkit/protocols/application/NotImplemented/dhcp.py +0 -0
  180. pcapkit/protocols/application/NotImplemented/dhcpv6.py +0 -0
  181. pcapkit/protocols/application/NotImplemented/dns.py +0 -0
  182. pcapkit/protocols/application/NotImplemented/imap.py +0 -0
  183. pcapkit/protocols/application/NotImplemented/ldap.py +0 -0
  184. pcapkit/protocols/application/NotImplemented/mqtt.py +0 -0
  185. pcapkit/protocols/application/NotImplemented/nntp.py +0 -0
  186. pcapkit/protocols/application/NotImplemented/ntp.py +0 -0
  187. pcapkit/protocols/application/NotImplemented/onc_rpc.py +0 -0
  188. pcapkit/protocols/application/NotImplemented/pop.py +0 -0
  189. pcapkit/protocols/application/NotImplemented/rip.py +0 -0
  190. pcapkit/protocols/application/NotImplemented/rtp.py +0 -0
  191. pcapkit/protocols/application/NotImplemented/sip.py +0 -0
  192. pcapkit/protocols/application/NotImplemented/smtp.py +0 -0
  193. pcapkit/protocols/application/NotImplemented/snmp.py +0 -0
  194. pcapkit/protocols/application/NotImplemented/ssh.py +0 -0
  195. pcapkit/protocols/application/NotImplemented/telnet.py +0 -0
  196. pcapkit/protocols/application/NotImplemented/tls.py +0 -0
  197. pcapkit/protocols/application/NotImplemented/xmpp.py +0 -0
  198. pcapkit/protocols/application/__init__.py +34 -0
  199. pcapkit/protocols/application/application.py +114 -0
  200. pcapkit/protocols/application/ftp.py +206 -0
  201. pcapkit/protocols/application/http.py +176 -0
  202. pcapkit/protocols/application/httpv1.py +320 -0
  203. pcapkit/protocols/application/httpv2.py +1255 -0
  204. pcapkit/protocols/data/__init__.py +192 -0
  205. pcapkit/protocols/data/application/__init__.py +57 -0
  206. pcapkit/protocols/data/application/ftp.py +59 -0
  207. pcapkit/protocols/data/application/httpv1.py +79 -0
  208. pcapkit/protocols/data/application/httpv2.py +293 -0
  209. pcapkit/protocols/data/data.py +25 -0
  210. pcapkit/protocols/data/internet/__init__.py +298 -0
  211. pcapkit/protocols/data/internet/ah.py +31 -0
  212. pcapkit/protocols/data/internet/hip.py +804 -0
  213. pcapkit/protocols/data/internet/hopopt.py +351 -0
  214. pcapkit/protocols/data/internet/ipv4.py +369 -0
  215. pcapkit/protocols/data/internet/ipv6.py +67 -0
  216. pcapkit/protocols/data/internet/ipv6_frag.py +29 -0
  217. pcapkit/protocols/data/internet/ipv6_opts.py +368 -0
  218. pcapkit/protocols/data/internet/ipv6_route.py +86 -0
  219. pcapkit/protocols/data/internet/ipx.py +56 -0
  220. pcapkit/protocols/data/internet/mh.py +509 -0
  221. pcapkit/protocols/data/link/__init__.py +33 -0
  222. pcapkit/protocols/data/link/arp.py +74 -0
  223. pcapkit/protocols/data/link/ethernet.py +28 -0
  224. pcapkit/protocols/data/link/l2tp.py +63 -0
  225. pcapkit/protocols/data/link/ospf.py +58 -0
  226. pcapkit/protocols/data/link/vlan.py +42 -0
  227. pcapkit/protocols/data/misc/__init__.py +109 -0
  228. pcapkit/protocols/data/misc/null.py +18 -0
  229. pcapkit/protocols/data/misc/pcap/__init__.py +18 -0
  230. pcapkit/protocols/data/misc/pcap/frame.py +56 -0
  231. pcapkit/protocols/data/misc/pcap/header.py +53 -0
  232. pcapkit/protocols/data/misc/pcapng.py +925 -0
  233. pcapkit/protocols/data/misc/raw.py +25 -0
  234. pcapkit/protocols/data/protocol.py +32 -0
  235. pcapkit/protocols/data/transport/__init__.py +71 -0
  236. pcapkit/protocols/data/transport/tcp.py +555 -0
  237. pcapkit/protocols/data/transport/udp.py +29 -0
  238. pcapkit/protocols/internet/NotImplemented/ecn.py +0 -0
  239. pcapkit/protocols/internet/NotImplemented/esp.py +97 -0
  240. pcapkit/protocols/internet/NotImplemented/icmp.py +0 -0
  241. pcapkit/protocols/internet/NotImplemented/icmpv6.py +0 -0
  242. pcapkit/protocols/internet/NotImplemented/igmp.py +0 -0
  243. pcapkit/protocols/internet/NotImplemented/shim6.py +0 -0
  244. pcapkit/protocols/internet/__init__.py +43 -0
  245. pcapkit/protocols/internet/ah.py +275 -0
  246. pcapkit/protocols/internet/hip.py +4727 -0
  247. pcapkit/protocols/internet/hopopt.py +1879 -0
  248. pcapkit/protocols/internet/internet.py +240 -0
  249. pcapkit/protocols/internet/ip.py +51 -0
  250. pcapkit/protocols/internet/ipsec.py +50 -0
  251. pcapkit/protocols/internet/ipv4.py +1782 -0
  252. pcapkit/protocols/internet/ipv6.py +361 -0
  253. pcapkit/protocols/internet/ipv6_frag.py +258 -0
  254. pcapkit/protocols/internet/ipv6_opts.py +1890 -0
  255. pcapkit/protocols/internet/ipv6_route.py +710 -0
  256. pcapkit/protocols/internet/ipx.py +230 -0
  257. pcapkit/protocols/internet/mh.py +2764 -0
  258. pcapkit/protocols/link/NotImplemented/dsl.py +0 -0
  259. pcapkit/protocols/link/NotImplemented/eapol.py +1 -0
  260. pcapkit/protocols/link/NotImplemented/fddi.py +0 -0
  261. pcapkit/protocols/link/NotImplemented/isdn.py +0 -0
  262. pcapkit/protocols/link/NotImplemented/ndp.py +0 -0
  263. pcapkit/protocols/link/NotImplemented/ppp.py +0 -0
  264. pcapkit/protocols/link/__init__.py +35 -0
  265. pcapkit/protocols/link/arp.py +421 -0
  266. pcapkit/protocols/link/ethernet.py +248 -0
  267. pcapkit/protocols/link/l2tp.py +267 -0
  268. pcapkit/protocols/link/link.py +140 -0
  269. pcapkit/protocols/link/ospf.py +342 -0
  270. pcapkit/protocols/link/rarp.py +82 -0
  271. pcapkit/protocols/link/vlan.py +225 -0
  272. pcapkit/protocols/misc/__init__.py +37 -0
  273. pcapkit/protocols/misc/null.py +129 -0
  274. pcapkit/protocols/misc/pcap/__init__.py +17 -0
  275. pcapkit/protocols/misc/pcap/frame.py +478 -0
  276. pcapkit/protocols/misc/pcap/header.py +358 -0
  277. pcapkit/protocols/misc/pcapng.py +5520 -0
  278. pcapkit/protocols/misc/raw.py +180 -0
  279. pcapkit/protocols/protocol.py +1216 -0
  280. pcapkit/protocols/schema/__init__.py +140 -0
  281. pcapkit/protocols/schema/application/__init__.py +40 -0
  282. pcapkit/protocols/schema/application/ftp.py +21 -0
  283. pcapkit/protocols/schema/application/httpv1.py +21 -0
  284. pcapkit/protocols/schema/application/httpv2.py +384 -0
  285. pcapkit/protocols/schema/internet/__init__.py +294 -0
  286. pcapkit/protocols/schema/internet/ah.py +40 -0
  287. pcapkit/protocols/schema/internet/hip.py +1184 -0
  288. pcapkit/protocols/schema/internet/hopopt.py +679 -0
  289. pcapkit/protocols/schema/internet/ipv4.py +576 -0
  290. pcapkit/protocols/schema/internet/ipv6.py +63 -0
  291. pcapkit/protocols/schema/internet/ipv6_frag.py +48 -0
  292. pcapkit/protocols/schema/internet/ipv6_opts.py +680 -0
  293. pcapkit/protocols/schema/internet/ipv6_route.py +198 -0
  294. pcapkit/protocols/schema/internet/ipx.py +40 -0
  295. pcapkit/protocols/schema/internet/mh.py +718 -0
  296. pcapkit/protocols/schema/link/__init__.py +19 -0
  297. pcapkit/protocols/schema/link/arp.py +39 -0
  298. pcapkit/protocols/schema/link/ethernet.py +51 -0
  299. pcapkit/protocols/schema/link/l2tp.py +88 -0
  300. pcapkit/protocols/schema/link/ospf.py +90 -0
  301. pcapkit/protocols/schema/link/vlan.py +69 -0
  302. pcapkit/protocols/schema/misc/__init__.py +108 -0
  303. pcapkit/protocols/schema/misc/null.py +18 -0
  304. pcapkit/protocols/schema/misc/pcap/__init__.py +10 -0
  305. pcapkit/protocols/schema/misc/pcap/frame.py +51 -0
  306. pcapkit/protocols/schema/misc/pcap/header.py +63 -0
  307. pcapkit/protocols/schema/misc/pcapng.py +1689 -0
  308. pcapkit/protocols/schema/misc/raw.py +24 -0
  309. pcapkit/protocols/schema/schema.py +809 -0
  310. pcapkit/protocols/schema/transport/__init__.py +69 -0
  311. pcapkit/protocols/schema/transport/tcp.py +928 -0
  312. pcapkit/protocols/schema/transport/udp.py +90 -0
  313. pcapkit/protocols/transport/NotImplemented/dccp.py +0 -0
  314. pcapkit/protocols/transport/NotImplemented/rsvp.py +0 -0
  315. pcapkit/protocols/transport/NotImplemented/sctp.py +0 -0
  316. pcapkit/protocols/transport/__init__.py +27 -0
  317. pcapkit/protocols/transport/tcp.py +3025 -0
  318. pcapkit/protocols/transport/transport.py +158 -0
  319. pcapkit/protocols/transport/udp.py +214 -0
  320. pcapkit/py.typed +0 -0
  321. pcapkit/toolkit/__init__.py +57 -0
  322. pcapkit/toolkit/dpkt.py +306 -0
  323. pcapkit/toolkit/pcap.py +212 -0
  324. pcapkit/toolkit/pcapng.py +251 -0
  325. pcapkit/toolkit/pyshark.py +99 -0
  326. pcapkit/toolkit/scapy.py +297 -0
  327. pcapkit/utilities/__init__.py +20 -0
  328. pcapkit/utilities/compat.py +196 -0
  329. pcapkit/utilities/decorators.py +192 -0
  330. pcapkit/utilities/exceptions.py +365 -0
  331. pcapkit/utilities/logging.py +55 -0
  332. pcapkit/utilities/warnings.py +185 -0
  333. pcapkit/vendor/__init__.py +105 -0
  334. pcapkit/vendor/__main__.py +92 -0
  335. pcapkit/vendor/arp/__init__.py +27 -0
  336. pcapkit/vendor/arp/hardware.py +29 -0
  337. pcapkit/vendor/arp/operation.py +29 -0
  338. pcapkit/vendor/default.py +474 -0
  339. pcapkit/vendor/ftp/__init__.py +27 -0
  340. pcapkit/vendor/ftp/command.py +244 -0
  341. pcapkit/vendor/ftp/return_code.py +256 -0
  342. pcapkit/vendor/hip/__init__.py +94 -0
  343. pcapkit/vendor/hip/certificate.py +29 -0
  344. pcapkit/vendor/hip/cipher.py +29 -0
  345. pcapkit/vendor/hip/di.py +29 -0
  346. pcapkit/vendor/hip/ecdsa_curve.py +29 -0
  347. pcapkit/vendor/hip/ecdsa_low_curve.py +29 -0
  348. pcapkit/vendor/hip/eddsa_curve.py +85 -0
  349. pcapkit/vendor/hip/esp_transform_suite.py +29 -0
  350. pcapkit/vendor/hip/group.py +87 -0
  351. pcapkit/vendor/hip/hi_algorithm.py +29 -0
  352. pcapkit/vendor/hip/hit_suite.py +29 -0
  353. pcapkit/vendor/hip/nat_traversal.py +29 -0
  354. pcapkit/vendor/hip/notify_message.py +29 -0
  355. pcapkit/vendor/hip/packet.py +88 -0
  356. pcapkit/vendor/hip/parameter.py +88 -0
  357. pcapkit/vendor/hip/registration.py +29 -0
  358. pcapkit/vendor/hip/registration_failure.py +29 -0
  359. pcapkit/vendor/hip/suite.py +29 -0
  360. pcapkit/vendor/hip/transport.py +29 -0
  361. pcapkit/vendor/http/__init__.py +39 -0
  362. pcapkit/vendor/http/error_code.py +95 -0
  363. pcapkit/vendor/http/frame.py +91 -0
  364. pcapkit/vendor/http/method.py +167 -0
  365. pcapkit/vendor/http/setting.py +93 -0
  366. pcapkit/vendor/http/status_code.py +185 -0
  367. pcapkit/vendor/ipv4/__init__.py +57 -0
  368. pcapkit/vendor/ipv4/classification_level.py +91 -0
  369. pcapkit/vendor/ipv4/option_class.py +80 -0
  370. pcapkit/vendor/ipv4/option_number.py +105 -0
  371. pcapkit/vendor/ipv4/protection_authority.py +84 -0
  372. pcapkit/vendor/ipv4/qs_function.py +78 -0
  373. pcapkit/vendor/ipv4/router_alert.py +93 -0
  374. pcapkit/vendor/ipv4/tos_del.py +78 -0
  375. pcapkit/vendor/ipv4/tos_ecn.py +95 -0
  376. pcapkit/vendor/ipv4/tos_pre.py +84 -0
  377. pcapkit/vendor/ipv4/tos_rel.py +78 -0
  378. pcapkit/vendor/ipv4/tos_thr.py +77 -0
  379. pcapkit/vendor/ipv4/ts_flag.py +79 -0
  380. pcapkit/vendor/ipv6/__init__.py +53 -0
  381. pcapkit/vendor/ipv6/extension_header.py +171 -0
  382. pcapkit/vendor/ipv6/option.py +104 -0
  383. pcapkit/vendor/ipv6/option_action.py +90 -0
  384. pcapkit/vendor/ipv6/qs_function.py +78 -0
  385. pcapkit/vendor/ipv6/router_alert.py +93 -0
  386. pcapkit/vendor/ipv6/routing.py +87 -0
  387. pcapkit/vendor/ipv6/seed_id.py +81 -0
  388. pcapkit/vendor/ipv6/smf_dpd_mode.py +78 -0
  389. pcapkit/vendor/ipv6/tagger_id.py +81 -0
  390. pcapkit/vendor/ipx/__init__.py +37 -0
  391. pcapkit/vendor/ipx/packet.py +123 -0
  392. pcapkit/vendor/ipx/socket.py +125 -0
  393. pcapkit/vendor/l2tp/__init__.py +21 -0
  394. pcapkit/vendor/l2tp/type.py +78 -0
  395. pcapkit/vendor/mh/__init__.py +204 -0
  396. pcapkit/vendor/mh/access_type.py +87 -0
  397. pcapkit/vendor/mh/ack_status_code.py +88 -0
  398. pcapkit/vendor/mh/ani_suboption.py +88 -0
  399. pcapkit/vendor/mh/auth_subtype.py +83 -0
  400. pcapkit/vendor/mh/binding_ack_flag.py +148 -0
  401. pcapkit/vendor/mh/binding_error.py +78 -0
  402. pcapkit/vendor/mh/binding_revocation.py +87 -0
  403. pcapkit/vendor/mh/binding_update_flag.py +147 -0
  404. pcapkit/vendor/mh/cga_extension.py +91 -0
  405. pcapkit/vendor/mh/cga_sec.py +91 -0
  406. pcapkit/vendor/mh/cga_type.py +74 -0
  407. pcapkit/vendor/mh/dhcp_support_mode.py +77 -0
  408. pcapkit/vendor/mh/dns_status_code.py +87 -0
  409. pcapkit/vendor/mh/dsmip6_tls_packet.py +87 -0
  410. pcapkit/vendor/mh/dsmipv6_home_address.py +87 -0
  411. pcapkit/vendor/mh/enumerating_algorithm.py +82 -0
  412. pcapkit/vendor/mh/fb_ack_status.py +87 -0
  413. pcapkit/vendor/mh/fb_action.py +88 -0
  414. pcapkit/vendor/mh/fb_indication_trigger.py +87 -0
  415. pcapkit/vendor/mh/fb_type.py +88 -0
  416. pcapkit/vendor/mh/flow_id_status.py +87 -0
  417. pcapkit/vendor/mh/flow_id_suboption.py +87 -0
  418. pcapkit/vendor/mh/handoff_type.py +87 -0
  419. pcapkit/vendor/mh/handover_ack_flag.py +143 -0
  420. pcapkit/vendor/mh/handover_ack_status.py +87 -0
  421. pcapkit/vendor/mh/handover_initiate_flag.py +143 -0
  422. pcapkit/vendor/mh/handover_initiate_status.py +87 -0
  423. pcapkit/vendor/mh/home_address_reply.py +87 -0
  424. pcapkit/vendor/mh/lla_code.py +97 -0
  425. pcapkit/vendor/mh/lma_mag_suboption.py +88 -0
  426. pcapkit/vendor/mh/mn_group_id.py +87 -0
  427. pcapkit/vendor/mh/mn_id_subtype.py +87 -0
  428. pcapkit/vendor/mh/operator_id.py +87 -0
  429. pcapkit/vendor/mh/option.py +83 -0
  430. pcapkit/vendor/mh/packet.py +82 -0
  431. pcapkit/vendor/mh/qos_attribute.py +87 -0
  432. pcapkit/vendor/mh/revocation_status_code.py +87 -0
  433. pcapkit/vendor/mh/revocation_trigger.py +87 -0
  434. pcapkit/vendor/mh/status_code.py +91 -0
  435. pcapkit/vendor/mh/traffic_selector.py +87 -0
  436. pcapkit/vendor/mh/upa_status.py +87 -0
  437. pcapkit/vendor/mh/upn_reason.py +87 -0
  438. pcapkit/vendor/ospf/__init__.py +27 -0
  439. pcapkit/vendor/ospf/authentication.py +29 -0
  440. pcapkit/vendor/ospf/packet.py +29 -0
  441. pcapkit/vendor/pcapng/__init__.py +51 -0
  442. pcapkit/vendor/pcapng/block_type.py +94 -0
  443. pcapkit/vendor/pcapng/filter_type.py +77 -0
  444. pcapkit/vendor/pcapng/hash_algorithm.py +82 -0
  445. pcapkit/vendor/pcapng/option_type.py +287 -0
  446. pcapkit/vendor/pcapng/record_type.py +81 -0
  447. pcapkit/vendor/pcapng/secrets_type.py +81 -0
  448. pcapkit/vendor/pcapng/verdict_type.py +79 -0
  449. pcapkit/vendor/reg/__init__.py +34 -0
  450. pcapkit/vendor/reg/apptype.py +338 -0
  451. pcapkit/vendor/reg/ethertype.py +121 -0
  452. pcapkit/vendor/reg/linktype.py +110 -0
  453. pcapkit/vendor/reg/transtype.py +111 -0
  454. pcapkit/vendor/tcp/__init__.py +35 -0
  455. pcapkit/vendor/tcp/checksum.py +80 -0
  456. pcapkit/vendor/tcp/flags.py +149 -0
  457. pcapkit/vendor/tcp/mp_tcp_option.py +90 -0
  458. pcapkit/vendor/tcp/option.py +103 -0
  459. pcapkit/vendor/vlan/__init__.py +23 -0
  460. pcapkit/vendor/vlan/priority_level.py +97 -0
  461. pypcapkit-1.3.3.post1.dist-info/LICENSE +29 -0
  462. pypcapkit-1.3.3.post1.dist-info/METADATA +236 -0
  463. pypcapkit-1.3.3.post1.dist-info/RECORD +466 -0
  464. pypcapkit-1.3.3.post1.dist-info/WHEEL +5 -0
  465. pypcapkit-1.3.3.post1.dist-info/entry_points.txt +3 -0
  466. pypcapkit-1.3.3.post1.dist-info/top_level.txt +1 -0
pcapkit/__init__.py ADDED
@@ -0,0 +1,126 @@
1
+ # -*- coding: utf-8 -*-
2
+ # pylint: disable=wrong-import-position,unused-import,unused-wildcard-import
3
+ """Stream PCAP File Extractor
4
+ ================================
5
+
6
+ .. module:: pcapkit
7
+
8
+ :mod:`pcapkit` is an independent open source library, using only
9
+ `DictDumper`_ as its formatted output dumper.
10
+
11
+ .. _DictDumper: https://dictdumper.jarryshaw.me
12
+
13
+ Unlike popular PCAP file extractors, such as `Scapy`_,
14
+ `DPKT`_, `PyShark`_, and etc, :mod:`pcapkit` uses streaming
15
+ strategy to read input files. That is to read frame by
16
+ frame, decrease occupation on memory, as well as enhance
17
+ efficiency in some way.
18
+
19
+ .. _Scapy: https://scapy.net
20
+ .. _DPKT: https://dpkt.readthedocs.io
21
+ .. _PyShark: https://kiminewt.github.io/pyshark
22
+
23
+ In :mod:`pcapkit`, all files can be described as following eight
24
+ different components.
25
+
26
+ - Interface (:mod:`pcapkit.interface`)
27
+
28
+ User interface for the :mod:`pcapkit` library, which
29
+ standardises and simplifies the usage of this library.
30
+
31
+ - Foundation (:mod:`pcapkit.foundation`)
32
+
33
+ Synthesises file I/O and protocol analysis, coordinates
34
+ information exchange in all network layers, as well as
35
+ provides the foundamental functions for :mod:`pcapkit`.
36
+
37
+ - Protocols (:mod:`pcapkit.protocols`)
38
+
39
+ Collection of all protocol family, with detailed
40
+ implementation and methods.
41
+
42
+ - Utilities (:mod:`pcapkit.utilities`)
43
+
44
+ Auxiliary functions and tools for :mod:`pcapkit`.
45
+
46
+ - CoreKit (:mod:`pcapkit.corekit`)
47
+
48
+ Core utilities for :mod:`pcapkit` implementation, mainly
49
+ for internal data structure and processing.
50
+
51
+ - ToolKit (:mod:`pcapkit.toolkit`)
52
+
53
+ Auxiliary tools for :mod:`pcapkit` to support the multiple
54
+ extraction engines with a unified interface.
55
+
56
+ - DumpKit (:mod:`pcapkit.dumpkit`)
57
+
58
+ File output formatters for :mod:`pcapkit`.
59
+
60
+ - Constants (:mod:`pcapkit.const`)
61
+
62
+ Constant enumerations used in :mod:`pcapkit` for protocol
63
+ family extraction and representation.
64
+
65
+ """
66
+ ###############################################################################
67
+ # conda ``_extern`` module support
68
+
69
+ import os
70
+ import sys
71
+
72
+ _extern = os.path.join(os.path.dirname(os.path.realpath(__file__)), '_extern')
73
+ if os.path.exists(_extern):
74
+ sys.path.append(_extern)
75
+
76
+ ###############################################################################
77
+
78
+ import warnings
79
+
80
+ import tbtrim
81
+
82
+ from pcapkit.utilities.exceptions import BaseError
83
+ from pcapkit.utilities.logging import DEVMODE
84
+ from pcapkit.utilities.warnings import DevModeWarning
85
+
86
+ # set up sys.excepthook
87
+ if DEVMODE:
88
+ warnings.showwarning('development mode enabled', DevModeWarning,
89
+ filename=__file__, lineno=0,
90
+ line=f"PCAPKIT_DEVMODE={os.environ.get('PCAPKIT_DEVMODE', '1')}")
91
+ else:
92
+ ROOT = os.path.dirname(os.path.realpath(__file__))
93
+ tbtrim.set_trim_rule(lambda filename: ROOT in os.path.realpath(filename),
94
+ exception=BaseError, strict=False)
95
+
96
+ from pcapkit.foundation.registry import *
97
+ from pcapkit.interface import *
98
+ from pcapkit.protocols import *
99
+ from pcapkit.toolkit import *
100
+
101
+ __all__ = [
102
+ 'extract', 'reassemble', 'trace', # Interface Functions
103
+
104
+ 'TREE', 'JSON', 'PLIST', 'PCAP', # Format Macros
105
+ 'LINK', 'INET', 'TRANS', 'APP', 'RAW', # Layer Macros
106
+ 'DPKT', 'Scapy', 'PyShark', 'PCAPKit', # Engine Macros
107
+
108
+ 'LINKTYPE', 'ETHERTYPE', 'TRANSTYPE', 'APPTYPE', # Protocol Numbers
109
+
110
+ 'NoPayload', # No Payload
111
+ 'Raw', # Raw Packet
112
+
113
+ 'ARP', 'Ethernet', 'L2TP', 'OSPF', 'RARP', 'VLAN', # Link Layer
114
+
115
+ 'AH', 'IP', 'IPsec', 'IPv4', 'IPv6', 'IPX', # Internet Layer
116
+ 'HIP', 'HOPOPT', 'IPv6_Frag', 'IPv6_Opts', 'IPv6_Route', 'MH',
117
+ # IPv6 Extension Header
118
+
119
+ 'TCP', 'UDP', # Transport Layer
120
+
121
+ 'FTP', 'FTP_DATA', # Application Layer
122
+ 'HTTP',
123
+ ]
124
+
125
+ #: version number
126
+ __version__ = '1.3.3.post1'
pcapkit/__main__.py ADDED
@@ -0,0 +1,138 @@
1
+ # -*- coding: utf-8 -*-
2
+ """Command Line Tool
3
+ =======================
4
+
5
+ .. module:: pcapkit.__main__
6
+
7
+ .. important::
8
+
9
+ This module requires ``emoji`` package to be installed.
10
+
11
+ :mod:`pcapkit.__main__` was originally the module file of
12
+ |jspcapy|_, which is now deprecated and merged with :mod:`pcapkit`.
13
+
14
+ .. |jspcapy| replace:: ``jspcapy``
15
+ .. _jspcapy: https://github.com/JarryShaw/jspcapy
16
+
17
+ """
18
+ import argparse
19
+ import sys
20
+ from typing import TYPE_CHECKING
21
+
22
+ from pcapkit import __version__
23
+ from pcapkit.foundation.extraction import Extractor
24
+ from pcapkit.interface import JSON, PLIST, TREE
25
+ from pcapkit.utilities.compat import ModuleNotFoundError # pylint: disable=redefined-builtin
26
+ from pcapkit.utilities.exceptions import stacklevel
27
+ from pcapkit.utilities.warnings import EmojiWarning, warn
28
+
29
+ try:
30
+ import emoji
31
+ except ModuleNotFoundError:
32
+ warn("dependency package 'emoji' not found",
33
+ EmojiWarning, stacklevel=stacklevel())
34
+
35
+ __all__ = ['main']
36
+
37
+ if TYPE_CHECKING:
38
+ from argparse import ArgumentParser
39
+
40
+
41
+ def get_parser() -> 'ArgumentParser':
42
+ """CLI argument parser."""
43
+ parser = argparse.ArgumentParser(prog='pcapkit-cli',
44
+ description='PCAP file extractor and formatted dumper')
45
+ parser.add_argument('-V', '--version', action='version', version=__version__)
46
+ parser.add_argument('fin', metavar='input-file-name',
47
+ help=('The name of input pcap file. If ".pcap" omits, '
48
+ 'it will be automatically appended. Use "-" to indicate '
49
+ 'reading from `stdin\'.'))
50
+ parser.add_argument('-o', '--output', action='store', metavar='file-name', dest='fout',
51
+ help=('The name of input pcap file. If format extension '
52
+ 'omits, it will be automatically appended.'))
53
+ parser.add_argument('-f', '--format', action='store', metavar='format', dest='format',
54
+ help=('Print a extraction report in the specified output '
55
+ 'format. Available are all formats supported by '
56
+ 'dictdumper, e.g.: json, plist, and tree.'))
57
+ parser.add_argument('-j', '--json', action='store_true', default=False,
58
+ help=('Display extraction report as json. This will yield '
59
+ '"raw" output that may be used by external tools. '
60
+ 'This option overrides all other options.'))
61
+ parser.add_argument('-p', '--plist', action='store_true', default=False,
62
+ help=('Display extraction report as macOS Property List '
63
+ '(plist). This will yield "raw" output that may be '
64
+ 'used by external tools. This option overrides all '
65
+ 'other options.'))
66
+ parser.add_argument('-t', '--tree', action='store_true', default=False,
67
+ help=('Display extraction report as tree view text. This '
68
+ 'will yield "raw" output that may be used by external '
69
+ 'tools. This option overrides all other options.'))
70
+ parser.add_argument('-a', '--auto-extension', action='store_true', default=False,
71
+ help='If output file extension omits, append automatically.')
72
+ parser.add_argument('-v', '--verbose', action='store_true', default=False,
73
+ help='Show more information.')
74
+ parser.add_argument('-F', '--files', action='store_true', default=False,
75
+ help='Split each frame into different files.')
76
+ parser.add_argument('-E', '--engine', action='store', dest='engine', default='default', metavar='PKG',
77
+ help=('Indicate extraction engine. Note that except '
78
+ 'default or pcapkit engine, all other engines '
79
+ 'need support of corresponding packages.'))
80
+ parser.add_argument('-P', '--protocol', action='store', dest='protocol', default='null', metavar='PROTOCOL',
81
+ help='Indicate extraction stops after which protocol.')
82
+ parser.add_argument('-L', '--layer', action='store', dest='layer', default='None', metavar='LAYER',
83
+ help='Indicate extract frames until which layer.')
84
+ parser.add_argument('-B', '--buffer-save', action='store_true', default=False,
85
+ help='Indicate if store buffer to file when reading from stdin.')
86
+ parser.add_argument('-O', '--buffer-path', action='store', metavar='file-name', dest='buffer_path',
87
+ help=('The name of buffer storage file. If `--buffer-save` is set and this '
88
+ 'omits, it will be automatically assigned.'))
89
+ return parser
90
+
91
+
92
+ def main() -> 'int':
93
+ """Entrypoint."""
94
+ parser = get_parser()
95
+ args = parser.parse_args()
96
+
97
+ if args.format:
98
+ fmt = args.format
99
+ elif args.json:
100
+ fmt = JSON
101
+ elif args.plist:
102
+ fmt = PLIST
103
+ elif args.tree:
104
+ fmt = TREE
105
+ else:
106
+ fmt = None
107
+
108
+ no_eof = args.fin == '-'
109
+ if args.fin == '-':
110
+ args.fin = sys.stdin.buffer
111
+
112
+ extractor = Extractor(store=False, auto=not args.verbose,
113
+ fin=args.fin, fout=args.fout,
114
+ files=args.files, format=fmt,
115
+ layer=args.layer, protocol=args.protocol,
116
+ engine=args.engine, extension=args.auto_extension,
117
+ verbose=args.verbose, buffer_save=args.buffer_save,
118
+ no_eof=no_eof, buffer_path=args.buffer_path) # type: ignore[var-annotated]
119
+
120
+ if args.verbose:
121
+ try:
122
+ print(emoji.emojize(f":police_car_light: Loading file {extractor.input!r}"))
123
+ except (UnicodeEncodeError, NameError): # may trigger if emoji not installed
124
+ print(f"[*] Loading file {extractor.input!r}")
125
+
126
+ for _ in extractor:
127
+ pass
128
+
129
+ try:
130
+ print(emoji.emojize(f":beer_mug: Report file{'s' if args.files else ''} stored in {extractor.output!r}"))
131
+ except (UnicodeEncodeError, NameError): # may trigger if emoji not installed
132
+ print(f"[*] Report file{'s' if args.files else ''} stored in {extractor.output!r}")
133
+
134
+ return 0
135
+
136
+
137
+ if __name__ == '__main__':
138
+ sys.exit(main())
pcapkit/all.py ADDED
@@ -0,0 +1,136 @@
1
+ # -*- coding: utf-8 -*-
2
+ # pylint: disable=unused-import,unused-wildcard-import,wildcard-import
3
+ """Library Index
4
+ ===================
5
+
6
+ .. module:: pcapkit.all
7
+
8
+ :mod:`pcapkit` has defined various and numerous functions
9
+ and classes, which have different features and purposes.
10
+ To make a simple index for this library, :mod:`pcapkit.all`
11
+ contains all things from :mod:`pcapkit`.
12
+
13
+ """
14
+ from pcapkit import const
15
+ from pcapkit.corekit import *
16
+ from pcapkit.dumpkit import *
17
+ from pcapkit.foundation import *
18
+ from pcapkit.interface import *
19
+ from pcapkit.protocols import *
20
+ from pcapkit.toolkit import *
21
+ from pcapkit.utilities import * # pylint: disable=redefined-builtin
22
+
23
+ #from pcapkit import vendor
24
+
25
+ # tools for Scapy engine
26
+ from pcapkit.toolkit.scapy import packet2chain as scapy_packet2chain # isort: skip
27
+ from pcapkit.toolkit.scapy import packet2dict as scapy_packet2dict # isort: skip
28
+ from pcapkit.toolkit.scapy import ipv4_reassembly as scapy_ipv4_reassembly # isort: skip
29
+ from pcapkit.toolkit.scapy import ipv6_reassembly as scapy_ipv6_reassembly # isort: skip
30
+ from pcapkit.toolkit.scapy import tcp_reassembly as scapy_tcp_reassembly # isort: skip
31
+ from pcapkit.toolkit.scapy import tcp_traceflow as scapy_tcp_traceflow # isort: skip
32
+
33
+ # tools for DPKT engine
34
+ from pcapkit.toolkit.dpkt import ipv6_hdr_len as dpkt_ipv6_hdr_len # isort: skip
35
+ from pcapkit.toolkit.dpkt import packet2chain as dpkt_packet2chain # isort: skip
36
+ from pcapkit.toolkit.dpkt import packet2dict as dpkt_packet2dict # isort: skip
37
+ from pcapkit.toolkit.dpkt import ipv4_reassembly as dpkt_ipv4_reassembly # isort: skip
38
+ from pcapkit.toolkit.dpkt import ipv6_reassembly as dpkt_ipv6_reassembly # isort: skip
39
+ from pcapkit.toolkit.dpkt import tcp_reassembly as dpkt_tcp_reassembly # isort: skip
40
+ from pcapkit.toolkit.dpkt import tcp_traceflow as dpkt_tcp_traceflow # isort: skip
41
+
42
+ # tools for PyShark engine
43
+ from pcapkit.toolkit.pyshark import packet2dict as pyshark_packet2dict # isort: skip
44
+ from pcapkit.toolkit.pyshark import tcp_traceflow as pyshark_tcp_traceflow # isort: skip
45
+
46
+ __all__ = [
47
+ # pcapkit.const
48
+ 'const',
49
+
50
+ # # pcapkit.vendor
51
+ # 'vendor',
52
+
53
+ # pcapkit.corekit
54
+ 'Info', # Info Class
55
+ 'ProtoChain', # ProtoChain
56
+ 'VersionInfo', # Version
57
+ 'NumberField', 'Int32Field', 'UInt32Field', # numeric protocol fields
58
+ 'Int16Field', 'UInt16Field', 'Int64Field', 'UInt64Field',
59
+ 'Int8Field', 'UInt8Field', 'EnumField',
60
+ 'BytesField', 'StringField', 'BitField', # text protocol fields
61
+ 'PaddingField',
62
+ 'ConditionalField', 'PayloadField', 'SchemaField', # misc protocol fields
63
+ 'ForwardMatchField', 'NoValueField',
64
+ 'IPv4AddressField', 'IPv6AddressField', # IP address protocol fields
65
+ 'IPv4InterfaceField', 'IPv6InterfaceField',
66
+ 'ListField', 'OptionField', # container protocol fields
67
+ 'SeekableReader', # Seekable Reader
68
+
69
+ # pcapkit.dumpkit
70
+ 'PCAPIO', # PCAP Dumper
71
+ 'NotImplementedIO', # Simulated I/O
72
+
73
+ # pcapkit.foundation
74
+ 'Extractor', # Extraction
75
+ 'TCP_TraceFlow', # Trace Flow
76
+
77
+ # pcapkit.foundation.reassembly
78
+ 'IPv4_Reassembly', 'IPv6_Reassembly', # IP Reassembly
79
+ 'TCP_Reassembly', # TCP Reassembly
80
+
81
+ # pcapkit.foundation.registry
82
+ 'register_protocol',
83
+ 'register_linktype',
84
+ 'register_pcap', 'register_pcapng',
85
+ 'register_ethertype',
86
+ 'register_transtype',
87
+ 'register_ipv4_option', 'register_hip_parameter', 'register_hopopt_option',
88
+ 'register_ipv6_opts_option', 'register_ipv6_route_routing',
89
+ 'register_mh_message', 'register_mh_option', 'register_mh_extension',
90
+ 'register_apptype',
91
+ 'register_tcp', 'register_udp',
92
+ 'register_tcp_option', 'register_tcp_mp_option',
93
+ 'register_http_frame',
94
+ 'register_pcapng_block', 'register_pcapng_option', 'register_pcapng_secrets',
95
+ 'register_pcapng_record',
96
+ 'register_extractor_engine',
97
+ 'register_dumper',
98
+ 'register_extractor_dumper', 'register_traceflow_dumper',
99
+
100
+ # pcapkit.interface
101
+ 'extract', 'reassemble', 'trace', # Interface Functions
102
+ 'TREE', 'JSON', 'PLIST', 'PCAP', # Format Macros
103
+ 'LINK', 'INET', 'TRANS', 'APP', 'RAW', # Layer Macros
104
+ 'DPKT', 'Scapy', 'PyShark', 'PCAPKit', # Engine Macros
105
+
106
+ # pcapkit.protocols
107
+ 'LINKTYPE', 'ETHERTYPE', 'TRANSTYPE', 'APPTYPE', # Protocol Numbers
108
+ 'Header', 'Frame', # PCAP Headers
109
+ 'NoPayload', # No Payload
110
+ 'Raw', # Raw Packet
111
+ 'ARP', 'DRARP', 'Ethernet', 'InARP', 'L2TP', 'OSPF', 'RARP', 'VLAN',
112
+ # Link Layer
113
+ 'AH', 'IP', 'IPsec', 'IPv4', 'IPv6', 'IPX', # Internet Layer
114
+ 'HIP', 'HOPOPT', 'IPv6_Frag', 'IPv6_Opts', 'IPv6_Route', 'MH',
115
+ # IPv6 Extension Header
116
+ 'TCP', 'UDP', # Transport Layer
117
+ 'FTP', 'FTP_DATA', # Application Layer
118
+ 'HTTP',
119
+ 'Schema', 'schema', # Protocol Schema
120
+ 'Data', 'data', # Protocol Data
121
+
122
+ # pcapkit.toolkit
123
+ 'ipv4_reassembly', 'ipv6_reassembly', 'tcp_reassembly', 'tcp_traceflow',
124
+ 'pcapng_ipv4_reassembly', 'pcapng_ipv6_reassembly', 'pcapng_tcp_reassembly', 'pcapng_tcp_traceflow',
125
+ 'pcapng_block2frame', # default engine
126
+ 'dpkt_ipv6_hdr_len', 'dpkt_packet2chain', 'dpkt_packet2dict',
127
+ 'dpkt_ipv4_reassembly', 'dpkt_ipv6_reassembly', 'dpkt_tcp_reassembly', 'dpkt_tcp_traceflow',
128
+ # DPKT engine
129
+ 'pyshark_packet2dict', 'pyshark_tcp_traceflow', # PyShark engine
130
+ 'scapy_packet2chain', 'scapy_packet2dict',
131
+ 'scapy_ipv4_reassembly', 'scapy_ipv6_reassembly', 'scapy_tcp_reassembly', 'scapy_tcp_traceflow',
132
+ # Scapy engine
133
+
134
+ # pcapkit.utilities
135
+ #'beholder_ng', 'seekset_ng', # Decorators
136
+ ]
@@ -0,0 +1,81 @@
1
+ # -*- coding: utf-8 -*-
2
+ # pylint: disable=unused-import, unused-wildcard-import
3
+ """Constant Enumerations
4
+ ===========================
5
+
6
+ This module contains all constant enumerations of :mod:`pcapkit`, which are
7
+ automatically generated from the :mod:`pcapkit.vendor` module.
8
+
9
+ """
10
+
11
+ # IANA registration
12
+ from pcapkit.const.reg import *
13
+
14
+ # Miscellanous
15
+ from pcapkit.const.pcapng import *
16
+
17
+ # per protocol
18
+ from pcapkit.const.arp import *
19
+ from pcapkit.const.ftp import *
20
+ from pcapkit.const.hip import *
21
+ from pcapkit.const.http import *
22
+ from pcapkit.const.ipv4 import *
23
+ from pcapkit.const.ipv6 import *
24
+ from pcapkit.const.ipx import *
25
+ from pcapkit.const.l2tp import *
26
+ from pcapkit.const.mh import *
27
+ from pcapkit.const.ospf import *
28
+ from pcapkit.const.tcp import *
29
+ from pcapkit.const.vlan import *
30
+
31
+ __all__ = [
32
+ # Protocol Registration
33
+ 'ETHERTYPE', 'LINKTYPE', 'TRANSTYPE', 'APPTYPE',
34
+ # ARP
35
+ 'ARP_Hardware', 'ARP_Operation',
36
+ # FTP
37
+ 'FTP_Command', 'FTP_ReturnCode',
38
+ # HIP
39
+ 'HIP_Certificate', 'HIP_Cipher', 'HIP_DITypes', 'HIP_ECDSACurve', 'HIP_ECDSALowCurve',
40
+ 'HIP_ESPTransformSuite', 'HIP_Group', 'HIP_HIAlgorithm', 'HIP_HITSuite', 'HIP_NATTraversal',
41
+ 'HIP_NotifyMessage', 'HIP_Packet', 'HIP_Parameter', 'HIP_Registration', 'HIP_RegistrationFailure',
42
+ 'HIP_Suite', 'HIP_Transport', 'HIP_EdDSACurve',
43
+ # HTTP
44
+ 'HTTP_ErrorCode', 'HTTP_Frame', 'HTTP_Method', 'HTTP_Setting', 'HTTP_Status',
45
+ # IPv4
46
+ 'IPv4_ClassificationLevel', 'IPv4_OptionClass', 'IPv4_OptionNumber', 'IPv4_ProtectionAuthority',
47
+ 'IPv4_QSFunction', 'IPv4_RouterAlert', 'IPv4_ToSDelay', 'IPv4_ToSECN', 'IPv4_ToSPrecedence',
48
+ 'IPv4_ToSReliability', 'IPv4_ToSThroughput', 'IPv4_TSFlag',
49
+ # IPv6
50
+ 'IPv6_ExtensionHeader', 'IPv6_Option', 'IPv6_QSFunction', 'IPv6_RouterAlert', 'IPv6_Routing',
51
+ 'IPv6_SeedID', 'IPv6_SMFDPDMode', 'IPv6_TaggerID', 'IPv6_OptionAction',
52
+ # IPX
53
+ 'IPX_Packet', 'IPX_Socket',
54
+ # L2TP
55
+ 'L2TP_Type',
56
+ # MH
57
+ 'MH_Packet', 'MH_Option', 'MH_DNSStatusCode', 'MH_ACKStatusCode',
58
+ 'MH_MNIDSubtype', 'MH_StatusCode', 'MH_EnumeratingAlgorithm',
59
+ 'MH_AuthSubtype', 'MH_HandoffType', 'MH_AccessType',
60
+ 'MH_BindingUpdateFlag', 'MH_BindingACKFlag', 'MH_DSMIPv6HomeAddress',
61
+ 'MH_BindingRevocation', 'MH_RevocationTrigger', 'MH_RevocationStatusCode',
62
+ 'MH_HomeAddressReply', 'MH_DHCPSupportMode', 'MH_HandoverInitiateFlag',
63
+ 'MH_HandoverACKFlag', 'MH_HandoverACKStatus', 'MH_HandoverACKStatus',
64
+ 'MH_FlowIDStatus', 'MH_FlowIDSuboption', 'MH_TrafficSelector',
65
+ 'MH_MNGroupID', 'MH_DSMIP6TLSPacket', 'MH_ANISuboption', 'MH_OperatorID',
66
+ 'MH_UpdateNotificationReason', 'MH_UpdateNotificationACKStatus',
67
+ 'MH_FlowBindingType', 'MH_FlowBindingIndicationTrigger',
68
+ 'MH_FlowBindingACKStatus', 'MH_FlowBindingAction', 'MH_QoSAttribute',
69
+ 'MH_LMAControlledMAGSuboption', 'MH_LLACode', 'MH_CGAType',
70
+ 'MH_CGAExtension', 'MH_CGASec', 'MH_BindingError',
71
+ # OSPF
72
+ 'OSPF_Authentication', 'OSPF_Packet',
73
+ # TCP
74
+ 'TCP_Checksum', 'TCP_Option', 'TCP_MPTCPOption', 'TCP_Flags',
75
+ # VLAN
76
+ 'VLAN_PriorityLevel',
77
+ # PCAPNG
78
+ 'PCAPNG_BlockType', 'PCAPNG_OptionType', 'PCAPNG_HashAlgorithm',
79
+ 'PCAPNG_VerdictType', 'PCAPNG_RecordType', 'PCAPNG_SecretsType',
80
+ 'PCAPNG_FilterType',
81
+ ]
@@ -0,0 +1,25 @@
1
+ # -*- coding: utf-8 -*-
2
+ # pylint: disable=unused-import
3
+ """:class:`~pcapkit.protocols.link.arp.ARP` Constant Enumerations
4
+ =====================================================================
5
+
6
+ This module contains all constant enumerations of :class:`~pcapkit.protocols.link.arp.ARP`
7
+ and :class:`~pcapkit.protocols.link.rarp.RARP` implementations. Available
8
+ enumerations include:
9
+
10
+ .. list-table::
11
+
12
+ * - :class:`ARP_Hardware <pcapkit.const.arp.hardware.Hardware>`
13
+ - ARP Hardware Types [*]_
14
+ * - :class:`ARP_Operation <pcapkit.const.arp.operation.Operation>`
15
+ - Operation Codes [*]_
16
+
17
+ .. [*] https://www.iana.org/assignments/arp-parameters/arp-parameters.xhtml#arp-parameters-2
18
+ .. [*] https://www.iana.org/assignments/arp-parameters/arp-parameters.xhtml#arp-parameters-1
19
+
20
+ """
21
+
22
+ from pcapkit.const.arp.hardware import Hardware as ARP_Hardware
23
+ from pcapkit.const.arp.operation import Operation as ARP_Operation
24
+
25
+ __all__ = ['ARP_Hardware', 'ARP_Operation']
@@ -0,0 +1,181 @@
1
+ # -*- coding: utf-8 -*-
2
+ # pylint: disable=line-too-long,consider-using-f-string
3
+ """Hardware Types
4
+ ====================
5
+
6
+ .. module:: pcapkit.const.arp.hardware
7
+
8
+ This module contains the constant enumeration for **Hardware Types**,
9
+ which is automatically generated from :class:`pcapkit.vendor.arp.hardware.Hardware`.
10
+
11
+ """
12
+
13
+ from aenum import IntEnum, extend_enum
14
+
15
+ __all__ = ['Hardware']
16
+
17
+
18
+ class Hardware(IntEnum):
19
+ """[Hardware] Hardware Types [:rfc:`826`][:rfc:`5494`]"""
20
+
21
+ #: Reserved [:rfc:`5494`]
22
+ Reserved_0 = 0
23
+
24
+ #: Ethernet (10Mb) [Jon Postel]
25
+ Ethernet = 1
26
+
27
+ #: Experimental Ethernet (3Mb) [Jon Postel]
28
+ Experimental_Ethernet = 2
29
+
30
+ #: Amateur Radio AX.25 [Philip Koch]
31
+ Amateur_Radio_AX_25 = 3
32
+
33
+ #: Proteon ProNET Token Ring [Avri Doria]
34
+ Proteon_ProNET_Token_Ring = 4
35
+
36
+ #: Chaos [Gill Pratt]
37
+ Chaos = 5
38
+
39
+ #: IEEE 802 Networks [Jon Postel]
40
+ IEEE_802_Networks = 6
41
+
42
+ #: ARCNET [:rfc:`1201`]
43
+ ARCNET = 7
44
+
45
+ #: Hyperchannel [Jon Postel]
46
+ Hyperchannel = 8
47
+
48
+ #: Lanstar [Tom Unger]
49
+ Lanstar = 9
50
+
51
+ #: Autonet Short Address [Mike Burrows]
52
+ Autonet_Short_Address = 10
53
+
54
+ #: LocalTalk [Joyce K Reynolds]
55
+ LocalTalk = 11
56
+
57
+ #: LocalNet (IBM PCNet or SYTEK LocalNET) [Joseph Murdock]
58
+ LocalNet = 12
59
+
60
+ #: Ultra link [Rajiv Dhingra]
61
+ Ultra_link = 13
62
+
63
+ #: SMDS [George Clapp]
64
+ SMDS = 14
65
+
66
+ #: Frame Relay [Andy Malis]
67
+ Frame_Relay = 15
68
+
69
+ #: Asynchronous Transmission Mode (ATM) [JXB2]
70
+ Asynchronous_Transmission_Mode_16 = 16
71
+
72
+ #: HDLC [Jon Postel]
73
+ HDLC = 17
74
+
75
+ #: Fibre Channel [:rfc:`4338`]
76
+ Fibre_Channel = 18
77
+
78
+ #: Asynchronous Transmission Mode (ATM) [:rfc:`2225`]
79
+ Asynchronous_Transmission_Mode_19 = 19
80
+
81
+ #: Serial Line [Jon Postel]
82
+ Serial_Line = 20
83
+
84
+ #: Asynchronous Transmission Mode (ATM) [Mike Burrows]
85
+ Asynchronous_Transmission_Mode_21 = 21
86
+
87
+ #: MIL-STD-188-220 [Herb Jensen]
88
+ MIL_STD_188_220 = 22
89
+
90
+ #: Metricom [Jonathan Stone]
91
+ Metricom = 23
92
+
93
+ #: IEEE 1394.1995 [Myron Hattig]
94
+ IEEE_1394_1995 = 24
95
+
96
+ #: MAPOS [Mitsuru Maruyama][:rfc:`2176`]
97
+ MAPOS = 25
98
+
99
+ #: Twinaxial [Marion Pitts]
100
+ Twinaxial = 26
101
+
102
+ #: EUI-64 [Kenji Fujisawa]
103
+ EUI_64 = 27
104
+
105
+ #: HIPARP [Jean Michel Pittet]
106
+ HIPARP = 28
107
+
108
+ #: IP and ARP over ISO 7816-3 [Scott Guthery]
109
+ IP_and_ARP_over_ISO_7816_3 = 29
110
+
111
+ #: ARPSec [Jerome Etienne]
112
+ ARPSec = 30
113
+
114
+ #: IPsec tunnel [:rfc:`3456`]
115
+ IPsec_tunnel = 31
116
+
117
+ #: InfiniBand (TM) [:rfc:`4391`]
118
+ InfiniBand = 32
119
+
120
+ #: TIA-102 Project 25 Common Air Interface (CAI) [Jeff Anderson,
121
+ #: Telecommunications Industry of America (TIA) TR-8.5 Formulating Group,
122
+ #: <cja015&motorola.com>, June 2004]
123
+ TIA_102_Project_25_Common_Air_Interface = 33
124
+
125
+ #: Wiegand Interface [Scott Guthery 2]
126
+ Wiegand_Interface = 34
127
+
128
+ #: Pure IP [Inaky Perez-Gonzalez]
129
+ Pure_IP = 35
130
+
131
+ #: HW_EXP1 [:rfc:`5494`]
132
+ HW_EXP1 = 36
133
+
134
+ #: HFI [Tseng-Hui Lin]
135
+ HFI = 37
136
+
137
+ #: Unified Bus (UB) [Wei Pan]
138
+ Unified_Bus = 38
139
+
140
+ #: HW_EXP2 [:rfc:`5494`]
141
+ HW_EXP2 = 256
142
+
143
+ #: AEthernet [Geoffroy Gramaize]
144
+ AEthernet = 257
145
+
146
+ #: Reserved [:rfc:`5494`]
147
+ Reserved_65535 = 65535
148
+
149
+ @staticmethod
150
+ def get(key: 'int | str', default: 'int' = -1) -> 'Hardware':
151
+ """Backport support for original codes.
152
+
153
+ Args:
154
+ key: Key to get enum item.
155
+ default: Default value if not found.
156
+
157
+ :meta private:
158
+ """
159
+ if isinstance(key, int):
160
+ return Hardware(key)
161
+ if key not in Hardware._member_map_: # pylint: disable=no-member
162
+ return extend_enum(Hardware, key, default)
163
+ return Hardware[key] # type: ignore[misc]
164
+
165
+ @classmethod
166
+ def _missing_(cls, value: 'int') -> 'Hardware':
167
+ """Lookup function used when value is not found.
168
+
169
+ Args:
170
+ value: Value to get enum item.
171
+
172
+ """
173
+ if not (isinstance(value, int) and 0 <= value <= 65535):
174
+ raise ValueError('%r is not a valid %s' % (value, cls.__name__))
175
+ if 39 <= value <= 255:
176
+ #: Unassigned
177
+ return extend_enum(cls, 'Unassigned_%d' % value, value)
178
+ if 258 <= value <= 65534:
179
+ #: Unassigned
180
+ return extend_enum(cls, 'Unassigned_%d' % value, value)
181
+ return super()._missing_(value)