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,29 @@
1
+ # -*- coding: utf-8 -*-
2
+ """ECDSA Curve Label
3
+ =======================
4
+
5
+ .. module:: pcapkit.const.hip.ecdsa_curve
6
+
7
+ This module contains the vendor crawler for **ECDSA Curve Label**,
8
+ which is automatically generating :class:`pcapkit.const.hip.ecdsa_curve.ECDSACurve`.
9
+
10
+ """
11
+
12
+ import sys
13
+
14
+ from pcapkit.vendor.default import Vendor
15
+
16
+ __all__ = ['ECDSACurve']
17
+
18
+
19
+ class ECDSACurve(Vendor):
20
+ """ECDSA Curve Label"""
21
+
22
+ #: Value limit checker.
23
+ FLAG = 'isinstance(value, int) and 0 <= value <= 65535'
24
+ #: Link to registry.
25
+ LINK = 'https://www.iana.org/assignments/hip-parameters/ecdsa-curve-label.csv'
26
+
27
+
28
+ if __name__ == '__main__':
29
+ sys.exit(ECDSACurve()) # type: ignore[arg-type]
@@ -0,0 +1,29 @@
1
+ # -*- coding: utf-8 -*-
2
+ """ECDSA_LOW Curve Label
3
+ ===========================
4
+
5
+ .. module:: pcapkit.const.hip.ecdsa_low_curve
6
+
7
+ This module contains the vendor crawler for **ECDSA_LOW Curve Label**,
8
+ which is automatically generating :class:`pcapkit.const.hip.ecdsa_low_curve.ECDSALowCurve`.
9
+
10
+ """
11
+
12
+ import sys
13
+
14
+ from pcapkit.vendor.default import Vendor
15
+
16
+ __all__ = ['ECDSALowCurve']
17
+
18
+
19
+ class ECDSALowCurve(Vendor):
20
+ """ECDSA_LOW Curve Label"""
21
+
22
+ #: Value limit checker.
23
+ FLAG = 'isinstance(value, int) and 0 <= value <= 65535'
24
+ #: Link to registry.
25
+ LINK = 'https://www.iana.org/assignments/hip-parameters/ecdsa-low-curve-label.csv'
26
+
27
+
28
+ if __name__ == '__main__':
29
+ sys.exit(ECDSALowCurve()) # type: ignore[arg-type]
@@ -0,0 +1,85 @@
1
+ # -*- coding: utf-8 -*-
2
+ """EdDSA Curve Label
3
+ ===========================
4
+
5
+ .. module:: pcapkit.const.hip.eddsa_curve
6
+
7
+ This module contains the vendor crawler for **EdDSA Curve Label**,
8
+ which is automatically generating :class:`pcapkit.const.hip.eddsa_curve.EdDSACurve`.
9
+
10
+ """
11
+
12
+ import csv
13
+ import re
14
+ import sys
15
+
16
+ from pcapkit.vendor.default import Vendor
17
+
18
+ __all__ = ['EdDSACurve']
19
+
20
+
21
+ class EdDSACurve(Vendor):
22
+ """EdDSA Curve Label"""
23
+
24
+ #: Value limit checker.
25
+ FLAG = 'isinstance(value, int) and 0 <= value <= 65535'
26
+ #: Link to registry.
27
+ LINK = 'https://www.iana.org/assignments/hip-parameters/eddsa-curve-label.csv'
28
+
29
+ def process(self, data: 'list[str]') -> 'tuple[list[str], list[str]]':
30
+ """Process CSV data.
31
+
32
+ Args:
33
+ data: CSV data.
34
+
35
+ Returns:
36
+ Enumeration fields and missing fields.
37
+
38
+ """
39
+ reader = csv.reader(data)
40
+ next(reader)
41
+
42
+ enum = [] # type: list[str]
43
+ miss = [] # type: list[str]
44
+ for item in reader:
45
+ name = item[1]
46
+ rfcs = item[3]
47
+
48
+ temp = [] # type: list[str]
49
+ for rfc in filter(None, re.split(r'\[|\]', rfcs)):
50
+ if 'RFC' in rfc and re.match(r'\d+', rfc[3:]):
51
+ # temp.append(f'[{rfc[:3]} {rfc[3:]}]')
52
+ temp_split = rfc[3:].split(', ', maxsplit=1)
53
+ if len(temp_split) > 1:
54
+ temp.append(f'[:rfc:`{temp_split[0]}#{temp_split[1].lower()}`]'.replace(' ', '-'))
55
+ else:
56
+ temp.append(f'[:rfc:`{temp_split[0]}`]')
57
+ else:
58
+ temp.append(f'[{rfc}]'.replace('_', ' '))
59
+ desc = self.wrap_comment(re.sub(r'\r*\n', ' ', '%s %s' % ( # pylint: disable=consider-using-f-string
60
+ name, ''.join(temp) if rfcs else '',
61
+ ), re.MULTILINE))
62
+
63
+ try:
64
+ code, _ = item[2], int(item[2])
65
+ renm = self.rename(name, code)
66
+
67
+ pres = f'{renm} = {code}'
68
+ sufs = f'#: {desc}'
69
+
70
+ # if len(pres) > 74:
71
+ # sufs = f"\n{' '*80}{sufs}"
72
+
73
+ # enum.append(f'{pres.ljust(76)}{sufs}')
74
+ enum.append(f'{sufs}\n {pres}')
75
+ except ValueError:
76
+ start, stop = item[2].split('-')
77
+
78
+ miss.append(f'if {start} <= value <= {stop}:')
79
+ miss.append(f' #: {desc}')
80
+ miss.append(f" return extend_enum(cls, '{self.safe_name(name)}_%d' % value, value)")
81
+ return enum, miss
82
+
83
+
84
+ if __name__ == '__main__':
85
+ sys.exit(EdDSACurve()) # type: ignore[arg-type]
@@ -0,0 +1,29 @@
1
+ # -*- coding: utf-8 -*-
2
+ """ESP Transform Suite IDs
3
+ =============================
4
+
5
+ .. module:: pcapkit.const.hip.esp_transform_suite
6
+
7
+ This module contains the vendor crawler for **ESP Transform Suite IDs**,
8
+ which is automatically generating :class:`pcapkit.const.hip.esp_transform_suite.ESPTransformSuite`.
9
+
10
+ """
11
+
12
+ import sys
13
+
14
+ from pcapkit.vendor.default import Vendor
15
+
16
+ __all__ = ['ESPTransformSuite']
17
+
18
+
19
+ class ESPTransformSuite(Vendor):
20
+ """ESP Transform Suite IDs"""
21
+
22
+ #: Value limit checker.
23
+ FLAG = 'isinstance(value, int) and 0 <= value <= 65535'
24
+ #: Link to registry.
25
+ LINK = 'https://www.iana.org/assignments/hip-parameters/esp-transform-suite-ids.csv'
26
+
27
+
28
+ if __name__ == '__main__':
29
+ sys.exit(ESPTransformSuite()) # type: ignore[arg-type]
@@ -0,0 +1,87 @@
1
+ # -*- coding: utf-8 -*-
2
+ """Group IDs
3
+ ===============
4
+
5
+ .. module:: pcapkit.const.hip.group
6
+
7
+ This module contains the vendor crawler for **Group IDs**,
8
+ which is automatically generating :class:`pcapkit.const.hip.group.Group`.
9
+
10
+ """
11
+
12
+ import csv
13
+ import re
14
+ import sys
15
+
16
+ from pcapkit.vendor.default import Vendor
17
+
18
+ __all__ = ['Group']
19
+
20
+
21
+ class Group(Vendor):
22
+ """Group IDs"""
23
+
24
+ #: Value limit checker.
25
+ FLAG = 'isinstance(value, int) and 0 <= value <= 255'
26
+ #: Link to registry.
27
+ LINK = 'https://www.iana.org/assignments/hip-parameters/hip-parameters-5.csv'
28
+
29
+ def process(self, data: 'list[str]') -> 'tuple[list[str], list[str]]':
30
+ """Process CSV data.
31
+
32
+ Args:
33
+ data: CSV data.
34
+
35
+ Returns:
36
+ Enumeration fields and missing fields.
37
+
38
+ """
39
+ reader = csv.reader(data)
40
+ next(reader) # header
41
+
42
+ enum = [] # type: list[str]
43
+ miss = [] # type: list[str]
44
+ for item in reader:
45
+ long = item[1]
46
+ rfcs = item[2]
47
+
48
+ split = long.split(' (')
49
+ if len(split) == 2:
50
+ name = split[0]
51
+ cmmt = f' ({split[1][:-1]})'
52
+ else:
53
+ name, cmmt = long, ''
54
+
55
+ temp = [] # type: list[str]
56
+ for rfc in filter(None, re.split(r'\[|\]', rfcs)):
57
+ if 'RFC' in rfc and re.match(r'\d+', rfc[3:]):
58
+ #temp.append(f'[{rfc[:3]} {rfc[3:]}]')
59
+ temp.append(f'[:rfc:`{rfc[3:]}`]')
60
+ else:
61
+ temp.append(f'[{rfc}]'.replace('_', ' '))
62
+ tmp1 = ' %s' % ''.join(temp) if rfcs else '' # pylint: disable=consider-using-f-string
63
+ desc = self.wrap_comment(f'{name}{cmmt}{tmp1}')
64
+
65
+ try:
66
+ code, _ = item[0], int(item[0])
67
+ renm = self.rename(name, code, original=long)
68
+
69
+ pres = f"{renm} = {code}"
70
+ sufs = f"#: {desc}"
71
+
72
+ #if len(pres) > 74:
73
+ # sufs = f"\n{' '*80}{sufs}"
74
+
75
+ #enum.append(f'{pres.ljust(76)}{sufs}')
76
+ enum.append(f'{sufs}\n {pres}')
77
+ except ValueError:
78
+ start, stop = item[0].split('-')
79
+
80
+ miss.append(f'if {start} <= value <= {stop}:')
81
+ miss.append(f' # {desc}')
82
+ miss.append(f" return extend_enum(cls, '{self.safe_name(name)}_%d' % value, value)")
83
+ return enum, miss
84
+
85
+
86
+ if __name__ == '__main__':
87
+ sys.exit(Group()) # type: ignore[arg-type]
@@ -0,0 +1,29 @@
1
+ # -*- coding: utf-8 -*-
2
+ """HI Algorithm
3
+ ==================
4
+
5
+ .. module:: pcapkit.const.hip.hi_algorithm
6
+
7
+ This module contains the vendor crawler for **HI Algorithm**,
8
+ which is automatically generating :class:`pcapkit.const.hip.hi_algorithm.HIAlgorithm`.
9
+
10
+ """
11
+
12
+ import sys
13
+
14
+ from pcapkit.vendor.default import Vendor
15
+
16
+ __all__ = ['HIAlgorithm']
17
+
18
+
19
+ class HIAlgorithm(Vendor):
20
+ """HI Algorithm"""
21
+
22
+ #: Value limit checker.
23
+ FLAG = 'isinstance(value, int) and 0 <= value <= 65535'
24
+ #: Link to registry.
25
+ LINK = 'https://www.iana.org/assignments/hip-parameters/hi-algorithm.csv'
26
+
27
+
28
+ if __name__ == '__main__':
29
+ sys.exit(HIAlgorithm()) # type: ignore[arg-type]
@@ -0,0 +1,29 @@
1
+ # -*- coding: utf-8 -*-
2
+ """HIT Suite ID
3
+ ==================
4
+
5
+ .. module:: pcapkit.const.hip.hit_suite
6
+
7
+ This module contains the vendor crawler for **HIT Suite ID**,
8
+ which is automatically generating :class:`pcapkit.const.hip.hit_suite.HITSuite`.
9
+
10
+ """
11
+
12
+ import sys
13
+
14
+ from pcapkit.vendor.default import Vendor
15
+
16
+ __all__ = ['HITSuite']
17
+
18
+
19
+ class HITSuite(Vendor):
20
+ """HIT Suite ID"""
21
+
22
+ #: Value limit checker.
23
+ FLAG = 'isinstance(value, int) and 0 <= value <= 15'
24
+ #: Link to registry.
25
+ LINK = 'https://www.iana.org/assignments/hip-parameters/hit-suite-id.csv'
26
+
27
+
28
+ if __name__ == '__main__':
29
+ sys.exit(HITSuite()) # type: ignore[arg-type]
@@ -0,0 +1,29 @@
1
+ # -*- coding: utf-8 -*-
2
+ """HIP NAT Traversal Modes
3
+ =============================
4
+
5
+ .. module:: pcapkit.const.hip.nat_traversal
6
+
7
+ This module contains the vendor crawler for **HIP NAT Traversal Modes**,
8
+ which is automatically generating :class:`pcapkit.const.hip.nat_traversal.NATTraversal`.
9
+
10
+ """
11
+
12
+ import sys
13
+
14
+ from pcapkit.vendor.default import Vendor
15
+
16
+ __all__ = ['NATTraversal']
17
+
18
+
19
+ class NATTraversal(Vendor):
20
+ """HIP NAT Traversal Modes"""
21
+
22
+ #: Value limit checker.
23
+ FLAG = 'isinstance(value, int) and 0 <= value <= 65535'
24
+ #: Link to registry.
25
+ LINK = 'https://www.iana.org/assignments/hip-parameters/nat-traversal.csv'
26
+
27
+
28
+ if __name__ == '__main__':
29
+ sys.exit(NATTraversal()) # type: ignore[arg-type]
@@ -0,0 +1,29 @@
1
+ # -*- coding: utf-8 -*-
2
+ """Notify Message Types
3
+ ==========================
4
+
5
+ .. module:: pcapkit.const.hip.notify_message
6
+
7
+ This module contains the vendor crawler for **Notify Message Types**,
8
+ which is automatically generating :class:`pcapkit.const.hip.notify_message.NotifyMessage`.
9
+
10
+ """
11
+
12
+ import sys
13
+
14
+ from pcapkit.vendor.default import Vendor
15
+
16
+ __all__ = ['NotifyMessage']
17
+
18
+
19
+ class NotifyMessage(Vendor):
20
+ """Notify Message Types"""
21
+
22
+ #: Value limit checker.
23
+ FLAG = 'isinstance(value, int) and 0 <= value <= 65535'
24
+ #: Link to registry.
25
+ LINK = 'https://www.iana.org/assignments/hip-parameters/hip-parameters-9.csv'
26
+
27
+
28
+ if __name__ == '__main__':
29
+ sys.exit(NotifyMessage()) # type: ignore[arg-type]
@@ -0,0 +1,88 @@
1
+ # -*- coding: utf-8 -*-
2
+ """HIP Packet Types
3
+ ======================
4
+
5
+ .. module:: pcapkit.const.hip.packet
6
+
7
+ This module contains the vendor crawler for **HIP Packet Types**,
8
+ which is automatically generating :class:`pcapkit.const.hip.packet.Packet`.
9
+
10
+ """
11
+
12
+ import csv
13
+ import re
14
+ import sys
15
+
16
+ from pcapkit.vendor.default import Vendor
17
+
18
+ __all__ = ['Packet']
19
+
20
+
21
+ class Packet(Vendor):
22
+ """HIP Packet Types"""
23
+
24
+ #: Value limit checker.
25
+ FLAG = 'isinstance(value, int) and 0 <= value <= 127'
26
+ #: Link to registry.
27
+ LINK = 'https://www.iana.org/assignments/hip-parameters/hip-parameters-1.csv'
28
+
29
+ def process(self, data: 'list[str]') -> 'tuple[list[str], list[str]]':
30
+ """Process CSV data.
31
+
32
+ Args:
33
+ data: CSV data.
34
+
35
+ Returns:
36
+ Enumeration fields and missing fields.
37
+
38
+ """
39
+ reader = csv.reader(data)
40
+ next(reader) # header
41
+
42
+ enum = [] # type: list[str]
43
+ miss = [] # type: list[str]
44
+ for item in reader:
45
+ long = item[1]
46
+ rfcs = item[2]
47
+
48
+ if ' - ' in long:
49
+ name, cmmt = long.split(' -')
50
+ elif ' (' in long:
51
+ cmmt, name = long.strip(')').split(' (')
52
+ cmmt = f' ({cmmt})'
53
+ else:
54
+ name, cmmt = long, ''
55
+
56
+ temp = [] # type: list[str]
57
+ for rfc in filter(None, re.split(r'\[|\]', rfcs)):
58
+ if 'RFC' in rfc and re.match(r'\d+', rfc[3:]):
59
+ #temp.append(f'[{rfc[:3]} {rfc[3:]}]')
60
+ temp.append(f'[:rfc:`{rfc[3:]}`]')
61
+ else:
62
+ temp.append(f'[{rfc}]'.replace('_', ' '))
63
+ tmp1 = f" {''.join(temp)}" if rfcs else ''
64
+ desc = self.wrap_comment(f"{name}{cmmt}{tmp1}")
65
+
66
+ try:
67
+ code, _ = item[0], int(item[0])
68
+ renm = self.rename(name, code, original=long)
69
+
70
+ pres = f"{renm} = {code}"
71
+ sufs = f'#: {desc}'
72
+
73
+ #if len(pres) > 74:
74
+ # sufs = f"\n{' '*80}{sufs}"
75
+
76
+ #enum.append(f'{pres.ljust(76)}{sufs}')
77
+ enum.append(f'{sufs}\n {pres}')
78
+ except ValueError:
79
+ start, stop = item[0].split('-')
80
+
81
+ miss.append(f'if {start} <= value <= {stop}:')
82
+ miss.append(f' # {desc}')
83
+ miss.append(f" return extend_enum(cls, '{self.safe_name(name)}_%d' % value, value)")
84
+ return enum, miss
85
+
86
+
87
+ if __name__ == '__main__':
88
+ sys.exit(Packet()) # type: ignore[arg-type]
@@ -0,0 +1,88 @@
1
+ # -*- coding: utf-8 -*-
2
+ """HIP Parameter Types
3
+ =========================
4
+
5
+ .. module:: pcapkit.const.hip.parameter
6
+
7
+ This module contains the vendor crawler for **HIP Parameter Types**,
8
+ which is automatically generating :class:`pcapkit.const.hip.parameter.Parameter`.
9
+
10
+ """
11
+
12
+ import csv
13
+ import re
14
+ import sys
15
+
16
+ from pcapkit.vendor.default import Vendor
17
+
18
+ __all__ = ['Parameter']
19
+
20
+
21
+ class Parameter(Vendor):
22
+ """HIP Parameter Types"""
23
+
24
+ #: Value limit checker.
25
+ FLAG = 'isinstance(value, int) and 0 <= value <= 65535'
26
+ #: Link to registry.
27
+ LINK = 'https://www.iana.org/assignments/hip-parameters/hip-parameters-4.csv'
28
+
29
+ def process(self, data: 'list[str]') -> 'tuple[list[str], list[str]]':
30
+ """Process CSV data.
31
+
32
+ Args:
33
+ data: CSV data.
34
+
35
+ Returns:
36
+ Enumeration fields and missing fields.
37
+
38
+ """
39
+ reader = csv.reader(data)
40
+ next(reader) # header
41
+
42
+ enum = [] # type: list[str]
43
+ miss = [] # type: list[str]
44
+ for item in reader:
45
+ long = item[1]
46
+ plen = item[2]
47
+ rfcs = item[3]
48
+
49
+ match = re.match(r'(\w*) *(\(.*\))*', long)
50
+ group = match.groups() # type: ignore[union-attr]
51
+
52
+ name = group[0]
53
+ cmmt = f' {group[1]}' if group[1] else ''
54
+ plen = f' (Length: {plen})' if re.match(r'\d+', plen) else ''
55
+
56
+ temp = [] # type: list[str]
57
+ for rfc in filter(None, re.split(r'\[|\]', rfcs)):
58
+ if 'RFC' in rfc and re.match(r'\d+', rfc[3:]):
59
+ #temp.append(f'[{rfc[:3]} {rfc[3:]}]')
60
+ temp.append(f'[:rfc:`{rfc[3:]}`]')
61
+ else:
62
+ temp.append(f'[{rfc}]'.replace('_', ' '))
63
+ tmp1 = f" {''.join(temp)}" if rfcs else ''
64
+ desc = self.wrap_comment(f"{name}{cmmt}{tmp1}{plen}")
65
+
66
+ try:
67
+ code, _ = item[0], int(item[0])
68
+ renm = self.rename(name, code, original=long)
69
+
70
+ pres = f"{renm} = {code}"
71
+ sufs = f"#: {desc}"
72
+
73
+ #if len(pres) > 74:
74
+ # sufs = f"\n{' '*80}{sufs}"
75
+
76
+ #enum.append(f'{pres.ljust(76)}{sufs}')
77
+ enum.append(f'{sufs}\n {pres}')
78
+ except ValueError:
79
+ start, stop = item[0].split('-')
80
+
81
+ miss.append(f'if {start} <= value <= {stop}:')
82
+ miss.append(f" #: {desc}")
83
+ miss.append(f" return extend_enum(cls, '{self.safe_name(name)}_%d' % value, value)")
84
+ return enum, miss
85
+
86
+
87
+ if __name__ == '__main__':
88
+ sys.exit(Parameter()) # type: ignore[arg-type]
@@ -0,0 +1,29 @@
1
+ # -*- coding: utf-8 -*-
2
+ """Registration Types
3
+ ========================
4
+
5
+ .. module:: pcapkit.const.hip.registration
6
+
7
+ This module contains the vendor crawler for **Registration Types**,
8
+ which is automatically generating :class:`pcapkit.const.hip.registration.Registration`.
9
+
10
+ """
11
+
12
+ import sys
13
+
14
+ from pcapkit.vendor.default import Vendor
15
+
16
+ __all__ = ['Registration']
17
+
18
+
19
+ class Registration(Vendor):
20
+ """Registration Types"""
21
+
22
+ #: Value limit checker.
23
+ FLAG = 'isinstance(value, int) and 0 <= value <= 255'
24
+ #: Link to registry.
25
+ LINK = 'https://www.iana.org/assignments/hip-parameters/hip-parameters-11.csv'
26
+
27
+
28
+ if __name__ == '__main__':
29
+ sys.exit(Registration()) # type: ignore[arg-type]
@@ -0,0 +1,29 @@
1
+ # -*- coding: utf-8 -*-
2
+ """Registration Failure Types
3
+ ================================
4
+
5
+ .. module:: pcapkit.const.hip.registration_failure
6
+
7
+ This module contains the vendor crawler for **Registration Failure Types**,
8
+ which is automatically generating :class:`pcapkit.const.hip.registration_failure.RegistrationFailure`.
9
+
10
+ """
11
+
12
+ import sys
13
+
14
+ from pcapkit.vendor.default import Vendor
15
+
16
+ __all__ = ['RegistrationFailure']
17
+
18
+
19
+ class RegistrationFailure(Vendor):
20
+ """Registration Failure Types"""
21
+
22
+ #: Value limit checker.
23
+ FLAG = 'isinstance(value, int) and 0 <= value <= 255'
24
+ #: Link to registry.
25
+ LINK = 'https://www.iana.org/assignments/hip-parameters/hip-parameters-13.csv'
26
+
27
+
28
+ if __name__ == '__main__':
29
+ sys.exit(RegistrationFailure()) # type: ignore[arg-type]
@@ -0,0 +1,29 @@
1
+ # -*- coding: utf-8 -*-
2
+ """Suite IDs
3
+ ===============
4
+
5
+ .. module:: pcapkit.const.hip.suite
6
+
7
+ This module contains the vendor crawler for **Suite IDs**,
8
+ which is automatically generating :class:`pcapkit.const.hip.suite.Suite`.
9
+
10
+ """
11
+
12
+ import sys
13
+
14
+ from pcapkit.vendor.default import Vendor
15
+
16
+ __all__ = ['Suite']
17
+
18
+
19
+ class Suite(Vendor):
20
+ """Suite IDs"""
21
+
22
+ #: Value limit checker.
23
+ FLAG = 'isinstance(value, int) and 0 <= value <= 65535'
24
+ #: Link to registry.
25
+ LINK = 'https://www.iana.org/assignments/hip-parameters/hip-parameters-6.csv'
26
+
27
+
28
+ if __name__ == '__main__':
29
+ sys.exit(Suite()) # type: ignore[arg-type]
@@ -0,0 +1,29 @@
1
+ # -*- coding: utf-8 -*-
2
+ """HIP Transport Modes
3
+ =========================
4
+
5
+ .. module:: pcapkit.const.hip.transport
6
+
7
+ This module contains the vendor crawler for **HIP Transport Modes**,
8
+ which is automatically generating :class:`pcapkit.const.hip.transport.Transport`.
9
+
10
+ """
11
+
12
+ import sys
13
+
14
+ from pcapkit.vendor.default import Vendor
15
+
16
+ __all__ = ['Transport']
17
+
18
+
19
+ class Transport(Vendor):
20
+ """HIP Transport Modes"""
21
+
22
+ #: Value limit checker.
23
+ FLAG = 'isinstance(value, int) and 0 <= value <= 3'
24
+ #: Link to registry.
25
+ LINK = 'https://www.iana.org/assignments/hip-parameters/transport-modes.csv'
26
+
27
+
28
+ if __name__ == '__main__':
29
+ sys.exit(Transport()) # type: ignore[arg-type]