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
@@ -0,0 +1,925 @@
1
+ # -*- coding: utf-8 -*-
2
+ """data models for PCAP-NG file format"""
3
+
4
+ import datetime
5
+ import decimal
6
+ from typing import TYPE_CHECKING
7
+
8
+ from pcapkit.corekit.infoclass import info_final
9
+ from pcapkit.corekit.multidict import MultiDict
10
+ from pcapkit.protocols.data.data import Data
11
+ from pcapkit.protocols.data.protocol import Protocol
12
+ from pcapkit.utilities.compat import localcontext
13
+
14
+ __all__ = [
15
+ 'PCAPNG',
16
+
17
+ 'Option', 'UnknownOption',
18
+ 'EndOfOption', 'CommentOption', 'CustomOption',
19
+ 'IF_NameOption', 'IF_DescriptionOption', 'IF_IPv4AddrOption', 'IF_IPv6AddrOption',
20
+ 'IF_MACAddrOption', 'IF_EUIAddrOption', 'IF_SpeedOption', 'IF_TSResolOption',
21
+ 'IF_TZoneOption', 'IF_FilterOption', 'IF_OSOption', 'IF_FCSLenOption',
22
+ 'IF_TSOffsetOption', 'IF_HardwareOption', 'IF_TxSpeedOption', 'IF_RxSpeedOption',
23
+ 'EPB_FlagsOption', 'EPB_HashOption', 'EPB_DropCountOption', 'EPB_PacketIDOption',
24
+ 'EPB_QueueOption', 'EPB_VerdictOption',
25
+ 'NS_DNSNameOption', 'NS_DNSIP4AddrOption', 'NS_DNSIP6AddrOption',
26
+ 'ISB_StartTimeOption', 'ISB_EndTimeOption', 'ISB_IFRecvOption', 'ISB_IFDropOption',
27
+ 'ISB_FilterAcceptOption', 'ISB_OSDropOption', 'ISB_UsrDelivOption',
28
+ 'PACK_FlagsOption', 'PACK_HashOption',
29
+
30
+ 'NameResolutionRecord', 'UnknownRecord', 'EndRecord', 'IPv4Record', 'IPv6Record',
31
+
32
+ 'DSBSecrets', 'UnknownSecrets', 'TLSKeyLog', 'WireGuardKeyLog', 'ZigBeeNWKKey',
33
+ 'ZigBeeAPSKey',
34
+
35
+ 'UnknownBlock', 'SectionHeaderBlock', 'InterfaceDescriptionBlock',
36
+ 'EnhancedPacketBlock', 'SimplePacketBlock', 'NameResolutionBlock',
37
+ 'InterfaceStatisticsBlock', 'SystemdJournalExportBlock', 'DecryptionSecretsBlock',
38
+ 'CustomBlock', 'PacketBlock',
39
+ ]
40
+
41
+ if TYPE_CHECKING:
42
+ from datetime import datetime as dt_type
43
+ from datetime import timezone as dt_timezone
44
+ from decimal import Decimal
45
+ from ipaddress import IPv4Address, IPv4Interface, IPv6Address, IPv6Interface
46
+
47
+ from typing_extensions import Literal
48
+
49
+ from pcapkit.const.pcapng.block_type import BlockType as Enum_BlockType
50
+ from pcapkit.const.pcapng.filter_type import FilterType as Enum_FilterType
51
+ from pcapkit.const.pcapng.hash_algorithm import HashAlgorithm as Enum_HashAlgorithm
52
+ from pcapkit.const.pcapng.option_type import OptionType as Enum_OptionType
53
+ from pcapkit.const.pcapng.record_type import RecordType as Enum_RecordType
54
+ from pcapkit.const.pcapng.secrets_type import SecretsType as Enum_SecretsType
55
+ from pcapkit.const.pcapng.verdict_type import VerdictType as Enum_VerdictType
56
+ from pcapkit.const.reg.linktype import LinkType as Enum_LinkType
57
+ from pcapkit.corekit.multidict import OrderedMultiDict
58
+ from pcapkit.corekit.version import VersionInfo
59
+ from pcapkit.protocols.misc.pcapng import (PacketDirection, PacketReception, TLSKeyLabel,
60
+ WireGuardKeyLabel)
61
+
62
+
63
+ class PCAPNG(Protocol):
64
+ """Data model for PCAP-NG file blocks."""
65
+
66
+ #: Block type.
67
+ type: 'Enum_BlockType'
68
+ #: Block total length.
69
+ length: 'int'
70
+
71
+
72
+ @info_final
73
+ class UnknownBlock(PCAPNG):
74
+ """Data model for unknown PCAP-NG file blocks."""
75
+
76
+ #: Block body.
77
+ body: 'bytes'
78
+
79
+ if TYPE_CHECKING:
80
+ def __init__(self, type: 'Enum_BlockType', length: 'int', body: 'bytes') -> None: ...
81
+
82
+
83
+ class Option(Data):
84
+ """Data model for PCAP-NG file options."""
85
+
86
+ #: Option type.
87
+ type: 'Enum_OptionType'
88
+ #: Option data length.
89
+ length: 'int'
90
+
91
+
92
+ @info_final
93
+ class UnknownOption(Option):
94
+ """Data model for unknown PCAP-NG file options."""
95
+
96
+ #: Option data.
97
+ data: 'bytes'
98
+
99
+ if TYPE_CHECKING:
100
+ def __init__(self, type: 'Enum_OptionType', length: 'int', data: 'bytes') -> None: ...
101
+
102
+
103
+ @info_final
104
+ class EndOfOption(Option):
105
+ """Data model for PCAP-NG file ``opt_endofopt`` options."""
106
+
107
+ if TYPE_CHECKING:
108
+ def __init__(self, type: 'Enum_OptionType', length: 'int') -> None: ...
109
+
110
+
111
+ @info_final
112
+ class CommentOption(Option):
113
+ """Data model for PCAP-NG file ``opt_comment`` options."""
114
+
115
+ #: Comment text.
116
+ comment: 'str'
117
+
118
+ if TYPE_CHECKING:
119
+ def __init__(self, type: 'Enum_OptionType', length: 'int', comment: 'str') -> None: ...
120
+
121
+
122
+ @info_final
123
+ class CustomOption(Option):
124
+ """Data model for PCAP-NG file ``opt_custom`` options."""
125
+
126
+ #: Private enterprise number (PEN).
127
+ pen: 'int'
128
+ #: Custom data.
129
+ data: 'bytes'
130
+
131
+ if TYPE_CHECKING:
132
+ def __init__(self, type: 'Enum_OptionType', length: 'int', pen: 'int', data: 'bytes') -> None: ...
133
+
134
+
135
+ @info_final
136
+ class SectionHeaderBlock(PCAPNG):
137
+ """Data model for PCAP-NG Section Header Block (SHB)."""
138
+
139
+ #: Byte order.
140
+ byteorder: 'Literal["big", "little"]'
141
+ #: Version number.
142
+ version: 'VersionInfo'
143
+ #: Section length.
144
+ section_length: 'int'
145
+ #: Options.
146
+ options: 'OrderedMultiDict[Enum_OptionType, Option]'
147
+
148
+ if TYPE_CHECKING:
149
+ def __init__(self, type: 'Enum_BlockType', length: 'int', byteorder: 'Literal["big", "little"]',
150
+ version: 'VersionInfo', # pylint: disable=unused-argument
151
+ section_length: 'int', options: 'OrderedMultiDict[Enum_OptionType, Option]') -> None: ...
152
+
153
+
154
+ @info_final
155
+ class IF_NameOption(Option):
156
+ """Data model for PCAP-NG file ``if_name`` options."""
157
+
158
+ #: Interface name.
159
+ name: 'str'
160
+
161
+ if TYPE_CHECKING:
162
+ def __init__(self, type: 'Enum_OptionType', length: 'int', name: 'str') -> None: ...
163
+
164
+
165
+ @info_final
166
+ class IF_DescriptionOption(Option):
167
+ """Data model for PCAP-NG file ``if_description`` options."""
168
+
169
+ #: Interface description.
170
+ description: 'str'
171
+
172
+
173
+ @info_final
174
+ class IF_IPv4AddrOption(Option):
175
+ """Data model for PCAP-NG file ``if_IPv4addr`` options."""
176
+
177
+ #: IPv4 interface.
178
+ interface: 'IPv4Interface'
179
+
180
+ if TYPE_CHECKING:
181
+ def __init__(self, type: 'Enum_OptionType', length: 'int', interface: 'IPv4Interface') -> None: ...
182
+
183
+
184
+ @info_final
185
+ class IF_IPv6AddrOption(Option):
186
+ """Data model for PCAP-NG file ``if_IPv6addr`` options."""
187
+
188
+ #: IPv6 interface.
189
+ interface: 'IPv6Interface'
190
+
191
+ if TYPE_CHECKING:
192
+ def __init__(self, type: 'Enum_OptionType', length: 'int', interface: 'IPv6Interface') -> None: ...
193
+
194
+
195
+ @info_final
196
+ class IF_MACAddrOption(Option):
197
+ """Data model for PCAP-NG file ``if_MACaddr`` options."""
198
+
199
+ #: MAC address.
200
+ interface: 'str'
201
+
202
+ if TYPE_CHECKING:
203
+ def __init__(self, type: 'Enum_OptionType', length: 'int', interface: 'str') -> None: ...
204
+
205
+
206
+ @info_final
207
+ class IF_EUIAddrOption(Option):
208
+ """Data model for PCAP-NG file ``if_EUIaddr`` options."""
209
+
210
+ #: EUI address.
211
+ interface: 'str'
212
+
213
+ if TYPE_CHECKING:
214
+ def __init__(self, type: 'Enum_OptionType', length: 'int', interface: 'str') -> None: ...
215
+
216
+
217
+ @info_final
218
+ class IF_SpeedOption(Option):
219
+ """Data model for PCAP-NG file ``if_speed`` options."""
220
+
221
+ #: Interface speed, in bits per second.
222
+ speed: 'int'
223
+
224
+ if TYPE_CHECKING:
225
+ def __init__(self, type: 'Enum_OptionType', length: 'int', speed: 'int') -> None: ...
226
+
227
+
228
+ @info_final
229
+ class IF_TSResolOption(Option):
230
+ """Data model for PCAP-NG file ``if_tsresol`` options."""
231
+
232
+ #: Time stamp resolution, in units per second.
233
+ resolution: 'int'
234
+
235
+ if TYPE_CHECKING:
236
+ def __init__(self, type: 'Enum_OptionType', length: 'int', resolution: 'int') -> None: ...
237
+
238
+
239
+ @info_final
240
+ class IF_TZoneOption(Option):
241
+ """Data model for PCAP-NG file ``if_tzone`` options."""
242
+
243
+ #: Time zone.
244
+ timezone: 'dt_timezone'
245
+
246
+ if TYPE_CHECKING:
247
+ def __init__(self, type: 'Enum_OptionType', length: 'int', timezone: 'dt_timezone') -> None: ...
248
+
249
+
250
+ @info_final
251
+ class IF_FilterOption(Option):
252
+ """Data model for PCAP-NG file ``if_filter`` options."""
253
+
254
+ #: Filter code.
255
+ code: 'Enum_FilterType'
256
+ #: Filter expression.
257
+ expression: 'bytes'
258
+
259
+ if TYPE_CHECKING:
260
+ def __init__(self, type: 'Enum_OptionType', length: 'int', code: 'Enum_FilterType',
261
+ expression: 'bytes') -> None: ...
262
+
263
+
264
+ @info_final
265
+ class IF_OSOption(Option):
266
+ """Data model for PCAP-NG file ``if_os`` options."""
267
+
268
+ #: Operating system.
269
+ os: 'str'
270
+
271
+ if TYPE_CHECKING:
272
+ def __init__(self, type: 'Enum_OptionType', length: 'int', os: 'str') -> None: ...
273
+
274
+
275
+ @info_final
276
+ class IF_FCSLenOption(Option):
277
+ """Data model for PCAP-NG file ``if_fcslen`` options."""
278
+
279
+ #: FCS length.
280
+ fcs_length: 'int'
281
+
282
+ if TYPE_CHECKING:
283
+ def __init__(self, type: 'Enum_OptionType', length: 'int', fcs_length: 'int') -> None: ...
284
+
285
+
286
+ @info_final
287
+ class IF_TSOffsetOption(Option):
288
+ """Data model for PCAP-NG file ``if_tsoffset`` options."""
289
+
290
+ #: Timestamp offset (in seconds).
291
+ offset: 'int'
292
+
293
+ if TYPE_CHECKING:
294
+ def __init__(self, type: 'Enum_OptionType', length: 'int', offset: 'int') -> None: ...
295
+
296
+
297
+ @info_final
298
+ class IF_HardwareOption(Option):
299
+ """Data model for PCAP-NG file ``if_hardware`` options."""
300
+
301
+ #: Hardware information.
302
+ hardware: 'str'
303
+
304
+ if TYPE_CHECKING:
305
+ def __init__(self, type: 'Enum_OptionType', length: 'int', hardware: 'str') -> None: ...
306
+
307
+
308
+ @info_final
309
+ class IF_TxSpeedOption(Option):
310
+ """Data model for PCAP-NG file ``if_txspeed`` options."""
311
+
312
+ #: Interface transmit speed (in bits per second).
313
+ speed: 'int'
314
+
315
+ if TYPE_CHECKING:
316
+ def __init__(self, type: 'Enum_OptionType', length: 'int', speed: 'int') -> None: ...
317
+
318
+
319
+ @info_final
320
+ class IF_RxSpeedOption(Option):
321
+ """Data model for PCAP-NG file ``if_rxspeed`` options."""
322
+
323
+ #: Interface receive speed (in bits per second).
324
+ speed: 'int'
325
+
326
+ if TYPE_CHECKING:
327
+ def __init__(self, type: 'Enum_OptionType', length: 'int', speed: 'int') -> None: ...
328
+
329
+
330
+ @info_final
331
+ class InterfaceDescriptionBlock(PCAPNG):
332
+ """Data model for PCAP-NG Interface Description Block (IDB)."""
333
+
334
+ #: Link type.
335
+ linktype: 'Enum_LinkType'
336
+ #: Snap length.
337
+ snaplen: 'int'
338
+ #: Options.
339
+ options: 'OrderedMultiDict[Enum_OptionType, Option]'
340
+
341
+ if TYPE_CHECKING:
342
+ def __init__(self, type: 'Enum_BlockType', length: 'int', linktype: 'Enum_LinkType',
343
+ snaplen: 'int', options: 'OrderedMultiDict[Enum_OptionType, Option]') -> None: ...
344
+
345
+
346
+ @info_final
347
+ class EPB_FlagsOption(Option):
348
+ """Data model for PCAP-NG file ``epb_flags`` options."""
349
+
350
+ #: Inbound / Outbound packet.
351
+ direction: 'PacketDirection'
352
+ #: Reception type.
353
+ reception: 'PacketReception'
354
+ #: FCS length.
355
+ fcs_len: 'int'
356
+ #: Link-layer-dependent error - CRC error (bit 24).
357
+ crc_error: 'bool'
358
+ #: Link-layer-dependent error - packet too long error (bit 25).
359
+ too_long: 'bool'
360
+ #: Link-layer-dependent error - packet too short error (bit 26).
361
+ too_short: 'bool'
362
+ #: Link-layer-dependent error - wrong Inter Frame Gap error (bit 27).
363
+ gap_error: 'bool'
364
+ #: Link-layer-dependent error - unaligned frame error (bit 28).
365
+ unaligned_error: 'bool'
366
+ #: Link-layer-dependent error - Start Frame Delimiter error (bit 29).
367
+ delimiter_error: 'bool'
368
+ #: Link-layer-dependent error - preamble error (bit 30).
369
+ preamble_error: 'bool'
370
+ #: Link-layer-dependent error - symbol error (bit 31).
371
+ symbol_error: 'bool'
372
+
373
+ if TYPE_CHECKING:
374
+ def __init__(self, type: 'Enum_OptionType', length: 'int', direction: 'PacketDirection',
375
+ reception: 'PacketReception', fcs_len: 'int', crc_error: 'bool',
376
+ too_long: 'bool', too_short: 'bool', gap_error: 'bool', unaligned_error: 'bool',
377
+ delimiter_error: 'bool', preamble_error: 'bool', symbol_error: 'bool') -> 'None': ...
378
+
379
+
380
+ @info_final
381
+ class EPB_HashOption(Option):
382
+ """Data model for PCAP-NG ``epb_hash`` options."""
383
+
384
+ #: Hash algorithm.
385
+ algorithm: 'Enum_HashAlgorithm'
386
+ #: Hash value.
387
+ hash: 'bytes'
388
+
389
+ if TYPE_CHECKING:
390
+ def __init__(self, type: 'Enum_OptionType', length: 'int', algorithm: 'Enum_HashAlgorithm',
391
+ hash: 'bytes') -> 'None': ...
392
+
393
+
394
+ @info_final
395
+ class EPB_DropCountOption(Option):
396
+ """Data model for PCAP-NG ``epb_dropcount`` options."""
397
+
398
+ #: Number of packets dropped by the interface.
399
+ drop_count: 'int'
400
+
401
+ if TYPE_CHECKING:
402
+ def __init__(self, type: 'Enum_OptionType', length: 'int', drop_count: 'int') -> 'None': ...
403
+
404
+
405
+ @info_final
406
+ class EPB_PacketIDOption(Option):
407
+ """Data model for PCAP-NG ``epb_packetid`` options."""
408
+
409
+ #: Packet ID.
410
+ packet_id: 'int'
411
+
412
+ if TYPE_CHECKING:
413
+ def __init__(self, type: 'Enum_OptionType', length: 'int', packet_id: 'int') -> 'None': ...
414
+
415
+
416
+ @info_final
417
+ class EPB_QueueOption(Option):
418
+ """Data model for PCAP-NG ``epb_queue`` options."""
419
+
420
+ #: Queue ID.
421
+ queue_id: 'int'
422
+
423
+ if TYPE_CHECKING:
424
+ def __init__(self, type: 'Enum_OptionType', length: 'int', queue_id: 'int') -> 'None': ...
425
+
426
+
427
+ @info_final
428
+ class EPB_VerdictOption(Option):
429
+ """Data model for PCAP-NG ``epb_verdict`` options."""
430
+
431
+ #: Verdict type.
432
+ verdict: 'Enum_VerdictType'
433
+ #: Verdict value.
434
+ value: 'bytes'
435
+
436
+ if TYPE_CHECKING:
437
+ def __init__(self, type: 'Enum_OptionType', length: 'int', verdict: 'Enum_VerdictType',
438
+ value: 'bytes') -> 'None': ...
439
+
440
+
441
+ @info_final
442
+ class EnhancedPacketBlock(PCAPNG):
443
+ """Data model for PCAP-NG Enhanced Packet Block (EPB)."""
444
+
445
+ #: Section index.
446
+ section_number: 'int'
447
+ #: Frame index.
448
+ number: 'int'
449
+
450
+ #: Interface ID.
451
+ interface_id: 'int'
452
+ #: Timestamp (in seconds).
453
+ timestamp: 'dt_type'
454
+ #: Timestamp as in UNIX epoch (in seconds).
455
+ timestamp_epoch: 'Decimal'
456
+ #: Captured packet length.
457
+ captured_len: 'int'
458
+ #: Original packet length.
459
+ original_len: 'int'
460
+ #: Options.
461
+ options: 'OrderedMultiDict[Enum_OptionType, Option]'
462
+
463
+ if TYPE_CHECKING:
464
+ #: Protocol chain.
465
+ protocols: 'str'
466
+
467
+ def __init__(self, type: 'Enum_BlockType', length: 'int', section_number: 'int',
468
+ number: 'int', interface_id: 'int', timestamp: 'dt_type',
469
+ timestamp_epoch: 'Decimal', captured_len: 'int', original_len: 'int',
470
+ options: 'OrderedMultiDict[Enum_OptionType, Option]') -> 'None': ...
471
+
472
+
473
+ @info_final
474
+ class SimplePacketBlock(PCAPNG):
475
+ """Data model for PCAP-NG Simple Packet Block (SPB)."""
476
+
477
+ #: Section index.
478
+ section_number: 'int'
479
+ #: Frame index.
480
+ number: 'int'
481
+
482
+ #: Original packet length.
483
+ original_len: 'int'
484
+ #: Captured packet length.
485
+ captured_len: 'int'
486
+
487
+ def __post_init__(self) -> 'None':
488
+ """Post-initialization handling."""
489
+ with localcontext(prec=64):
490
+ self.__update__(
491
+ interface_id=0,
492
+ timestamp=datetime.datetime.fromtimestamp(0, datetime.timezone.utc),
493
+ timestamp_epoch=decimal.Decimal(0),
494
+ )
495
+
496
+ if TYPE_CHECKING:
497
+ #: Protocol chain.
498
+ protocols: 'str'
499
+
500
+ #: Interface ID.
501
+ interface_id: 'int'
502
+ #: Timestamp (in seconds).
503
+ timestamp: 'dt_type'
504
+ #: Timestamp as in UNIX epoch (in seconds).
505
+ timestamp_epoch: 'Decimal'
506
+
507
+ def __init__(self, section_number: 'int', number: 'int', type: 'Enum_BlockType',
508
+ length: 'int', original_len: 'int', captured_len: 'int') -> 'None': ...
509
+
510
+
511
+ class NameResolutionRecord(Data):
512
+ """Data model for PCAP-NG NRB records."""
513
+
514
+ #: Record type.
515
+ type: 'Enum_RecordType'
516
+ #: Record value length.
517
+ length: 'int'
518
+
519
+
520
+ @info_final
521
+ class UnknownRecord(NameResolutionRecord):
522
+ """Data model for PCAP-NG NRB unknown records."""
523
+
524
+ #: Unknown record value.
525
+ data: 'bytes'
526
+
527
+ if TYPE_CHECKING:
528
+ def __init__(self, type: 'Enum_RecordType', length: 'int', data: 'bytes') -> 'None': ...
529
+
530
+
531
+ @info_final
532
+ class EndRecord(NameResolutionRecord):
533
+ """Data model for PCAP-NG ``nrb_record_end`` records."""
534
+
535
+ if TYPE_CHECKING:
536
+ def __init__(self, type: 'Enum_RecordType', length: 'int') -> 'None': ...
537
+
538
+
539
+ @info_final
540
+ class IPv4Record(NameResolutionRecord):
541
+ """Data model for PCAP-NG ``nrb_record_ipv4`` records."""
542
+
543
+ #: IPv4 address.
544
+ ip: 'IPv4Address'
545
+ #: Name resolution data.
546
+ records: 'tuple[str, ...]'
547
+
548
+ if TYPE_CHECKING:
549
+ def __init__(self, type: 'Enum_RecordType', length: 'int', ip: 'IPv4Address',
550
+ records: 'tuple[str, ...]') -> 'None': ...
551
+
552
+
553
+ @info_final
554
+ class IPv6Record(NameResolutionRecord):
555
+ """Data model for PCAP-NG ``nrb_record_ipv6`` records."""
556
+
557
+ #: IPv6 address.
558
+ ip: 'IPv6Address'
559
+ #: Name resolution data.
560
+ records: 'tuple[str, ...]'
561
+
562
+ if TYPE_CHECKING:
563
+ def __init__(self, type: 'Enum_RecordType', length: 'int', ip: 'IPv6Address',
564
+ records: 'tuple[str, ...]') -> 'None': ...
565
+
566
+
567
+ @info_final
568
+ class NS_DNSNameOption(Option):
569
+ """Data model for PCAP-NG ``ns_dnsname`` option."""
570
+
571
+ #: DNS name.
572
+ name: 'str'
573
+
574
+ if TYPE_CHECKING:
575
+ def __init__(self, type: 'Enum_OptionType', length: 'int', name: 'str') -> 'None': ...
576
+
577
+
578
+ @info_final
579
+ class NS_DNSIP4AddrOption(Option):
580
+ """Data model for PCAP-NG ``ns_dnsip4addr`` option."""
581
+
582
+ #: IPv4 address.
583
+ ip: 'IPv4Address'
584
+
585
+ if TYPE_CHECKING:
586
+ def __init__(self, type: 'Enum_OptionType', length: 'int', ip: 'IPv4Address') -> 'None': ...
587
+
588
+
589
+ @info_final
590
+ class NS_DNSIP6AddrOption(Option):
591
+ """Data model for PCAP-NG ``ns_dnsip6addr`` option."""
592
+
593
+ #: IPv6 address.
594
+ ip: 'IPv6Address'
595
+
596
+ if TYPE_CHECKING:
597
+ def __init__(self, type: 'Enum_OptionType', length: 'int', ip: 'IPv6Address') -> 'None': ...
598
+
599
+
600
+ @info_final
601
+ class NameResolutionBlock(PCAPNG):
602
+ """Data model for PCAP-NG Name Resolution Block (NRB)."""
603
+
604
+ #: Records.
605
+ records: 'OrderedMultiDict[Enum_RecordType, NameResolutionRecord]'
606
+ #: Options.
607
+ options: 'OrderedMultiDict[Enum_OptionType, Option]'
608
+
609
+ def __post_init__(self) -> 'None':
610
+ """Post-initialization handling."""
611
+ mapping = MultiDict() # type: MultiDict[IPv4Address | IPv6Address, str]
612
+ reverse_mapping = MultiDict() # type: MultiDict[str, IPv4Address | IPv6Address]
613
+
614
+ for record in self.records:
615
+ if isinstance(record, (IPv4Record, IPv6Record)):
616
+ for name in record.names:
617
+ mapping.add(record.ip, name)
618
+ reverse_mapping.add(name, record.ip)
619
+
620
+ self.__update__(
621
+ mapping=mapping,
622
+ reverse_mapping=reverse_mapping,
623
+ )
624
+
625
+ if TYPE_CHECKING:
626
+ #: Name resolution mapping (IP address -> name).
627
+ mapping: 'MultiDict[IPv4Address | IPv6Address, str]'
628
+ #: Name resolution mapping (name -> IP address).
629
+ reverse_mapping: 'MultiDict[str, IPv4Address | IPv6Address]'
630
+
631
+ def __init__(self, type: 'Enum_BlockType', length: 'int',
632
+ records: 'OrderedMultiDict[Enum_RecordType, NameResolutionRecord]',
633
+ options: 'OrderedMultiDict[Enum_OptionType, Option]') -> 'None': ...
634
+
635
+
636
+ @info_final
637
+ class ISB_StartTimeOption(Option):
638
+ """Data model for PCAP-NG ``isb_starttime`` option."""
639
+
640
+ #: Start time.
641
+ timestamp: 'dt_type'
642
+ #: Start time as in UNIX epoch (in seconds).
643
+ timestamp_epoch: 'Decimal'
644
+
645
+ if TYPE_CHECKING:
646
+ def __init__(self, type: 'Enum_OptionType', length: 'int', timestamp: 'dt_type',
647
+ timestamp_epoch: 'Decimal') -> 'None': ...
648
+
649
+
650
+ @info_final
651
+ class ISB_EndTimeOption(Option):
652
+ """Data model for PCAP-NG ``isb_endtime`` option."""
653
+
654
+ #: End time.
655
+ timestamp: 'dt_type'
656
+ #: End time as in UNIX epoch (in seconds).
657
+ timestamp_epoch: 'Decimal'
658
+
659
+ if TYPE_CHECKING:
660
+ def __init__(self, type: 'Enum_OptionType', length: 'int', timestamp: 'dt_type',
661
+ timestamp_epoch: 'Decimal') -> 'None': ...
662
+
663
+
664
+ @info_final
665
+ class ISB_IFRecvOption(Option):
666
+ """Data model for PCAP-NG ``isb_ifrecv`` option."""
667
+
668
+ #: Number of packets received.
669
+ packets: 'int'
670
+
671
+ if TYPE_CHECKING:
672
+ def __init__(self, type: 'Enum_OptionType', length: 'int', packets: 'int') -> 'None': ...
673
+
674
+
675
+ @info_final
676
+ class ISB_IFDropOption(Option):
677
+ """Data model for PCAP-NG ``isb_ifdrop`` option."""
678
+
679
+ #: Number of packets dropped.
680
+ packets: 'int'
681
+
682
+ if TYPE_CHECKING:
683
+ def __init__(self, type: 'Enum_OptionType', length: 'int', packets: 'int') -> 'None': ...
684
+
685
+
686
+ @info_final
687
+ class ISB_FilterAcceptOption(Option):
688
+ """Data model for PCAP-NG ``isb_filteraccept`` option."""
689
+
690
+ #: Number of packets accepted by the filter.
691
+ packets: 'int'
692
+
693
+ if TYPE_CHECKING:
694
+ def __init__(self, type: 'Enum_OptionType', length: 'int', packets: 'int') -> 'None': ...
695
+
696
+
697
+ @info_final
698
+ class ISB_OSDropOption(Option):
699
+ """Data model for PCAP-NG ``isb_osdrop`` option."""
700
+
701
+ #: Number of packets dropped by the operating system.
702
+ packets: 'int'
703
+
704
+ if TYPE_CHECKING:
705
+ def __init__(self, type: 'Enum_OptionType', length: 'int', packets: 'int') -> 'None': ...
706
+
707
+
708
+ @info_final
709
+ class ISB_UsrDelivOption(Option):
710
+ """Data model for PCAP-NG ``isb_usrdeliv`` option."""
711
+
712
+ #: Number of packets delivered to the user.
713
+ packets: 'int'
714
+
715
+ if TYPE_CHECKING:
716
+ def __init__(self, type: 'Enum_OptionType', length: 'int', packets: 'int') -> 'None': ...
717
+
718
+
719
+ @info_final
720
+ class InterfaceStatisticsBlock(PCAPNG):
721
+ """Data model for PCAP-NG Interface Statistics Block (ISB)."""
722
+
723
+ #: Interface ID.
724
+ interface_id: 'int'
725
+ #: Timestamp.
726
+ timestamp: 'dt_type'
727
+ #: Timestamp as in UNIX epoch (in seconds).
728
+ timestamp_epoch: 'Decimal'
729
+ #: Options.
730
+ options: 'OrderedMultiDict[Enum_OptionType, Option]'
731
+
732
+ if TYPE_CHECKING:
733
+ def __init__(self, type: 'Enum_BlockType', length: 'int', interface_id: 'int', timestamp: 'dt_type',
734
+ timestamp_epoch: 'Decimal', options: 'OrderedMultiDict[Enum_OptionType, Option]') -> 'None': ...
735
+
736
+
737
+ @info_final
738
+ class SystemdJournalExportBlock(PCAPNG):
739
+ """Data model for PCAP-NG :manpage:`systemd(1)` Journal Export Block."""
740
+
741
+ #: Journal entry.
742
+ data: 'tuple[OrderedMultiDict[str, str | bytes], ...]'
743
+
744
+ if TYPE_CHECKING:
745
+ def __init__(self, type: 'Enum_BlockType', length: 'int',
746
+ data: 'tuple[OrderedMultiDict[str, str | bytes], ...]') -> 'None': ...
747
+
748
+
749
+ class DSBSecrets(Data):
750
+ """Data model for DSB secrets data."""
751
+
752
+
753
+ @info_final
754
+ class UnknownSecrets(DSBSecrets):
755
+ """Data model for unknown DSB secrets."""
756
+
757
+ #: Secrets data.
758
+ data: 'bytes'
759
+
760
+ if TYPE_CHECKING:
761
+ def __init__(self, data: 'bytes') -> 'None': ...
762
+
763
+
764
+ @info_final
765
+ class TLSKeyLog(DSBSecrets):
766
+ """Data model for TLS key log DSB secrets."""
767
+
768
+ #: TLS key log entries.
769
+ entries: 'dict[TLSKeyLabel, OrderedMultiDict[bytes, bytes]]'
770
+
771
+ if TYPE_CHECKING:
772
+ def __init__(self, entries: 'dict[TLSKeyLabel, OrderedMultiDict[bytes, bytes]]') -> 'None': ...
773
+
774
+
775
+ @info_final
776
+ class WireGuardKeyLog(DSBSecrets):
777
+ """Data model for WireGuard key DSB secrets."""
778
+
779
+ #: WireGuard Key Log entries.
780
+ entries: 'OrderedMultiDict[WireGuardKeyLabel, bytes]'
781
+
782
+ if TYPE_CHECKING:
783
+ def __init__(self, entries: 'OrderedMultiDict[WireGuardKeyLabel, bytes]') -> 'None': ...
784
+
785
+
786
+ @info_final
787
+ class ZigBeeNWKKey(DSBSecrets):
788
+ """Data model for ZigBEE NWK Key and ZigBee PANID secrets data."""
789
+
790
+ #: AES-128 NKW key.
791
+ nwk_key: 'bytes'
792
+ #: PAN ID.
793
+ pan_id: 'int'
794
+
795
+ if TYPE_CHECKING:
796
+ def __init__(self, nwk_key: 'bytes', pan_id: 'int') -> 'None': ...
797
+
798
+
799
+ @info_final
800
+ class ZigBeeAPSKey(DSBSecrets):
801
+ """Data model for ZigBEE APS Key secrets data."""
802
+
803
+ #: AES-128 APS key.
804
+ aps_key: 'bytes'
805
+ #: PAN ID.
806
+ pan_id: 'int'
807
+ #: Node short address.
808
+ short_address: 'int'
809
+
810
+ if TYPE_CHECKING:
811
+ def __init__(self, aps_key: 'bytes', pan_id: 'int', short_address: 'int') -> 'None': ...
812
+
813
+
814
+ @info_final
815
+ class DecryptionSecretsBlock(PCAPNG):
816
+ """Data model for PCAP-NG Decryption Secrets Block (DSB)."""
817
+
818
+ #: Secrets type.
819
+ secrets_type: 'Enum_SecretsType'
820
+ #: Secrets length.
821
+ secrets_length: 'int'
822
+ #: Secrets data.
823
+ secrets_data: 'DSBSecrets'
824
+ #: Options.
825
+ options: 'OrderedMultiDict[Enum_OptionType, Option]'
826
+
827
+ if TYPE_CHECKING:
828
+ def __init__(self, type: 'Enum_BlockType', length: 'int', secrets_type: 'Enum_SecretsType',
829
+ secrets_length: 'int', secrets_data: 'DSBSecrets',
830
+ options: 'OrderedMultiDict[Enum_OptionType, Option]') -> 'None': ...
831
+
832
+
833
+ @info_final
834
+ class CustomBlock(PCAPNG):
835
+ """Data model for PCAP-NG Custom Block (CB)."""
836
+
837
+ #: Private enterprise number.
838
+ pen: 'int'
839
+ #: Custom block data (incl. data, options and padding).
840
+ data: 'bytes'
841
+
842
+ if TYPE_CHECKING:
843
+ def __init__(self, type: 'Enum_BlockType', length: 'int', pen: 'int', data: 'bytes') -> 'None': ...
844
+
845
+
846
+ @info_final
847
+ class PACK_FlagsOption(Option):
848
+ """Data model for PCAP-NG file ``pack_flags`` options."""
849
+
850
+ #: Inbound / Outbound packet.
851
+ direction: 'PacketDirection'
852
+ #: Reception type.
853
+ reception: 'PacketReception'
854
+ #: FCS length.
855
+ fcs_len: 'int'
856
+ #: Link-layer-dependent error - CRC error (bit 24).
857
+ crc_error: 'bool'
858
+ #: Link-layer-dependent error - packet too long error (bit 25).
859
+ too_long: 'bool'
860
+ #: Link-layer-dependent error - packet too short error (bit 26).
861
+ too_short: 'bool'
862
+ #: Link-layer-dependent error - wrong Inter Frame Gap error (bit 27).
863
+ gap_error: 'bool'
864
+ #: Link-layer-dependent error - unaligned frame error (bit 28).
865
+ unaligned_error: 'bool'
866
+ #: Link-layer-dependent error - Start Frame Delimiter error (bit 29).
867
+ delimiter_error: 'bool'
868
+ #: Link-layer-dependent error - preamble error (bit 30).
869
+ preamble_error: 'bool'
870
+ #: Link-layer-dependent error - symbol error (bit 31).
871
+ symbol_error: 'bool'
872
+
873
+ if TYPE_CHECKING:
874
+ def __init__(self, type: 'Enum_OptionType', length: 'int', direction: 'PacketDirection',
875
+ reception: 'PacketReception', fcs_len: 'int', crc_error: 'bool',
876
+ too_long: 'bool', too_short: 'bool', gap_error: 'bool', unaligned_error: 'bool',
877
+ delimiter_error: 'bool', preamble_error: 'bool', symbol_error: 'bool') -> 'None': ...
878
+
879
+
880
+ @info_final
881
+ class PACK_HashOption(Option):
882
+ """Data model for PCAP-NG ``pack_hash`` options."""
883
+
884
+ #: Hash algorithm.
885
+ algorithm: 'Enum_HashAlgorithm'
886
+ #: Hash value.
887
+ hash: 'bytes'
888
+
889
+ if TYPE_CHECKING:
890
+ def __init__(self, type: 'Enum_OptionType', length: 'int', algorithm: 'Enum_HashAlgorithm',
891
+ hash: 'bytes') -> 'None': ...
892
+
893
+
894
+ @info_final
895
+ class PacketBlock(PCAPNG):
896
+ """Data model for PCAP-NG Packet Block (obsolete)."""
897
+
898
+ #: Section index.
899
+ section_number: 'int'
900
+ #: Frame index.
901
+ number: 'int'
902
+
903
+ #: Interface ID.
904
+ interface_id: 'int'
905
+ #: Drops count.
906
+ drop_count: 'int'
907
+ #: Timestamp.
908
+ timestamp: 'dt_type'
909
+ #: Timestamp as in UNIX epoch (in seconds).
910
+ timestamp_epoch: 'Decimal'
911
+ #: Captured packet length.
912
+ captured_len: 'int'
913
+ #: Original packet length.
914
+ original_len: 'int'
915
+ #: Options.
916
+ options: 'OrderedMultiDict[Enum_OptionType, Option]'
917
+
918
+ if TYPE_CHECKING:
919
+ #: Protocol chain.
920
+ protocols: 'str'
921
+
922
+ def __init__(self, type: 'Enum_BlockType', length: 'int', section_number: 'int', number: 'int',
923
+ interface_id: 'int', drop_count: 'int', timestamp: 'dt_type',
924
+ timestamp_epoch: 'Decimal', captured_length: 'int', original_length: 'int',
925
+ options: 'OrderedMultiDict[Enum_OptionType, Option]') -> 'None': ...