pypcapkit 1.3.5.post6__cp313-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (466) hide show
  1. pcapkit/__init__.py +124 -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 +298 -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 +69 -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 +32728 -0
  120. pcapkit/const/reg/ethertype.py +714 -0
  121. pcapkit/const/reg/linktype.py +890 -0
  122. pcapkit/const/reg/transtype.py +526 -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 +249 -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 +412 -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 +708 -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 +197 -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 +197 -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.5.post6.dist-info/LICENSE +29 -0
  462. pypcapkit-1.3.5.post6.dist-info/METADATA +238 -0
  463. pypcapkit-1.3.5.post6.dist-info/RECORD +466 -0
  464. pypcapkit-1.3.5.post6.dist-info/WHEEL +5 -0
  465. pypcapkit-1.3.5.post6.dist-info/entry_points.txt +3 -0
  466. pypcapkit-1.3.5.post6.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': ...