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.
- pcapkit/__init__.py +126 -0
- pcapkit/__main__.py +138 -0
- pcapkit/all.py +136 -0
- pcapkit/const/__init__.py +81 -0
- pcapkit/const/arp/__init__.py +25 -0
- pcapkit/const/arp/hardware.py +181 -0
- pcapkit/const/arp/operation.py +131 -0
- pcapkit/const/ftp/__init__.py +25 -0
- pcapkit/const/ftp/command.py +309 -0
- pcapkit/const/ftp/return_code.py +304 -0
- pcapkit/const/hip/__init__.py +94 -0
- pcapkit/const/hip/certificate.py +77 -0
- pcapkit/const/hip/cipher.py +65 -0
- pcapkit/const/hip/di.py +59 -0
- pcapkit/const/hip/ecdsa_curve.py +59 -0
- pcapkit/const/hip/ecdsa_low_curve.py +56 -0
- pcapkit/const/hip/eddsa_curve.py +65 -0
- pcapkit/const/hip/esp_transform_suite.py +98 -0
- pcapkit/const/hip/group.py +86 -0
- pcapkit/const/hip/hi_algorithm.py +86 -0
- pcapkit/const/hip/hit_suite.py +68 -0
- pcapkit/const/hip/nat_traversal.py +62 -0
- pcapkit/const/hip/notify_message.py +200 -0
- pcapkit/const/hip/packet.py +89 -0
- pcapkit/const/hip/parameter.py +377 -0
- pcapkit/const/hip/registration.py +68 -0
- pcapkit/const/hip/registration_failure.py +84 -0
- pcapkit/const/hip/suite.py +71 -0
- pcapkit/const/hip/transport.py +59 -0
- pcapkit/const/http/__init__.py +39 -0
- pcapkit/const/http/error_code.py +95 -0
- pcapkit/const/http/frame.py +95 -0
- pcapkit/const/http/method.py +184 -0
- pcapkit/const/http/setting.py +96 -0
- pcapkit/const/http/status_code.py +294 -0
- pcapkit/const/ipv4/__init__.py +57 -0
- pcapkit/const/ipv4/classification_level.py +64 -0
- pcapkit/const/ipv4/option_class.py +55 -0
- pcapkit/const/ipv4/option_number.py +137 -0
- pcapkit/const/ipv4/protection_authority.py +63 -0
- pcapkit/const/ipv4/qs_function.py +51 -0
- pcapkit/const/ipv4/router_alert.py +251 -0
- pcapkit/const/ipv4/tos_del.py +51 -0
- pcapkit/const/ipv4/tos_ecn.py +55 -0
- pcapkit/const/ipv4/tos_pre.py +63 -0
- pcapkit/const/ipv4/tos_rel.py +51 -0
- pcapkit/const/ipv4/tos_thr.py +51 -0
- pcapkit/const/ipv4/ts_flag.py +53 -0
- pcapkit/const/ipv6/__init__.py +53 -0
- pcapkit/const/ipv6/extension_header.py +66 -0
- pcapkit/const/ipv6/option.py +137 -0
- pcapkit/const/ipv6/option_action.py +55 -0
- pcapkit/const/ipv6/qs_function.py +51 -0
- pcapkit/const/ipv6/router_alert.py +266 -0
- pcapkit/const/ipv6/routing.py +80 -0
- pcapkit/const/ipv6/seed_id.py +55 -0
- pcapkit/const/ipv6/smf_dpd_mode.py +51 -0
- pcapkit/const/ipv6/tagger_id.py +62 -0
- pcapkit/const/ipx/__init__.py +27 -0
- pcapkit/const/ipx/packet.py +72 -0
- pcapkit/const/ipx/socket.py +104 -0
- pcapkit/const/l2tp/__init__.py +21 -0
- pcapkit/const/l2tp/type.py +51 -0
- pcapkit/const/mh/__init__.py +204 -0
- pcapkit/const/mh/access_type.py +92 -0
- pcapkit/const/mh/ack_status_code.py +71 -0
- pcapkit/const/mh/ani_suboption.py +74 -0
- pcapkit/const/mh/auth_subtype.py +53 -0
- pcapkit/const/mh/binding_ack_flag.py +66 -0
- pcapkit/const/mh/binding_error.py +51 -0
- pcapkit/const/mh/binding_revocation.py +59 -0
- pcapkit/const/mh/binding_update_flag.py +81 -0
- pcapkit/const/mh/cga_extension.py +66 -0
- pcapkit/const/mh/cga_sec.py +57 -0
- pcapkit/const/mh/cga_type.py +68 -0
- pcapkit/const/mh/dhcp_support_mode.py +53 -0
- pcapkit/const/mh/dns_status_code.py +65 -0
- pcapkit/const/mh/dsmip6_tls_packet.py +62 -0
- pcapkit/const/mh/dsmipv6_home_address.py +74 -0
- pcapkit/const/mh/enumerating_algorithm.py +56 -0
- pcapkit/const/mh/fb_ack_status.py +62 -0
- pcapkit/const/mh/fb_action.py +71 -0
- pcapkit/const/mh/fb_indication_trigger.py +65 -0
- pcapkit/const/mh/fb_type.py +59 -0
- pcapkit/const/mh/flow_id_status.py +77 -0
- pcapkit/const/mh/flow_id_suboption.py +71 -0
- pcapkit/const/mh/handoff_type.py +71 -0
- pcapkit/const/mh/handover_ack_flag.py +54 -0
- pcapkit/const/mh/handover_ack_status.py +92 -0
- pcapkit/const/mh/handover_initiate_flag.py +57 -0
- pcapkit/const/mh/handover_initiate_status.py +62 -0
- pcapkit/const/mh/home_address_reply.py +71 -0
- pcapkit/const/mh/lla_code.py +63 -0
- pcapkit/const/mh/lma_mag_suboption.py +59 -0
- pcapkit/const/mh/mn_group_id.py +59 -0
- pcapkit/const/mh/mn_id_subtype.py +77 -0
- pcapkit/const/mh/operator_id.py +63 -0
- pcapkit/const/mh/option.py +260 -0
- pcapkit/const/mh/packet.py +119 -0
- pcapkit/const/mh/qos_attribute.py +89 -0
- pcapkit/const/mh/revocation_status_code.py +83 -0
- pcapkit/const/mh/revocation_trigger.py +86 -0
- pcapkit/const/mh/status_code.py +232 -0
- pcapkit/const/mh/traffic_selector.py +62 -0
- pcapkit/const/mh/upa_status.py +71 -0
- pcapkit/const/mh/upn_reason.py +80 -0
- pcapkit/const/ospf/__init__.py +27 -0
- pcapkit/const/ospf/authentication.py +65 -0
- pcapkit/const/ospf/packet.py +71 -0
- pcapkit/const/pcapng/__init__.py +51 -0
- pcapkit/const/pcapng/block_type.py +152 -0
- pcapkit/const/pcapng/filter_type.py +48 -0
- pcapkit/const/pcapng/hash_algorithm.py +59 -0
- pcapkit/const/pcapng/option_type.py +233 -0
- pcapkit/const/pcapng/record_type.py +57 -0
- pcapkit/const/pcapng/secrets_type.py +56 -0
- pcapkit/const/pcapng/verdict_type.py +53 -0
- pcapkit/const/reg/__init__.py +34 -0
- pcapkit/const/reg/apptype.py +32702 -0
- pcapkit/const/reg/ethertype.py +714 -0
- pcapkit/const/reg/linktype.py +902 -0
- pcapkit/const/reg/transtype.py +523 -0
- pcapkit/const/tcp/__init__.py +35 -0
- pcapkit/const/tcp/checksum.py +55 -0
- pcapkit/const/tcp/flags.py +73 -0
- pcapkit/const/tcp/mp_tcp_option.py +80 -0
- pcapkit/const/tcp/option.py +198 -0
- pcapkit/const/vlan/__init__.py +23 -0
- pcapkit/const/vlan/priority_level.py +71 -0
- pcapkit/corekit/__init__.py +59 -0
- pcapkit/corekit/fields/__init__.py +45 -0
- pcapkit/corekit/fields/collections.py +282 -0
- pcapkit/corekit/fields/field.py +269 -0
- pcapkit/corekit/fields/ipaddress.py +274 -0
- pcapkit/corekit/fields/misc.py +722 -0
- pcapkit/corekit/fields/numbers.py +375 -0
- pcapkit/corekit/fields/strings.py +245 -0
- pcapkit/corekit/infoclass.py +394 -0
- pcapkit/corekit/io.py +506 -0
- pcapkit/corekit/module.py +39 -0
- pcapkit/corekit/multidict.py +626 -0
- pcapkit/corekit/protochain.py +263 -0
- pcapkit/corekit/version.py +33 -0
- pcapkit/dumpkit/__init__.py +15 -0
- pcapkit/dumpkit/common.py +199 -0
- pcapkit/dumpkit/null.py +77 -0
- pcapkit/dumpkit/pcap.py +144 -0
- pcapkit/foundation/__init__.py +45 -0
- pcapkit/foundation/engines/__init__.py +36 -0
- pcapkit/foundation/engines/dpkt.py +230 -0
- pcapkit/foundation/engines/engine.py +194 -0
- pcapkit/foundation/engines/pcap.py +188 -0
- pcapkit/foundation/engines/pcapng.py +310 -0
- pcapkit/foundation/engines/pyshark.py +166 -0
- pcapkit/foundation/engines/scapy.py +161 -0
- pcapkit/foundation/extraction.py +915 -0
- pcapkit/foundation/reassembly/__init__.py +49 -0
- pcapkit/foundation/reassembly/data/__init__.py +48 -0
- pcapkit/foundation/reassembly/data/ip.py +117 -0
- pcapkit/foundation/reassembly/data/tcp.py +145 -0
- pcapkit/foundation/reassembly/ip.py +192 -0
- pcapkit/foundation/reassembly/ipv4.py +50 -0
- pcapkit/foundation/reassembly/ipv6.py +50 -0
- pcapkit/foundation/reassembly/reassembly.py +389 -0
- pcapkit/foundation/reassembly/tcp.py +249 -0
- pcapkit/foundation/registry/__init__.py +41 -0
- pcapkit/foundation/registry/foundation.py +327 -0
- pcapkit/foundation/registry/protocols.py +885 -0
- pcapkit/foundation/traceflow/__init__.py +44 -0
- pcapkit/foundation/traceflow/data/__init__.py +30 -0
- pcapkit/foundation/traceflow/data/tcp.py +105 -0
- pcapkit/foundation/traceflow/tcp.py +159 -0
- pcapkit/foundation/traceflow/traceflow.py +390 -0
- pcapkit/interface/__init__.py +22 -0
- pcapkit/interface/core.py +185 -0
- pcapkit/interface/misc.py +120 -0
- pcapkit/protocols/__init__.py +85 -0
- pcapkit/protocols/application/NotImplemented/bgp.py +0 -0
- pcapkit/protocols/application/NotImplemented/dhcp.py +0 -0
- pcapkit/protocols/application/NotImplemented/dhcpv6.py +0 -0
- pcapkit/protocols/application/NotImplemented/dns.py +0 -0
- pcapkit/protocols/application/NotImplemented/imap.py +0 -0
- pcapkit/protocols/application/NotImplemented/ldap.py +0 -0
- pcapkit/protocols/application/NotImplemented/mqtt.py +0 -0
- pcapkit/protocols/application/NotImplemented/nntp.py +0 -0
- pcapkit/protocols/application/NotImplemented/ntp.py +0 -0
- pcapkit/protocols/application/NotImplemented/onc_rpc.py +0 -0
- pcapkit/protocols/application/NotImplemented/pop.py +0 -0
- pcapkit/protocols/application/NotImplemented/rip.py +0 -0
- pcapkit/protocols/application/NotImplemented/rtp.py +0 -0
- pcapkit/protocols/application/NotImplemented/sip.py +0 -0
- pcapkit/protocols/application/NotImplemented/smtp.py +0 -0
- pcapkit/protocols/application/NotImplemented/snmp.py +0 -0
- pcapkit/protocols/application/NotImplemented/ssh.py +0 -0
- pcapkit/protocols/application/NotImplemented/telnet.py +0 -0
- pcapkit/protocols/application/NotImplemented/tls.py +0 -0
- pcapkit/protocols/application/NotImplemented/xmpp.py +0 -0
- pcapkit/protocols/application/__init__.py +34 -0
- pcapkit/protocols/application/application.py +114 -0
- pcapkit/protocols/application/ftp.py +206 -0
- pcapkit/protocols/application/http.py +176 -0
- pcapkit/protocols/application/httpv1.py +320 -0
- pcapkit/protocols/application/httpv2.py +1255 -0
- pcapkit/protocols/data/__init__.py +192 -0
- pcapkit/protocols/data/application/__init__.py +57 -0
- pcapkit/protocols/data/application/ftp.py +59 -0
- pcapkit/protocols/data/application/httpv1.py +79 -0
- pcapkit/protocols/data/application/httpv2.py +293 -0
- pcapkit/protocols/data/data.py +25 -0
- pcapkit/protocols/data/internet/__init__.py +298 -0
- pcapkit/protocols/data/internet/ah.py +31 -0
- pcapkit/protocols/data/internet/hip.py +804 -0
- pcapkit/protocols/data/internet/hopopt.py +351 -0
- pcapkit/protocols/data/internet/ipv4.py +369 -0
- pcapkit/protocols/data/internet/ipv6.py +67 -0
- pcapkit/protocols/data/internet/ipv6_frag.py +29 -0
- pcapkit/protocols/data/internet/ipv6_opts.py +368 -0
- pcapkit/protocols/data/internet/ipv6_route.py +86 -0
- pcapkit/protocols/data/internet/ipx.py +56 -0
- pcapkit/protocols/data/internet/mh.py +509 -0
- pcapkit/protocols/data/link/__init__.py +33 -0
- pcapkit/protocols/data/link/arp.py +74 -0
- pcapkit/protocols/data/link/ethernet.py +28 -0
- pcapkit/protocols/data/link/l2tp.py +63 -0
- pcapkit/protocols/data/link/ospf.py +58 -0
- pcapkit/protocols/data/link/vlan.py +42 -0
- pcapkit/protocols/data/misc/__init__.py +109 -0
- pcapkit/protocols/data/misc/null.py +18 -0
- pcapkit/protocols/data/misc/pcap/__init__.py +18 -0
- pcapkit/protocols/data/misc/pcap/frame.py +56 -0
- pcapkit/protocols/data/misc/pcap/header.py +53 -0
- pcapkit/protocols/data/misc/pcapng.py +925 -0
- pcapkit/protocols/data/misc/raw.py +25 -0
- pcapkit/protocols/data/protocol.py +32 -0
- pcapkit/protocols/data/transport/__init__.py +71 -0
- pcapkit/protocols/data/transport/tcp.py +555 -0
- pcapkit/protocols/data/transport/udp.py +29 -0
- pcapkit/protocols/internet/NotImplemented/ecn.py +0 -0
- pcapkit/protocols/internet/NotImplemented/esp.py +97 -0
- pcapkit/protocols/internet/NotImplemented/icmp.py +0 -0
- pcapkit/protocols/internet/NotImplemented/icmpv6.py +0 -0
- pcapkit/protocols/internet/NotImplemented/igmp.py +0 -0
- pcapkit/protocols/internet/NotImplemented/shim6.py +0 -0
- pcapkit/protocols/internet/__init__.py +43 -0
- pcapkit/protocols/internet/ah.py +275 -0
- pcapkit/protocols/internet/hip.py +4727 -0
- pcapkit/protocols/internet/hopopt.py +1879 -0
- pcapkit/protocols/internet/internet.py +240 -0
- pcapkit/protocols/internet/ip.py +51 -0
- pcapkit/protocols/internet/ipsec.py +50 -0
- pcapkit/protocols/internet/ipv4.py +1782 -0
- pcapkit/protocols/internet/ipv6.py +361 -0
- pcapkit/protocols/internet/ipv6_frag.py +258 -0
- pcapkit/protocols/internet/ipv6_opts.py +1890 -0
- pcapkit/protocols/internet/ipv6_route.py +710 -0
- pcapkit/protocols/internet/ipx.py +230 -0
- pcapkit/protocols/internet/mh.py +2764 -0
- pcapkit/protocols/link/NotImplemented/dsl.py +0 -0
- pcapkit/protocols/link/NotImplemented/eapol.py +1 -0
- pcapkit/protocols/link/NotImplemented/fddi.py +0 -0
- pcapkit/protocols/link/NotImplemented/isdn.py +0 -0
- pcapkit/protocols/link/NotImplemented/ndp.py +0 -0
- pcapkit/protocols/link/NotImplemented/ppp.py +0 -0
- pcapkit/protocols/link/__init__.py +35 -0
- pcapkit/protocols/link/arp.py +421 -0
- pcapkit/protocols/link/ethernet.py +248 -0
- pcapkit/protocols/link/l2tp.py +267 -0
- pcapkit/protocols/link/link.py +140 -0
- pcapkit/protocols/link/ospf.py +342 -0
- pcapkit/protocols/link/rarp.py +82 -0
- pcapkit/protocols/link/vlan.py +225 -0
- pcapkit/protocols/misc/__init__.py +37 -0
- pcapkit/protocols/misc/null.py +129 -0
- pcapkit/protocols/misc/pcap/__init__.py +17 -0
- pcapkit/protocols/misc/pcap/frame.py +478 -0
- pcapkit/protocols/misc/pcap/header.py +358 -0
- pcapkit/protocols/misc/pcapng.py +5520 -0
- pcapkit/protocols/misc/raw.py +180 -0
- pcapkit/protocols/protocol.py +1216 -0
- pcapkit/protocols/schema/__init__.py +140 -0
- pcapkit/protocols/schema/application/__init__.py +40 -0
- pcapkit/protocols/schema/application/ftp.py +21 -0
- pcapkit/protocols/schema/application/httpv1.py +21 -0
- pcapkit/protocols/schema/application/httpv2.py +384 -0
- pcapkit/protocols/schema/internet/__init__.py +294 -0
- pcapkit/protocols/schema/internet/ah.py +40 -0
- pcapkit/protocols/schema/internet/hip.py +1184 -0
- pcapkit/protocols/schema/internet/hopopt.py +679 -0
- pcapkit/protocols/schema/internet/ipv4.py +576 -0
- pcapkit/protocols/schema/internet/ipv6.py +63 -0
- pcapkit/protocols/schema/internet/ipv6_frag.py +48 -0
- pcapkit/protocols/schema/internet/ipv6_opts.py +680 -0
- pcapkit/protocols/schema/internet/ipv6_route.py +198 -0
- pcapkit/protocols/schema/internet/ipx.py +40 -0
- pcapkit/protocols/schema/internet/mh.py +718 -0
- pcapkit/protocols/schema/link/__init__.py +19 -0
- pcapkit/protocols/schema/link/arp.py +39 -0
- pcapkit/protocols/schema/link/ethernet.py +51 -0
- pcapkit/protocols/schema/link/l2tp.py +88 -0
- pcapkit/protocols/schema/link/ospf.py +90 -0
- pcapkit/protocols/schema/link/vlan.py +69 -0
- pcapkit/protocols/schema/misc/__init__.py +108 -0
- pcapkit/protocols/schema/misc/null.py +18 -0
- pcapkit/protocols/schema/misc/pcap/__init__.py +10 -0
- pcapkit/protocols/schema/misc/pcap/frame.py +51 -0
- pcapkit/protocols/schema/misc/pcap/header.py +63 -0
- pcapkit/protocols/schema/misc/pcapng.py +1689 -0
- pcapkit/protocols/schema/misc/raw.py +24 -0
- pcapkit/protocols/schema/schema.py +809 -0
- pcapkit/protocols/schema/transport/__init__.py +69 -0
- pcapkit/protocols/schema/transport/tcp.py +928 -0
- pcapkit/protocols/schema/transport/udp.py +90 -0
- pcapkit/protocols/transport/NotImplemented/dccp.py +0 -0
- pcapkit/protocols/transport/NotImplemented/rsvp.py +0 -0
- pcapkit/protocols/transport/NotImplemented/sctp.py +0 -0
- pcapkit/protocols/transport/__init__.py +27 -0
- pcapkit/protocols/transport/tcp.py +3025 -0
- pcapkit/protocols/transport/transport.py +158 -0
- pcapkit/protocols/transport/udp.py +214 -0
- pcapkit/py.typed +0 -0
- pcapkit/toolkit/__init__.py +57 -0
- pcapkit/toolkit/dpkt.py +306 -0
- pcapkit/toolkit/pcap.py +212 -0
- pcapkit/toolkit/pcapng.py +251 -0
- pcapkit/toolkit/pyshark.py +99 -0
- pcapkit/toolkit/scapy.py +297 -0
- pcapkit/utilities/__init__.py +20 -0
- pcapkit/utilities/compat.py +196 -0
- pcapkit/utilities/decorators.py +192 -0
- pcapkit/utilities/exceptions.py +365 -0
- pcapkit/utilities/logging.py +55 -0
- pcapkit/utilities/warnings.py +185 -0
- pcapkit/vendor/__init__.py +105 -0
- pcapkit/vendor/__main__.py +92 -0
- pcapkit/vendor/arp/__init__.py +27 -0
- pcapkit/vendor/arp/hardware.py +29 -0
- pcapkit/vendor/arp/operation.py +29 -0
- pcapkit/vendor/default.py +474 -0
- pcapkit/vendor/ftp/__init__.py +27 -0
- pcapkit/vendor/ftp/command.py +244 -0
- pcapkit/vendor/ftp/return_code.py +256 -0
- pcapkit/vendor/hip/__init__.py +94 -0
- pcapkit/vendor/hip/certificate.py +29 -0
- pcapkit/vendor/hip/cipher.py +29 -0
- pcapkit/vendor/hip/di.py +29 -0
- pcapkit/vendor/hip/ecdsa_curve.py +29 -0
- pcapkit/vendor/hip/ecdsa_low_curve.py +29 -0
- pcapkit/vendor/hip/eddsa_curve.py +85 -0
- pcapkit/vendor/hip/esp_transform_suite.py +29 -0
- pcapkit/vendor/hip/group.py +87 -0
- pcapkit/vendor/hip/hi_algorithm.py +29 -0
- pcapkit/vendor/hip/hit_suite.py +29 -0
- pcapkit/vendor/hip/nat_traversal.py +29 -0
- pcapkit/vendor/hip/notify_message.py +29 -0
- pcapkit/vendor/hip/packet.py +88 -0
- pcapkit/vendor/hip/parameter.py +88 -0
- pcapkit/vendor/hip/registration.py +29 -0
- pcapkit/vendor/hip/registration_failure.py +29 -0
- pcapkit/vendor/hip/suite.py +29 -0
- pcapkit/vendor/hip/transport.py +29 -0
- pcapkit/vendor/http/__init__.py +39 -0
- pcapkit/vendor/http/error_code.py +95 -0
- pcapkit/vendor/http/frame.py +91 -0
- pcapkit/vendor/http/method.py +167 -0
- pcapkit/vendor/http/setting.py +93 -0
- pcapkit/vendor/http/status_code.py +185 -0
- pcapkit/vendor/ipv4/__init__.py +57 -0
- pcapkit/vendor/ipv4/classification_level.py +91 -0
- pcapkit/vendor/ipv4/option_class.py +80 -0
- pcapkit/vendor/ipv4/option_number.py +105 -0
- pcapkit/vendor/ipv4/protection_authority.py +84 -0
- pcapkit/vendor/ipv4/qs_function.py +78 -0
- pcapkit/vendor/ipv4/router_alert.py +93 -0
- pcapkit/vendor/ipv4/tos_del.py +78 -0
- pcapkit/vendor/ipv4/tos_ecn.py +95 -0
- pcapkit/vendor/ipv4/tos_pre.py +84 -0
- pcapkit/vendor/ipv4/tos_rel.py +78 -0
- pcapkit/vendor/ipv4/tos_thr.py +77 -0
- pcapkit/vendor/ipv4/ts_flag.py +79 -0
- pcapkit/vendor/ipv6/__init__.py +53 -0
- pcapkit/vendor/ipv6/extension_header.py +171 -0
- pcapkit/vendor/ipv6/option.py +104 -0
- pcapkit/vendor/ipv6/option_action.py +90 -0
- pcapkit/vendor/ipv6/qs_function.py +78 -0
- pcapkit/vendor/ipv6/router_alert.py +93 -0
- pcapkit/vendor/ipv6/routing.py +87 -0
- pcapkit/vendor/ipv6/seed_id.py +81 -0
- pcapkit/vendor/ipv6/smf_dpd_mode.py +78 -0
- pcapkit/vendor/ipv6/tagger_id.py +81 -0
- pcapkit/vendor/ipx/__init__.py +37 -0
- pcapkit/vendor/ipx/packet.py +123 -0
- pcapkit/vendor/ipx/socket.py +125 -0
- pcapkit/vendor/l2tp/__init__.py +21 -0
- pcapkit/vendor/l2tp/type.py +78 -0
- pcapkit/vendor/mh/__init__.py +204 -0
- pcapkit/vendor/mh/access_type.py +87 -0
- pcapkit/vendor/mh/ack_status_code.py +88 -0
- pcapkit/vendor/mh/ani_suboption.py +88 -0
- pcapkit/vendor/mh/auth_subtype.py +83 -0
- pcapkit/vendor/mh/binding_ack_flag.py +148 -0
- pcapkit/vendor/mh/binding_error.py +78 -0
- pcapkit/vendor/mh/binding_revocation.py +87 -0
- pcapkit/vendor/mh/binding_update_flag.py +147 -0
- pcapkit/vendor/mh/cga_extension.py +91 -0
- pcapkit/vendor/mh/cga_sec.py +91 -0
- pcapkit/vendor/mh/cga_type.py +74 -0
- pcapkit/vendor/mh/dhcp_support_mode.py +77 -0
- pcapkit/vendor/mh/dns_status_code.py +87 -0
- pcapkit/vendor/mh/dsmip6_tls_packet.py +87 -0
- pcapkit/vendor/mh/dsmipv6_home_address.py +87 -0
- pcapkit/vendor/mh/enumerating_algorithm.py +82 -0
- pcapkit/vendor/mh/fb_ack_status.py +87 -0
- pcapkit/vendor/mh/fb_action.py +88 -0
- pcapkit/vendor/mh/fb_indication_trigger.py +87 -0
- pcapkit/vendor/mh/fb_type.py +88 -0
- pcapkit/vendor/mh/flow_id_status.py +87 -0
- pcapkit/vendor/mh/flow_id_suboption.py +87 -0
- pcapkit/vendor/mh/handoff_type.py +87 -0
- pcapkit/vendor/mh/handover_ack_flag.py +143 -0
- pcapkit/vendor/mh/handover_ack_status.py +87 -0
- pcapkit/vendor/mh/handover_initiate_flag.py +143 -0
- pcapkit/vendor/mh/handover_initiate_status.py +87 -0
- pcapkit/vendor/mh/home_address_reply.py +87 -0
- pcapkit/vendor/mh/lla_code.py +97 -0
- pcapkit/vendor/mh/lma_mag_suboption.py +88 -0
- pcapkit/vendor/mh/mn_group_id.py +87 -0
- pcapkit/vendor/mh/mn_id_subtype.py +87 -0
- pcapkit/vendor/mh/operator_id.py +87 -0
- pcapkit/vendor/mh/option.py +83 -0
- pcapkit/vendor/mh/packet.py +82 -0
- pcapkit/vendor/mh/qos_attribute.py +87 -0
- pcapkit/vendor/mh/revocation_status_code.py +87 -0
- pcapkit/vendor/mh/revocation_trigger.py +87 -0
- pcapkit/vendor/mh/status_code.py +91 -0
- pcapkit/vendor/mh/traffic_selector.py +87 -0
- pcapkit/vendor/mh/upa_status.py +87 -0
- pcapkit/vendor/mh/upn_reason.py +87 -0
- pcapkit/vendor/ospf/__init__.py +27 -0
- pcapkit/vendor/ospf/authentication.py +29 -0
- pcapkit/vendor/ospf/packet.py +29 -0
- pcapkit/vendor/pcapng/__init__.py +51 -0
- pcapkit/vendor/pcapng/block_type.py +94 -0
- pcapkit/vendor/pcapng/filter_type.py +77 -0
- pcapkit/vendor/pcapng/hash_algorithm.py +82 -0
- pcapkit/vendor/pcapng/option_type.py +287 -0
- pcapkit/vendor/pcapng/record_type.py +81 -0
- pcapkit/vendor/pcapng/secrets_type.py +81 -0
- pcapkit/vendor/pcapng/verdict_type.py +79 -0
- pcapkit/vendor/reg/__init__.py +34 -0
- pcapkit/vendor/reg/apptype.py +338 -0
- pcapkit/vendor/reg/ethertype.py +121 -0
- pcapkit/vendor/reg/linktype.py +110 -0
- pcapkit/vendor/reg/transtype.py +111 -0
- pcapkit/vendor/tcp/__init__.py +35 -0
- pcapkit/vendor/tcp/checksum.py +80 -0
- pcapkit/vendor/tcp/flags.py +149 -0
- pcapkit/vendor/tcp/mp_tcp_option.py +90 -0
- pcapkit/vendor/tcp/option.py +103 -0
- pcapkit/vendor/vlan/__init__.py +23 -0
- pcapkit/vendor/vlan/priority_level.py +97 -0
- pypcapkit-1.3.3.post1.dist-info/LICENSE +29 -0
- pypcapkit-1.3.3.post1.dist-info/METADATA +236 -0
- pypcapkit-1.3.3.post1.dist-info/RECORD +466 -0
- pypcapkit-1.3.3.post1.dist-info/WHEEL +5 -0
- pypcapkit-1.3.3.post1.dist-info/entry_points.txt +3 -0
- 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]
|