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,56 @@
1
+ # -*- coding: utf-8 -*-
2
+ # pylint: disable=line-too-long,consider-using-f-string
3
+ """ECDSA_LOW Curve Label
4
+ ===========================
5
+
6
+ .. module:: pcapkit.const.hip.ecdsa_low_curve
7
+
8
+ This module contains the constant enumeration for **ECDSA_LOW Curve Label**,
9
+ which is automatically generated from :class:`pcapkit.vendor.hip.ecdsa_low_curve.ECDSALowCurve`.
10
+
11
+ """
12
+
13
+ from aenum import IntEnum, extend_enum
14
+
15
+ __all__ = ['ECDSALowCurve']
16
+
17
+
18
+ class ECDSALowCurve(IntEnum):
19
+ """[ECDSALowCurve] ECDSA_LOW Curve Label"""
20
+
21
+ #: RESERVED [:rfc:`7401`]
22
+ RESERVED_0 = 0
23
+
24
+ #: SECP160R1 [:rfc:`7401`]
25
+ SECP160R1 = 1
26
+
27
+ @staticmethod
28
+ def get(key: 'int | str', default: 'int' = -1) -> 'ECDSALowCurve':
29
+ """Backport support for original codes.
30
+
31
+ Args:
32
+ key: Key to get enum item.
33
+ default: Default value if not found.
34
+
35
+ :meta private:
36
+ """
37
+ if isinstance(key, int):
38
+ return ECDSALowCurve(key)
39
+ if key not in ECDSALowCurve._member_map_: # pylint: disable=no-member
40
+ return extend_enum(ECDSALowCurve, key, default)
41
+ return ECDSALowCurve[key] # type: ignore[misc]
42
+
43
+ @classmethod
44
+ def _missing_(cls, value: 'int') -> 'ECDSALowCurve':
45
+ """Lookup function used when value is not found.
46
+
47
+ Args:
48
+ value: Value to get enum item.
49
+
50
+ """
51
+ if not (isinstance(value, int) and 0 <= value <= 65535):
52
+ raise ValueError('%r is not a valid %s' % (value, cls.__name__))
53
+ if 2 <= value <= 65535:
54
+ #: Unassigned
55
+ return extend_enum(cls, 'Unassigned_%d' % value, value)
56
+ return super()._missing_(value)
@@ -0,0 +1,65 @@
1
+ # -*- coding: utf-8 -*-
2
+ # pylint: disable=line-too-long,consider-using-f-string
3
+ """EdDSA Curve Label
4
+ =======================
5
+
6
+ .. module:: pcapkit.const.hip.eddsa_curve
7
+
8
+ This module contains the constant enumeration for **EdDSA Curve Label**,
9
+ which is automatically generated from :class:`pcapkit.vendor.hip.eddsa_curve.EdDSACurve`.
10
+
11
+ """
12
+
13
+ from aenum import IntEnum, extend_enum
14
+
15
+ __all__ = ['EdDSACurve']
16
+
17
+
18
+ class EdDSACurve(IntEnum):
19
+ """[EdDSACurve] EdDSA Curve Label"""
20
+
21
+ #: RESERVED [:rfc:`9374`]
22
+ RESERVED_0 = 0
23
+
24
+ #: EdDSA25519 [:rfc:`8032`]
25
+ EdDSA25519 = 1
26
+
27
+ #: EdDSA25519ph [:rfc:`8032`]
28
+ EdDSA25519ph = 2
29
+
30
+ #: EdDSA448 [:rfc:`8032`]
31
+ EdDSA448 = 3
32
+
33
+ #: EdDSA448ph [:rfc:`8032`]
34
+ EdDSA448ph = 4
35
+
36
+ @staticmethod
37
+ def get(key: 'int | str', default: 'int' = -1) -> 'EdDSACurve':
38
+ """Backport support for original codes.
39
+
40
+ Args:
41
+ key: Key to get enum item.
42
+ default: Default value if not found.
43
+
44
+ :meta private:
45
+ """
46
+ if isinstance(key, int):
47
+ return EdDSACurve(key)
48
+ if key not in EdDSACurve._member_map_: # pylint: disable=no-member
49
+ return extend_enum(EdDSACurve, key, default)
50
+ return EdDSACurve[key] # type: ignore[misc]
51
+
52
+ @classmethod
53
+ def _missing_(cls, value: 'int') -> 'EdDSACurve':
54
+ """Lookup function used when value is not found.
55
+
56
+ Args:
57
+ value: Value to get enum item.
58
+
59
+ """
60
+ if not (isinstance(value, int) and 0 <= value <= 65535):
61
+ raise ValueError('%r is not a valid %s' % (value, cls.__name__))
62
+ if 5 <= value <= 65535:
63
+ #: Unassigned
64
+ return extend_enum(cls, 'Unassigned_%d' % value, value)
65
+ return super()._missing_(value)
@@ -0,0 +1,98 @@
1
+ # -*- coding: utf-8 -*-
2
+ # pylint: disable=line-too-long,consider-using-f-string
3
+ """ESP Transform Suite IDs
4
+ =============================
5
+
6
+ .. module:: pcapkit.const.hip.esp_transform_suite
7
+
8
+ This module contains the constant enumeration for **ESP Transform Suite IDs**,
9
+ which is automatically generated from :class:`pcapkit.vendor.hip.esp_transform_suite.ESPTransformSuite`.
10
+
11
+ """
12
+
13
+ from aenum import IntEnum, extend_enum
14
+
15
+ __all__ = ['ESPTransformSuite']
16
+
17
+
18
+ class ESPTransformSuite(IntEnum):
19
+ """[ESPTransformSuite] ESP Transform Suite IDs"""
20
+
21
+ #: RESERVED [:rfc:`7402`]
22
+ RESERVED_0 = 0
23
+
24
+ #: AES-128-CBC with HMAC-SHA1 [:rfc:`3602`][:rfc:`2404`]
25
+ AES_128_CBC_with_HMAC_SHA1 = 1
26
+
27
+ #: DEPRECATED [:rfc:`7402`]
28
+ DEPRECATED_2 = 2
29
+
30
+ #: DEPRECATED [:rfc:`7402`]
31
+ DEPRECATED_3 = 3
32
+
33
+ #: DEPRECATED [:rfc:`7402`]
34
+ DEPRECATED_4 = 4
35
+
36
+ #: DEPRECATED [:rfc:`7402`]
37
+ DEPRECATED_5 = 5
38
+
39
+ #: DEPRECATED [:rfc:`7402`]
40
+ DEPRECATED_6 = 6
41
+
42
+ #: NULL with HMAC-SHA-256 [:rfc:`2410`][:rfc:`4868`]
43
+ NULL_with_HMAC_SHA_256 = 7
44
+
45
+ #: AES-128-CBC with HMAC-SHA-256 [:rfc:`3602`][:rfc:`4868`]
46
+ AES_128_CBC_with_HMAC_SHA_256 = 8
47
+
48
+ #: AES-256-CBC with HMAC-SHA-256 [:rfc:`3602`][:rfc:`4868`]
49
+ AES_256_CBC_with_HMAC_SHA_256 = 9
50
+
51
+ #: AES-CCM-8 [:rfc:`4309`]
52
+ AES_CCM_8 = 10
53
+
54
+ #: AES-CCM-16 [:rfc:`4309`]
55
+ AES_CCM_16 = 11
56
+
57
+ #: AES-GCM with an 8 octet ICV [:rfc:`4106`]
58
+ AES_GCM_with_an_8_octet_ICV = 12
59
+
60
+ #: AES-GCM with a 16 octet ICV [:rfc:`4106`]
61
+ AES_GCM_with_a_16_octet_ICV = 13
62
+
63
+ #: AES-CMAC-96 [:rfc:`4493`][:rfc:`4494`]
64
+ AES_CMAC_96 = 14
65
+
66
+ #: AES-GMAC [:rfc:`4543`]
67
+ AES_GMAC = 15
68
+
69
+ @staticmethod
70
+ def get(key: 'int | str', default: 'int' = -1) -> 'ESPTransformSuite':
71
+ """Backport support for original codes.
72
+
73
+ Args:
74
+ key: Key to get enum item.
75
+ default: Default value if not found.
76
+
77
+ :meta private:
78
+ """
79
+ if isinstance(key, int):
80
+ return ESPTransformSuite(key)
81
+ if key not in ESPTransformSuite._member_map_: # pylint: disable=no-member
82
+ return extend_enum(ESPTransformSuite, key, default)
83
+ return ESPTransformSuite[key] # type: ignore[misc]
84
+
85
+ @classmethod
86
+ def _missing_(cls, value: 'int') -> 'ESPTransformSuite':
87
+ """Lookup function used when value is not found.
88
+
89
+ Args:
90
+ value: Value to get enum item.
91
+
92
+ """
93
+ if not (isinstance(value, int) and 0 <= value <= 65535):
94
+ raise ValueError('%r is not a valid %s' % (value, cls.__name__))
95
+ if 16 <= value <= 65535:
96
+ #: Unassigned
97
+ return extend_enum(cls, 'Unassigned_%d' % value, value)
98
+ return super()._missing_(value)
@@ -0,0 +1,86 @@
1
+ # -*- coding: utf-8 -*-
2
+ # pylint: disable=line-too-long,consider-using-f-string
3
+ """Group IDs
4
+ ===============
5
+
6
+ .. module:: pcapkit.const.hip.group
7
+
8
+ This module contains the constant enumeration for **Group IDs**,
9
+ which is automatically generated from :class:`pcapkit.vendor.hip.group.Group`.
10
+
11
+ """
12
+
13
+ from aenum import IntEnum, extend_enum
14
+
15
+ __all__ = ['Group']
16
+
17
+
18
+ class Group(IntEnum):
19
+ """[Group] Group IDs"""
20
+
21
+ #: Reserved [:rfc:`7401`]
22
+ Reserved_0 = 0
23
+
24
+ #: 384-bit group (DEPRECATED) [:rfc:`5201`]
25
+ Group_384_bit_group = 1
26
+
27
+ #: OAKLEY well known group 1 (DEPRECATED) [:rfc:`5201`]
28
+ OAKLEY_well_known_group_1 = 2
29
+
30
+ #: 1536-bit MODP group [:rfc:`7401`]
31
+ Group_1536_bit_MODP_group = 3
32
+
33
+ #: 3072-bit MODP group [:rfc:`7401`]
34
+ Group_3072_bit_MODP_group = 4
35
+
36
+ #: 6144-bit MODP group (DEPRECATED) [:rfc:`5201`]
37
+ Group_6144_bit_MODP_group = 5
38
+
39
+ #: 8192-bit MODP group (DEPRECATED) [:rfc:`5201`]
40
+ Group_8192_bit_MODP_group = 6
41
+
42
+ #: NIST P-256 [:rfc:`7401`]
43
+ NIST_P_256 = 7
44
+
45
+ #: NIST P-384 [:rfc:`7401`]
46
+ NIST_P_384 = 8
47
+
48
+ #: NIST P-521 [:rfc:`7401`]
49
+ NIST_P_521 = 9
50
+
51
+ #: SECP160R1 [:rfc:`7401`]
52
+ SECP160R1 = 10
53
+
54
+ #: 2048-bit MODP group [:rfc:`7401`]
55
+ Group_2048_bit_MODP_group = 11
56
+
57
+ @staticmethod
58
+ def get(key: 'int | str', default: 'int' = -1) -> 'Group':
59
+ """Backport support for original codes.
60
+
61
+ Args:
62
+ key: Key to get enum item.
63
+ default: Default value if not found.
64
+
65
+ :meta private:
66
+ """
67
+ if isinstance(key, int):
68
+ return Group(key)
69
+ if key not in Group._member_map_: # pylint: disable=no-member
70
+ return extend_enum(Group, key, default)
71
+ return Group[key] # type: ignore[misc]
72
+
73
+ @classmethod
74
+ def _missing_(cls, value: 'int') -> 'Group':
75
+ """Lookup function used when value is not found.
76
+
77
+ Args:
78
+ value: Value to get enum item.
79
+
80
+ """
81
+ if not (isinstance(value, int) and 0 <= value <= 255):
82
+ raise ValueError('%r is not a valid %s' % (value, cls.__name__))
83
+ if 12 <= value <= 255:
84
+ # Unassigned
85
+ return extend_enum(cls, 'Unassigned_%d' % value, value)
86
+ return super()._missing_(value)
@@ -0,0 +1,86 @@
1
+ # -*- coding: utf-8 -*-
2
+ # pylint: disable=line-too-long,consider-using-f-string
3
+ """HI Algorithm
4
+ ==================
5
+
6
+ .. module:: pcapkit.const.hip.hi_algorithm
7
+
8
+ This module contains the constant enumeration for **HI Algorithm**,
9
+ which is automatically generated from :class:`pcapkit.vendor.hip.hi_algorithm.HIAlgorithm`.
10
+
11
+ """
12
+
13
+ from aenum import IntEnum, extend_enum
14
+
15
+ __all__ = ['HIAlgorithm']
16
+
17
+
18
+ class HIAlgorithm(IntEnum):
19
+ """[HIAlgorithm] HI Algorithm"""
20
+
21
+ #: RESERVED [:rfc:`7401`]
22
+ RESERVED_0 = 0
23
+
24
+ #: NULL-ENCRYPT [:rfc:`2410`]
25
+ NULL_ENCRYPT = 1
26
+
27
+ #: Unassigned
28
+ Unassigned_2 = 2
29
+
30
+ #: DSA [:rfc:`7401`]
31
+ DSA = 3
32
+
33
+ #: Unassigned
34
+ Unassigned_4 = 4
35
+
36
+ #: RSA [:rfc:`7401`]
37
+ RSA = 5
38
+
39
+ #: Unassigned
40
+ Unassigned_6 = 6
41
+
42
+ #: ECDSA [:rfc:`7401`]
43
+ ECDSA = 7
44
+
45
+ #: Unassigned
46
+ Unassigned_8 = 8
47
+
48
+ #: ECDSA_LOW [:rfc:`7401`]
49
+ ECDSA_LOW = 9
50
+
51
+ #: EdDSA [:rfc:`8032`]
52
+ EdDSA = 13
53
+
54
+ @staticmethod
55
+ def get(key: 'int | str', default: 'int' = -1) -> 'HIAlgorithm':
56
+ """Backport support for original codes.
57
+
58
+ Args:
59
+ key: Key to get enum item.
60
+ default: Default value if not found.
61
+
62
+ :meta private:
63
+ """
64
+ if isinstance(key, int):
65
+ return HIAlgorithm(key)
66
+ if key not in HIAlgorithm._member_map_: # pylint: disable=no-member
67
+ return extend_enum(HIAlgorithm, key, default)
68
+ return HIAlgorithm[key] # type: ignore[misc]
69
+
70
+ @classmethod
71
+ def _missing_(cls, value: 'int') -> 'HIAlgorithm':
72
+ """Lookup function used when value is not found.
73
+
74
+ Args:
75
+ value: Value to get enum item.
76
+
77
+ """
78
+ if not (isinstance(value, int) and 0 <= value <= 65535):
79
+ raise ValueError('%r is not a valid %s' % (value, cls.__name__))
80
+ if 10 <= value <= 12:
81
+ #: Unassigned
82
+ return extend_enum(cls, 'Unassigned_%d' % value, value)
83
+ if 14 <= value <= 65535:
84
+ #: Unassigned
85
+ return extend_enum(cls, 'Unassigned_%d' % value, value)
86
+ return super()._missing_(value)
@@ -0,0 +1,68 @@
1
+ # -*- coding: utf-8 -*-
2
+ # pylint: disable=line-too-long,consider-using-f-string
3
+ """HIT Suite ID
4
+ ==================
5
+
6
+ .. module:: pcapkit.const.hip.hit_suite
7
+
8
+ This module contains the constant enumeration for **HIT Suite ID**,
9
+ which is automatically generated from :class:`pcapkit.vendor.hip.hit_suite.HITSuite`.
10
+
11
+ """
12
+
13
+ from aenum import IntEnum, extend_enum
14
+
15
+ __all__ = ['HITSuite']
16
+
17
+
18
+ class HITSuite(IntEnum):
19
+ """[HITSuite] HIT Suite ID"""
20
+
21
+ #: RESERVED [:rfc:`7401`]
22
+ RESERVED_0 = 0
23
+
24
+ #: RSA,DSA/SHA-256 [:rfc:`7401`]
25
+ RSA_DSA_SHA_256 = 1
26
+
27
+ #: ECDSA/SHA-384 [:rfc:`7401`]
28
+ ECDSA_SHA_384 = 2
29
+
30
+ #: ECDSA_LOW/SHA-1 [:rfc:`7401`]
31
+ ECDSA_LOW_SHA_1 = 3
32
+
33
+ #: Unassigned
34
+ Unassigned_4 = 4
35
+
36
+ #: EdDSA/cSHAKE128 [:rfc:`9374`]
37
+ EdDSA_cSHAKE128 = 5
38
+
39
+ @staticmethod
40
+ def get(key: 'int | str', default: 'int' = -1) -> 'HITSuite':
41
+ """Backport support for original codes.
42
+
43
+ Args:
44
+ key: Key to get enum item.
45
+ default: Default value if not found.
46
+
47
+ :meta private:
48
+ """
49
+ if isinstance(key, int):
50
+ return HITSuite(key)
51
+ if key not in HITSuite._member_map_: # pylint: disable=no-member
52
+ return extend_enum(HITSuite, key, default)
53
+ return HITSuite[key] # type: ignore[misc]
54
+
55
+ @classmethod
56
+ def _missing_(cls, value: 'int') -> 'HITSuite':
57
+ """Lookup function used when value is not found.
58
+
59
+ Args:
60
+ value: Value to get enum item.
61
+
62
+ """
63
+ if not (isinstance(value, int) and 0 <= value <= 15):
64
+ raise ValueError('%r is not a valid %s' % (value, cls.__name__))
65
+ if 6 <= value <= 15:
66
+ #: Unassigned
67
+ return extend_enum(cls, 'Unassigned_%d' % value, value)
68
+ return super()._missing_(value)
@@ -0,0 +1,62 @@
1
+ # -*- coding: utf-8 -*-
2
+ # pylint: disable=line-too-long,consider-using-f-string
3
+ """HIP NAT Traversal Modes
4
+ =============================
5
+
6
+ .. module:: pcapkit.const.hip.nat_traversal
7
+
8
+ This module contains the constant enumeration for **HIP NAT Traversal Modes**,
9
+ which is automatically generated from :class:`pcapkit.vendor.hip.nat_traversal.NATTraversal`.
10
+
11
+ """
12
+
13
+ from aenum import IntEnum, extend_enum
14
+
15
+ __all__ = ['NATTraversal']
16
+
17
+
18
+ class NATTraversal(IntEnum):
19
+ """[NATTraversal] HIP NAT Traversal Modes"""
20
+
21
+ #: Reserved [:rfc:`5770`]
22
+ Reserved_0 = 0
23
+
24
+ #: UDP-ENCAPSULATION [:rfc:`5770`]
25
+ UDP_ENCAPSULATION = 1
26
+
27
+ #: ICE-STUN-UDP [:rfc:`5770`]
28
+ ICE_STUN_UDP = 2
29
+
30
+ #: ICE-HIP-UDP [:rfc:`9028`]
31
+ ICE_HIP_UDP = 3
32
+
33
+ @staticmethod
34
+ def get(key: 'int | str', default: 'int' = -1) -> 'NATTraversal':
35
+ """Backport support for original codes.
36
+
37
+ Args:
38
+ key: Key to get enum item.
39
+ default: Default value if not found.
40
+
41
+ :meta private:
42
+ """
43
+ if isinstance(key, int):
44
+ return NATTraversal(key)
45
+ if key not in NATTraversal._member_map_: # pylint: disable=no-member
46
+ return extend_enum(NATTraversal, key, default)
47
+ return NATTraversal[key] # type: ignore[misc]
48
+
49
+ @classmethod
50
+ def _missing_(cls, value: 'int') -> 'NATTraversal':
51
+ """Lookup function used when value is not found.
52
+
53
+ Args:
54
+ value: Value to get enum item.
55
+
56
+ """
57
+ if not (isinstance(value, int) and 0 <= value <= 65535):
58
+ raise ValueError('%r is not a valid %s' % (value, cls.__name__))
59
+ if 4 <= value <= 65535:
60
+ #: Unassigned
61
+ return extend_enum(cls, 'Unassigned_%d' % value, value)
62
+ return super()._missing_(value)