pypcapkit 1.1.0.post2__pp39-none-any.whl → 1.1.1__pp39-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 +1 -1
- pcapkit/const/reg/apptype.py +11 -10
- pcapkit/corekit/infoclass.py +1 -1
- pcapkit/dumpkit/common.py +2 -1
- pcapkit/foundation/extraction.py +47 -19
- pcapkit/foundation/traceflow/tcp.py +4 -1
- pcapkit/protocols/protocol.py +1 -10
- pcapkit/protocols/schema/schema.py +3 -3
- pcapkit/toolkit/pcap.py +4 -4
- pcapkit/toolkit/pcapng.py +4 -4
- pcapkit/utilities/compat.py +1 -1
- pcapkit/vendor/reg/apptype.py +8 -8
- {pypcapkit-1.1.0.post2.dist-info → pypcapkit-1.1.1.dist-info}/METADATA +6 -6
- {pypcapkit-1.1.0.post2.dist-info → pypcapkit-1.1.1.dist-info}/RECORD +18 -18
- {pypcapkit-1.1.0.post2.dist-info → pypcapkit-1.1.1.dist-info}/WHEEL +1 -1
- {pypcapkit-1.1.0.post2.dist-info → pypcapkit-1.1.1.dist-info}/LICENSE +0 -0
- {pypcapkit-1.1.0.post2.dist-info → pypcapkit-1.1.1.dist-info}/entry_points.txt +0 -0
- {pypcapkit-1.1.0.post2.dist-info → pypcapkit-1.1.1.dist-info}/top_level.txt +0 -0
pcapkit/__init__.py
CHANGED
pcapkit/const/reg/apptype.py
CHANGED
@@ -93,28 +93,28 @@ class AppType(StrEnum):
|
|
93
93
|
return '%s [%d - %s]' % (self.svc, self.port, self.proto.name)
|
94
94
|
|
95
95
|
def __int__(self) -> 'int':
|
96
|
-
return self.
|
96
|
+
return self.port
|
97
97
|
|
98
98
|
def __lt__(self, other: 'AppType') -> 'bool':
|
99
|
-
return self.
|
99
|
+
return self.port < other
|
100
100
|
|
101
101
|
def __gt__(self, other: 'AppType') -> 'bool':
|
102
|
-
return self.
|
102
|
+
return self.port > other
|
103
103
|
|
104
104
|
def __le__(self, other: 'AppType') -> 'bool':
|
105
|
-
return self.
|
105
|
+
return self.port <= other
|
106
106
|
|
107
107
|
def __ge__(self, other: 'AppType') -> 'bool':
|
108
|
-
return self.
|
108
|
+
return self.port >= other
|
109
109
|
|
110
110
|
def __eq__(self, other: 'Any') -> 'bool':
|
111
|
-
return self.
|
111
|
+
return self.port == other
|
112
112
|
|
113
113
|
def __ne__(self, other: 'Any') -> 'bool':
|
114
|
-
return self.
|
114
|
+
return self.port != other
|
115
115
|
|
116
116
|
def __hash__(self) -> 'int':
|
117
|
-
return hash(self.
|
117
|
+
return hash(self.port)
|
118
118
|
|
119
119
|
#: - [TCP] Reserved
|
120
120
|
#: - [UDP] Reserved
|
@@ -28688,8 +28688,9 @@ class AppType(StrEnum):
|
|
28688
28688
|
#: [TCP] Topology Discovery
|
28689
28689
|
kiwin: 'AppType' = -1, 'kiwin', TransportProtocol.get('tcp')
|
28690
28690
|
|
28691
|
-
#: [
|
28692
|
-
|
28691
|
+
#: - [TCP] KNX Discovery Protocol
|
28692
|
+
#: - [UDP] Discovery in KNX IoT Point API
|
28693
|
+
knx: 'AppType' = -1, 'knx', TransportProtocol.get('tcp') | TransportProtocol.get('udp')
|
28693
28694
|
|
28694
28695
|
#: [N/A] Kabira Transaction Platform
|
28695
28696
|
ktp: 'AppType' = -1, 'ktp', TransportProtocol.get('undefined')
|
pcapkit/corekit/infoclass.py
CHANGED
@@ -318,7 +318,7 @@ class Info(Mapping[str, VT], Generic[VT], metaclass=InfoMeta):
|
|
318
318
|
else:
|
319
319
|
temp.append(f'{out_key}={value!r}')
|
320
320
|
args = ', '.join(temp)
|
321
|
-
return f'{type(self).__name__}
|
321
|
+
return f'<{type(self).__name__} {args}>'
|
322
322
|
|
323
323
|
def __len__(self) -> 'int':
|
324
324
|
return len(self.__dict__)
|
pcapkit/dumpkit/common.py
CHANGED
@@ -21,6 +21,7 @@ import aenum
|
|
21
21
|
|
22
22
|
from pcapkit.corekit.infoclass import Info
|
23
23
|
from pcapkit.corekit.multidict import MultiDict, OrderedMultiDict
|
24
|
+
from pcapkit.protocols.schema.schema import Schema
|
24
25
|
from pcapkit.utilities.logging import logger
|
25
26
|
|
26
27
|
__all__ = ['make_dumper']
|
@@ -60,7 +61,7 @@ def make_dumper(output: 'Type[Dumper]') -> 'Type[Dumper]':
|
|
60
61
|
return str(o)
|
61
62
|
if isinstance(o, datetime.timedelta):
|
62
63
|
return o.total_seconds()
|
63
|
-
if isinstance(o, Info):
|
64
|
+
if isinstance(o, (Info, Schema)):
|
64
65
|
return o.to_dict()
|
65
66
|
if isinstance(o, (ipaddress.IPv4Address, ipaddress.IPv6Address)):
|
66
67
|
return str(o)
|
pcapkit/foundation/extraction.py
CHANGED
@@ -24,9 +24,12 @@ from pcapkit.dumpkit.common import make_dumper
|
|
24
24
|
from pcapkit.foundation.engines.pcap import PCAP as PCAP_Engine
|
25
25
|
from pcapkit.foundation.engines.pcapng import PCAPNG as PCAPNG_Engine
|
26
26
|
from pcapkit.foundation.reassembly import ReassemblyManager
|
27
|
+
from pcapkit.foundation.reassembly.data import ReassemblyData
|
27
28
|
from pcapkit.foundation.traceflow import TraceFlowManager
|
29
|
+
from pcapkit.foundation.traceflow.data import TraceFlowData
|
28
30
|
from pcapkit.utilities.exceptions import (CallableError, FileNotFound, FormatError, IterableError,
|
29
31
|
UnsupportedCall, stacklevel)
|
32
|
+
from pcapkit.utilities.logging import logger
|
30
33
|
from pcapkit.utilities.warnings import EngineWarning, FormatWarning, warn
|
31
34
|
|
32
35
|
if TYPE_CHECKING:
|
@@ -40,8 +43,6 @@ if TYPE_CHECKING:
|
|
40
43
|
from typing_extensions import Literal
|
41
44
|
|
42
45
|
from pcapkit.foundation.engines.engine import Engine
|
43
|
-
from pcapkit.foundation.reassembly.data import ReassemblyData
|
44
|
-
from pcapkit.foundation.traceflow.data import TraceFlowData
|
45
46
|
from pcapkit.protocols.misc.pcap.frame import Frame
|
46
47
|
from pcapkit.protocols.misc.pcapng import PCAPNG
|
47
48
|
from pcapkit.protocols.protocol import Protocol
|
@@ -208,7 +209,7 @@ class Extractor(Generic[P]):
|
|
208
209
|
|
209
210
|
Raises:
|
210
211
|
UnsupportedCall: If :attr:`self._flag_d <pcapkit.foundation.extraction.Extractor._flag_d>`
|
211
|
-
is :data:`
|
212
|
+
is :data:`False`, as storing frame data is disabled.
|
212
213
|
|
213
214
|
"""
|
214
215
|
if self._flag_d:
|
@@ -219,25 +220,41 @@ class Extractor(Generic[P]):
|
|
219
220
|
def reassembly(self) -> 'ReassemblyData':
|
220
221
|
"""Frame record for reassembly.
|
221
222
|
|
222
|
-
* ``ipv4`` -- tuple of
|
223
|
-
* ``ipv6`` -- tuple of
|
223
|
+
* ``ipv4`` -- tuple of IPv4 payload fragment (:term:`reasm.ipv4.datagram`)
|
224
|
+
* ``ipv6`` -- tuple of IPv6 payload fragment (:term:`reasm.ipv6.datagram`)
|
224
225
|
* ``tcp`` -- tuple of TCP payload fragment (:term:`reasm.tcp.datagram`)
|
225
226
|
|
227
|
+
Raises:
|
228
|
+
UnsupportedCall: If :attr:`self._flag_r <pcapkit.foundation.extraction.Extractor._flag_r>`
|
229
|
+
is :data:`False`, as reassembly is disabled.
|
230
|
+
|
226
231
|
"""
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
232
|
+
if self._flag_r:
|
233
|
+
data = ReassemblyData(
|
234
|
+
ipv4=tuple(self._reasm.ipv4.datagram) if self._ipv4 else None,
|
235
|
+
ipv6=tuple(self._reasm.ipv6.datagram) if self._ipv6 else None,
|
236
|
+
tcp=tuple(self._reasm.tcp.datagram) if self._tcp else None,
|
237
|
+
)
|
238
|
+
return data
|
239
|
+
raise UnsupportedCall("'Extractor(reassembly=False)' object has no attribute 'reassembly'")
|
233
240
|
|
234
241
|
@property
|
235
242
|
def trace(self) -> 'TraceFlowData':
|
236
|
-
"""Index table for traced flow.
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
243
|
+
"""Index table for traced flow.
|
244
|
+
|
245
|
+
* ``tcp`` -- tuple of TCP flows (:term:`trace.tcp.index`)
|
246
|
+
|
247
|
+
Raises:
|
248
|
+
UnsupportedCall: If :attr:`self._flag_t <pcapkit.foundation.extraction.Extractor._flag_t>`
|
249
|
+
is :data:`False`, as flow tracing is disabled.
|
250
|
+
|
251
|
+
"""
|
252
|
+
if self._flag_t:
|
253
|
+
data = TraceFlowData(
|
254
|
+
tcp=tuple(self._trace.tcp.index) if self._tcp else None,
|
255
|
+
)
|
256
|
+
return data
|
257
|
+
raise UnsupportedCall("'Extractor(trace=False)' object has no attribute 'trace'")
|
241
258
|
|
242
259
|
@property
|
243
260
|
def engine(self) -> 'Engine':
|
@@ -536,10 +553,11 @@ class Extractor(Generic[P]):
|
|
536
553
|
trace_byteorder: output file byte order
|
537
554
|
trace_nanosecond: output nanosecond-resolution file flag
|
538
555
|
|
539
|
-
ip: if record data for IPv4 & IPv6 reassembly
|
540
|
-
ipv4: if perform IPv4 reassembly
|
541
|
-
ipv6: if perform IPv6 reassembly
|
556
|
+
ip: if record data for IPv4 & IPv6 reassembly (must be used with ``reassembly=True``)
|
557
|
+
ipv4: if perform IPv4 reassembly (must be used with ``reassembly=True``)
|
558
|
+
ipv6: if perform IPv6 reassembly (must be used with ``reassembly=True``)
|
542
559
|
tcp: if perform TCP reassembly and/or flow tracing
|
560
|
+
(must be used with ``reassembly=True`` or ``trace=True``)
|
543
561
|
|
544
562
|
Warns:
|
545
563
|
FormatWarning: Warns under following circumstances:
|
@@ -599,6 +617,13 @@ class Extractor(Generic[P]):
|
|
599
617
|
from pcapkit.foundation.reassembly.ipv6 import IPv6 as IPv6_Reassembly
|
600
618
|
from pcapkit.foundation.reassembly.tcp import TCP as TCP_Reassembly
|
601
619
|
|
620
|
+
if self._ipv4:
|
621
|
+
logger.info('IPv4 reassembly enabled')
|
622
|
+
if self._ipv6:
|
623
|
+
logger.info('IPv6 reassembly enabled')
|
624
|
+
if self._tcp:
|
625
|
+
logger.info('TCP reassembly enabled')
|
626
|
+
|
602
627
|
self._reasm = ReassemblyManager(
|
603
628
|
ipv4=IPv4_Reassembly(strict=strict) if self._ipv4 else None,
|
604
629
|
ipv6=IPv6_Reassembly(strict=strict) if self._ipv6 else None,
|
@@ -613,6 +638,9 @@ class Extractor(Generic[P]):
|
|
613
638
|
"using 'trace_format=None' instead", FormatWarning, stacklevel=stacklevel())
|
614
639
|
trace_format = None
|
615
640
|
|
641
|
+
if self._tcp:
|
642
|
+
logger.info('TCP flow tracing enabled')
|
643
|
+
|
616
644
|
self._trace = TraceFlowManager(
|
617
645
|
tcp=TCP_TraceFlow(fout=trace_fout, format=trace_format, byteorder=trace_byteorder,
|
618
646
|
nanosecond=trace_nanosecond) if self._tcp else None,
|
@@ -111,7 +111,10 @@ class TCP(TraceFlow[BufferID, Buffer, Index, Packet[IPAddress]], Generic[IPAddre
|
|
111
111
|
|
112
112
|
# initialise buffer with BUFID
|
113
113
|
if BUFID not in self._buffer:
|
114
|
-
|
114
|
+
if packet.src.version == 4:
|
115
|
+
label = f'{packet.src}_{packet.srcport}-{packet.dst}_{packet.dstport}-{packet.timestamp}'
|
116
|
+
else:
|
117
|
+
label = f'{packet.src}_{packet.srcport}-{packet.dst}_{packet.dstport}-{packet.timestamp}'.replace(':', '.')
|
115
118
|
self._buffer[BUFID] = Buffer(
|
116
119
|
fpout=self._foutio(fname=f'{self._fproot}/{label}{self._fdpext or ""}', protocol=packet.protocol,
|
117
120
|
byteorder=self._endian, nanosecond=self._nnsecd),
|
pcapkit/protocols/protocol.py
CHANGED
@@ -571,17 +571,8 @@ class Protocol(Generic[PT, ST], metaclass=abc.ABCMeta):
|
|
571
571
|
if (cached := self.__cached__.get('__repr__')) is not None:
|
572
572
|
return cached
|
573
573
|
|
574
|
-
name = type(self).__name__
|
575
|
-
temp = [] # type: list[str]
|
576
|
-
for (key, value) in self._info.items():
|
577
|
-
if isinstance(value, Info):
|
578
|
-
temp.append(f'{key}=...')
|
579
|
-
else:
|
580
|
-
temp.append(f'{key}={value!r}')
|
581
|
-
args = ', '.join(temp)
|
582
|
-
|
583
574
|
# cache and return
|
584
|
-
repr_ = f'<{
|
575
|
+
repr_ = f'<{self.alias} {self.info_name}={self._info!r}>'
|
585
576
|
|
586
577
|
self.__cached__['__repr__'] = repr_
|
587
578
|
return repr_
|
@@ -790,9 +790,9 @@ class EnumSchema(Schema, Generic[ET], metaclass=EnumMeta):
|
|
790
790
|
if code is not None:
|
791
791
|
if isinstance(code, collections.abc.Iterable):
|
792
792
|
for _code in code:
|
793
|
-
cls.__enum__[_code] = (cls)
|
793
|
+
cls.__enum__[_code] = (cls) # type: ignore[index]
|
794
794
|
else:
|
795
|
-
cls.__enum__[code] = (cls)
|
795
|
+
cls.__enum__[code] = (cls) # type: ignore[index]
|
796
796
|
super().__init_subclass__()
|
797
797
|
|
798
798
|
@classmethod
|
@@ -804,4 +804,4 @@ class EnumSchema(Schema, Generic[ET], metaclass=EnumMeta):
|
|
804
804
|
schema: Enumetaion schema.
|
805
805
|
|
806
806
|
"""
|
807
|
-
cls.__enum__[code] = schema
|
807
|
+
cls.__enum__[code] = schema # type: ignore[index]
|
pcapkit/toolkit/pcap.py
CHANGED
@@ -151,9 +151,9 @@ def tcp_reassembly(frame: 'Frame') -> 'TCP_Packet | None':
|
|
151
151
|
data = TCP_Packet(
|
152
152
|
bufid=(
|
153
153
|
ip_info.src, # source IP address
|
154
|
-
tcp_info.srcport,
|
154
|
+
tcp_info.srcport.port, # source port
|
155
155
|
ip_info.dst, # destination IP address
|
156
|
-
tcp_info.dstport,
|
156
|
+
tcp_info.dstport.port, # destination port
|
157
157
|
),
|
158
158
|
num=frame.info.number, # original packet range number
|
159
159
|
ack=tcp_info.ack, # acknowledgement
|
@@ -204,8 +204,8 @@ def tcp_traceflow(frame: 'Frame', *, data_link: 'LinkType') -> 'TF_TCP_Packet |
|
|
204
204
|
fin=tcp_info.flags.fin, # TCP finish (FIN) flag
|
205
205
|
src=ip_info.src, # source IP
|
206
206
|
dst=ip_info.dst, # destination IP
|
207
|
-
srcport=tcp_info.srcport,
|
208
|
-
dstport=tcp_info.dstport,
|
207
|
+
srcport=tcp_info.srcport.port, # TCP source port
|
208
|
+
dstport=tcp_info.dstport.port, # TCP destination port
|
209
209
|
timestamp=float(frame.info.time_epoch), # frame timestamp
|
210
210
|
)
|
211
211
|
return data
|
pcapkit/toolkit/pcapng.py
CHANGED
@@ -158,9 +158,9 @@ def tcp_reassembly(frame: 'PCAPNG') -> 'TCP_Packet | None':
|
|
158
158
|
data = TCP_Packet(
|
159
159
|
bufid=(
|
160
160
|
ip_info.src, # source IP address
|
161
|
-
tcp_info.srcport,
|
161
|
+
tcp_info.srcport.port, # source port
|
162
162
|
ip_info.dst, # destination IP address
|
163
|
-
tcp_info.dstport,
|
163
|
+
tcp_info.dstport.port, # destination port
|
164
164
|
),
|
165
165
|
num=frame_info.number, # original packet range number
|
166
166
|
ack=tcp_info.ack, # acknowledgement
|
@@ -213,8 +213,8 @@ def tcp_traceflow(frame: 'PCAPNG', *, nanosecond: 'bool' = False) -> 'TF_TCP_Pac
|
|
213
213
|
fin=tcp_info.flags.fin, # TCP finish (FIN) flag
|
214
214
|
src=ip_info.src, # source IP
|
215
215
|
dst=ip_info.dst, # destination IP
|
216
|
-
srcport=tcp_info.srcport,
|
217
|
-
dstport=tcp_info.dstport,
|
216
|
+
srcport=tcp_info.srcport.port, # TCP source port
|
217
|
+
dstport=tcp_info.dstport.port, # TCP destination port
|
218
218
|
timestamp=float(frame_info.timestamp_epoch), # frame timestamp
|
219
219
|
)
|
220
220
|
return data
|
pcapkit/utilities/compat.py
CHANGED
@@ -190,7 +190,7 @@ if sys.version_info < (3, 11):
|
|
190
190
|
else:
|
191
191
|
from enum import show_flag_values # type: ignore[attr-defined]
|
192
192
|
|
193
|
-
if sys.version_info < (3,
|
193
|
+
if sys.version_info < (3, 10):
|
194
194
|
from typing_extensions import TypeAlias
|
195
195
|
else:
|
196
196
|
from typing import TypeAlias
|
pcapkit/vendor/reg/apptype.py
CHANGED
@@ -120,28 +120,28 @@ class {NAME}(StrEnum):
|
|
120
120
|
return '%s [%d - %s]' % (self.svc, self.port, self.proto.name)
|
121
121
|
|
122
122
|
def __int__(self) -> 'int':
|
123
|
-
return self.
|
123
|
+
return self.port
|
124
124
|
|
125
125
|
def __lt__(self, other: '{NAME}') -> 'bool':
|
126
|
-
return self.
|
126
|
+
return self.port < other
|
127
127
|
|
128
128
|
def __gt__(self, other: '{NAME}') -> 'bool':
|
129
|
-
return self.
|
129
|
+
return self.port > other
|
130
130
|
|
131
131
|
def __le__(self, other: '{NAME}') -> 'bool':
|
132
|
-
return self.
|
132
|
+
return self.port <= other
|
133
133
|
|
134
134
|
def __ge__(self, other: '{NAME}') -> 'bool':
|
135
|
-
return self.
|
135
|
+
return self.port >= other
|
136
136
|
|
137
137
|
def __eq__(self, other: 'Any') -> 'bool':
|
138
|
-
return self.
|
138
|
+
return self.port == other
|
139
139
|
|
140
140
|
def __ne__(self, other: 'Any') -> 'bool':
|
141
|
-
return self.
|
141
|
+
return self.port != other
|
142
142
|
|
143
143
|
def __hash__(self) -> 'int':
|
144
|
-
return hash(self.
|
144
|
+
return hash(self.port)
|
145
145
|
|
146
146
|
{ENUM}
|
147
147
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: pypcapkit
|
3
|
-
Version: 1.1.
|
3
|
+
Version: 1.1.1
|
4
4
|
Summary: PyPCAPKit: comprehensive network packet analysis library
|
5
5
|
Author-email: Jarry Shaw <jarryshaw@icloud.com>
|
6
6
|
Maintainer: Jarry Shaw
|
@@ -39,15 +39,15 @@ Classifier: Typing :: Typed
|
|
39
39
|
Requires-Python: <4,>=3.6
|
40
40
|
Description-Content-Type: text/x-rst
|
41
41
|
License-File: LICENSE
|
42
|
-
Requires-Dist: dictdumper
|
42
|
+
Requires-Dist: dictdumper ~=0.8.0
|
43
43
|
Requires-Dist: chardet
|
44
44
|
Requires-Dist: aenum
|
45
|
-
Requires-Dist: tbtrim
|
45
|
+
Requires-Dist: tbtrim >=0.2.1
|
46
|
+
Requires-Dist: typing-extensions ; python_version < "3.11"
|
46
47
|
Requires-Dist: bpc-f2format ; python_version < "3.6"
|
47
48
|
Requires-Dist: bpc-poseur ; python_version < "3.8"
|
48
49
|
Requires-Dist: bpc-walrus ; python_version < "3.8"
|
49
|
-
Requires-Dist:
|
50
|
-
Requires-Dist: pathlib2 (>=2.3.2) ; python_version == "3.4"
|
50
|
+
Requires-Dist: pathlib2 >=2.3.2 ; python_version == "3.4"
|
51
51
|
Provides-Extra: dpkt
|
52
52
|
Requires-Dist: dpkt ; extra == 'dpkt'
|
53
53
|
Provides-Extra: pyshark
|
@@ -64,7 +64,7 @@ Requires-Dist: beautifulsoup4[html5lib] ; extra == 'all'
|
|
64
64
|
Provides-Extra: cli
|
65
65
|
Requires-Dist: emoji ; extra == 'cli'
|
66
66
|
Provides-Extra: docs
|
67
|
-
Requires-Dist: Sphinx
|
67
|
+
Requires-Dist: Sphinx >=6.1.3 ; extra == 'docs'
|
68
68
|
Requires-Dist: furo ; extra == 'docs'
|
69
69
|
Requires-Dist: sphinx-autodoc-typehints ; extra == 'docs'
|
70
70
|
Requires-Dist: sphinx-opengraph ; extra == 'docs'
|
@@ -1,4 +1,4 @@
|
|
1
|
-
pcapkit/__init__.py,sha256=
|
1
|
+
pcapkit/__init__.py,sha256=4aoXOHBzsFC4QoQU4O78nX8QNLqFpwioKigK4mRsG7g,4091
|
2
2
|
pcapkit/__main__.py,sha256=K_XEsZHJqDUdRfext2dN7jlnno5ub3bqjklwmWrZ8KQ,5581
|
3
3
|
pcapkit/all.py,sha256=vQvbo8IeDW9nzW7dkCnakhgljO8t1lH5OgW0F-iTDwI,6598
|
4
4
|
pcapkit/const/__init__.py,sha256=XpEr66hXmBpBofS5aHiTZXTG8VZlxU7xy0BNXBKCi1Q,3266
|
@@ -116,7 +116,7 @@ pcapkit/const/pcapng/record_type.py,sha256=4rZytbhhF6u5SPvQ8ew3jx4OhN_rwDQG3I4Jl
|
|
116
116
|
pcapkit/const/pcapng/secrets_type.py,sha256=n_662aowLtqA25ilbdG6BWb2rYmrdBJt79_SISzfJkw,1578
|
117
117
|
pcapkit/const/pcapng/verdict_type.py,sha256=_jEkN0g6CX-DGshAj-lUiZjiwdK7Fqou2pnzgZ-WyIk,1476
|
118
118
|
pcapkit/const/reg/__init__.py,sha256=xKABPHwDQ0diN2sFA7hkw42FNsb6tx294XemEjTs2g8,1469
|
119
|
-
pcapkit/const/reg/apptype.py,sha256=
|
119
|
+
pcapkit/const/reg/apptype.py,sha256=9e9DIaRsHrY6h4b-DQkhrxW_Dqs2SSR6nQpGxyBDnv4,1426845
|
120
120
|
pcapkit/const/reg/ethertype.py,sha256=MlESESKA5yOSppkNXLkiqTEXUEJI7uTq_8_RSduDK5Q,25954
|
121
121
|
pcapkit/const/reg/linktype.py,sha256=gYGIKpI21d4dpfO5ZAU8efqz1eBLVUiQnSLA1anKits,37247
|
122
122
|
pcapkit/const/reg/transtype.py,sha256=7ZQOWFNGP8toBNRko0NuNih-sh3oo5RgIWBIKFb9bRQ,12872
|
@@ -128,7 +128,7 @@ pcapkit/const/tcp/option.py,sha256=wbKmXwUTan7ICLkIqVBiM6esQNsuRY5keTE9_e2_7HQ,5
|
|
128
128
|
pcapkit/const/vlan/__init__.py,sha256=e58kBqVyx-aNe10uWkfI1grb1gI5t-VxyYnmP4qT2bM,690
|
129
129
|
pcapkit/const/vlan/priority_level.py,sha256=lditGE8zcRNmCnPW7lTM45R5Q9RQ-CqBRkqGGDSByJw,1936
|
130
130
|
pcapkit/corekit/__init__.py,sha256=9dBR8nKuymYe14vO9Gtt45AOznrAK9strSmO9CK6QoI,1508
|
131
|
-
pcapkit/corekit/infoclass.py,sha256=
|
131
|
+
pcapkit/corekit/infoclass.py,sha256=5PCrqBYfDy8y1pilHl7aCkPdiLQlQhIW9e5dgQKRE9E,14423
|
132
132
|
pcapkit/corekit/multidict.py,sha256=VuB9-DFZYpl_Z0z07YAhykoj9_ccHCp1RDG3uCceC1s,22015
|
133
133
|
pcapkit/corekit/protochain.py,sha256=bTEK327E_iQp8e7s5en7zbVDCGIKFHxoTmA6V-3-j9g,7687
|
134
134
|
pcapkit/corekit/version.py,sha256=jI8VDmBTmwdj8tx-JJ4YB7p1xL62-mQ8W-C0NzvsF-Y,470
|
@@ -140,11 +140,11 @@ pcapkit/corekit/fields/misc.py,sha256=kyn2Wk3YxV1csC_16pMEd-WY6aTF5NvNdyJEomJw1a
|
|
140
140
|
pcapkit/corekit/fields/numbers.py,sha256=3kgnePxwPNgL38ujcd2SkTMkke4wfk4rPbt_GCHSF50,11775
|
141
141
|
pcapkit/corekit/fields/strings.py,sha256=MunIs1K9wlBxzYSDvowwTHX2AadZqYsYTqGN5xrfVdc,8814
|
142
142
|
pcapkit/dumpkit/__init__.py,sha256=Q8eZXOAxPqMojnGfE3ypqxRQOv8wuQfinAabe2W3P6E,370
|
143
|
-
pcapkit/dumpkit/common.py,sha256=
|
143
|
+
pcapkit/dumpkit/common.py,sha256=CPq775MrotgmaTjGQ4_9v9vsAbySOeNvF6LsUlZFpR0,4523
|
144
144
|
pcapkit/dumpkit/null.py,sha256=wL94KoKWtozmXPHbH63K9aH71XOKgFLLf5WechyEBCc,2243
|
145
145
|
pcapkit/dumpkit/pcap.py,sha256=hPNvwFBumhQI0sq2CyxXQj20Lg-cI8re-CdTYL6NK4g,4165
|
146
146
|
pcapkit/foundation/__init__.py,sha256=wwTcVaNs1CPsZiYXucOl4TDw8VJ_OKdgxfQ22dSfG44,1488
|
147
|
-
pcapkit/foundation/extraction.py,sha256=
|
147
|
+
pcapkit/foundation/extraction.py,sha256=Lbc8ReQDt-wkIFZO2YBF9P40JDe8lz2GHv7cJGPZc-s,28861
|
148
148
|
pcapkit/foundation/engines/__init__.py,sha256=7Qskb6OE8xzGO50Yrk2BrcU5ZAnP5TX8n5tee_FVnaQ,858
|
149
149
|
pcapkit/foundation/engines/dpkt.py,sha256=GgG72MkDjs5NPQf61KbHIvOiliFrxFtyGFVuRUBNz5o,7575
|
150
150
|
pcapkit/foundation/engines/engine.py,sha256=pQEZtIDSFwE5RexkgkEtCs9AOGyh8Tdw3W8RhBF2H4Y,2496
|
@@ -165,7 +165,7 @@ pcapkit/foundation/registry/__init__.py,sha256=VLAzpJ4dEYGEcxFXdPnrsLtW8l-eeoCsx
|
|
165
165
|
pcapkit/foundation/registry/foundation.py,sha256=Rgowvnz_qqpiRKPuEyW6A12wbTeIxwPkjOir_NVv5Jo,4822
|
166
166
|
pcapkit/foundation/registry/protocols.py,sha256=InVwwTE5xHH5j4sU4P9o1XF72Ion5d38mdc9RWlyu4Y,35228
|
167
167
|
pcapkit/foundation/traceflow/__init__.py,sha256=Sk6mrQ51EGTcfV5s6FdIoRVM002t1LlN2rLIe-kfLy4,999
|
168
|
-
pcapkit/foundation/traceflow/tcp.py,sha256=
|
168
|
+
pcapkit/foundation/traceflow/tcp.py,sha256=v7mHp5HJNzaLmOT5mm09ierPzJ9qHJdsmsxQFWNbXGI,5706
|
169
169
|
pcapkit/foundation/traceflow/traceflow.py,sha256=ZfHkfMdhvTFsHvxWzcUJD-fTX-hO-HA2PJLrmIn6Mgs,8280
|
170
170
|
pcapkit/foundation/traceflow/data/__init__.py,sha256=1qHFuYkGvimhmNuLFHI-FXa2gsSKguzWPqCOxeN_UUw,919
|
171
171
|
pcapkit/foundation/traceflow/data/tcp.py,sha256=3pWg03OmMJzWjovH48F49LcAcWbCt2cjo7N4B47XncY,3059
|
@@ -173,7 +173,7 @@ pcapkit/interface/__init__.py,sha256=UnQ1wjAWjP4iTA8HGRNonYDegDzCps4f7oWt7GK4kUE
|
|
173
173
|
pcapkit/interface/core.py,sha256=qI8zz5TNgpz-7qs7qPvNyezS9Tuq9YG-T8lsYJFNqHM,7203
|
174
174
|
pcapkit/interface/misc.py,sha256=CRirlQQe4XQJzwakJv8c2xZeOJlqlfsMFlrvyQxsio8,4802
|
175
175
|
pcapkit/protocols/__init__.py,sha256=MzPJGg_hkGmPMxe8B2AznOU6p2HHRV4GrS6Odb9u7uQ,1745
|
176
|
-
pcapkit/protocols/protocol.py,sha256=
|
176
|
+
pcapkit/protocols/protocol.py,sha256=lXQCkPDOKDtbqKlq-iAZHoWIjH5ppuyz-wZB0FRKNtE,43579
|
177
177
|
pcapkit/protocols/application/__init__.py,sha256=nInVbuUoyQiLGATLiCyxkyEfWyXVJMYVOr7ddrh7LDg,1044
|
178
178
|
pcapkit/protocols/application/application.py,sha256=TDyWuSLhRL8-MuUXcwn5dM55Tm7CjspApfHYOmnZZew,4302
|
179
179
|
pcapkit/protocols/application/ftp.py,sha256=FdNVpBKKYzNV5Cj8Gqm5VqK2O0x9S7SupsL-JgGmdpw,6532
|
@@ -276,7 +276,7 @@ pcapkit/protocols/misc/pcap/__init__.py,sha256=-uxoPg3k-8NteBUUxLdgysbpwHbV_uyHy
|
|
276
276
|
pcapkit/protocols/misc/pcap/frame.py,sha256=pUScBj8DRQq0AIKR6Eq5i7qUTgnpsmFmuKO9VF59f3I,17448
|
277
277
|
pcapkit/protocols/misc/pcap/header.py,sha256=4gDu-24VcPNG_16tYeKb0T0myERbWwlh4AJST2wEiBo,12665
|
278
278
|
pcapkit/protocols/schema/__init__.py,sha256=h5GqPMdMYNM7089UA8wLP8E17wEAIZCGoSoySFss6Dg,7306
|
279
|
-
pcapkit/protocols/schema/schema.py,sha256=
|
279
|
+
pcapkit/protocols/schema/schema.py,sha256=FnBT7sJHNMXZcw6tdy47xnCQedP92O99EBv_4JbEeSI,29320
|
280
280
|
pcapkit/protocols/schema/application/__init__.py,sha256=5Cug38rdq8thUWMol0ICGIPP7FW3nBeBnFWPbnU0sbA,1997
|
281
281
|
pcapkit/protocols/schema/application/ftp.py,sha256=uZm2D5Za3GJCjATk76dJOwNsO8GuFDMNVtqy2qzSmiI,520
|
282
282
|
pcapkit/protocols/schema/application/httpv1.py,sha256=hJ9mvWfhbXUSpWvgLGAfSu0_MhXqxkJnxuv3PbUYDaE,523
|
@@ -317,12 +317,12 @@ pcapkit/protocols/transport/NotImplemented/rsvp.py,sha256=47DEQpj8HBSa-_TImW-5JC
|
|
317
317
|
pcapkit/protocols/transport/NotImplemented/sctp.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
318
318
|
pcapkit/toolkit/__init__.py,sha256=pidjgoJjQxW8z--lY9eR6k_ANc2kF6U0Rgv99S3QeEs,2623
|
319
319
|
pcapkit/toolkit/dpkt.py,sha256=c4B8NT60_jQMk9Fh-VdJG_4NzxE-RofiNna2a6vXDts,12433
|
320
|
-
pcapkit/toolkit/pcap.py,sha256=
|
321
|
-
pcapkit/toolkit/pcapng.py,sha256=
|
320
|
+
pcapkit/toolkit/pcap.py,sha256=GVWg_LX4Pu_qldLmBGUIwl4C_1tKCpNr0mkSfI98qdg,9132
|
321
|
+
pcapkit/toolkit/pcapng.py,sha256=16ibqo6lsN3QAwTWsFf76P8mE-FlkqJhTgTzjzltrQ8,10420
|
322
322
|
pcapkit/toolkit/pyshark.py,sha256=UwvzNkwplVBQZFggXvOsOTkJeUdZsE5tIe6DTMp7irA,3388
|
323
323
|
pcapkit/toolkit/scapy.py,sha256=8zEyWbbXHWyIcJ5qWKIzED6CUgBbDZrYMzTJJr8gqgI,11435
|
324
324
|
pcapkit/utilities/__init__.py,sha256=nd_SO3k9zXgi-Vesa1bhBiAgu55x2BeRMclLsdz9RWg,692
|
325
|
-
pcapkit/utilities/compat.py,sha256=
|
325
|
+
pcapkit/utilities/compat.py,sha256=fq16iG0leV4cyglNn2GeXdIIwUVzwMXGtdPigrejrgo,6533
|
326
326
|
pcapkit/utilities/decorators.py,sha256=7UTb4DjXWjMeEfxX2z7jvkbkBUhZngDraFp1LSVn1As,6506
|
327
327
|
pcapkit/utilities/exceptions.py,sha256=Ht2eX8IWMizp04OQaOwkg85vE7ZxybVt3u2CPb2qsnQ,10541
|
328
328
|
pcapkit/utilities/logging.py,sha256=W0QbD16F_lLbvKzruZ9g7kho-gFRFCUIhdE_ub4xzh4,1918
|
@@ -444,7 +444,7 @@ pcapkit/vendor/pcapng/record_type.py,sha256=cqiRPWETwl-MItPhGqJrLd9dDh3ivM3Ed3I6
|
|
444
444
|
pcapkit/vendor/pcapng/secrets_type.py,sha256=hTEstMPuri04ac_q26Nt9bM1VRSyvdbanPYJrU5H3DQ,2165
|
445
445
|
pcapkit/vendor/pcapng/verdict_type.py,sha256=rVGrJOIS0ikiSu0X23lfjANTiy2IeII31GCXkGtSPRg,1977
|
446
446
|
pcapkit/vendor/reg/__init__.py,sha256=OryPFPYmNYAIkm_rvUAIcNn69ymfDJiFNL2DFbZXkto,1411
|
447
|
-
pcapkit/vendor/reg/apptype.py,sha256=
|
447
|
+
pcapkit/vendor/reg/apptype.py,sha256=z-OQJcGKq4gnfigpEe4V_9bPWQtJLpSmgA3yaPtVoKU,10310
|
448
448
|
pcapkit/vendor/reg/ethertype.py,sha256=FI64Kk3_048CporpQOAwGi-Po9net5HwZnO0mJBSQTo,3752
|
449
449
|
pcapkit/vendor/reg/linktype.py,sha256=i4A7Zmk9So2AaBP1KlsE_7rv5g8QWDaWJ4giRyXtT6E,3284
|
450
450
|
pcapkit/vendor/reg/transtype.py,sha256=7UqVA4evH6luliMpDRhzKcYoIKm8FiogqzI8ovoQyqc,3365
|
@@ -455,9 +455,9 @@ pcapkit/vendor/tcp/mp_tcp_option.py,sha256=fLtttA2-p3qXRcP-1kI3gA-08F0bhCCgVQTLi
|
|
455
455
|
pcapkit/vendor/tcp/option.py,sha256=8-0kq6GTKFCjHjxnDU3T-IUvjp5XA7MiCr2BN_aDonI,2958
|
456
456
|
pcapkit/vendor/vlan/__init__.py,sha256=qvLktJ0yuoZokas6-_ZGwMJOzbujSCM8pZHQ9jjTegU,674
|
457
457
|
pcapkit/vendor/vlan/priority_level.py,sha256=xVu6M-Ys4pft5I-qPCCxM-KfnMAUnZppD2qPO9gPkVE,2961
|
458
|
-
pypcapkit-1.1.
|
459
|
-
pypcapkit-1.1.
|
460
|
-
pypcapkit-1.1.
|
461
|
-
pypcapkit-1.1.
|
462
|
-
pypcapkit-1.1.
|
463
|
-
pypcapkit-1.1.
|
458
|
+
pypcapkit-1.1.1.dist-info/LICENSE,sha256=KkKND5E2e1Z6CQvSLPc1lRBy4xPRed41AG6q1txotWk,1516
|
459
|
+
pypcapkit-1.1.1.dist-info/METADATA,sha256=Np_WIVd0XLdvTn06u3lUepTVp1fwK511g8DixPrbL2c,7665
|
460
|
+
pypcapkit-1.1.1.dist-info/WHEEL,sha256=5sUXSg9e4bi7lTLOHcm6QEYwO5TIF1TNbTSVFVjcJcc,92
|
461
|
+
pypcapkit-1.1.1.dist-info/entry_points.txt,sha256=8tVaZ-N0S2t19ELoTEGq_OlC8-dSmd7dvNn-kMV3afY,100
|
462
|
+
pypcapkit-1.1.1.dist-info/top_level.txt,sha256=KEssKRhG9ln3EOfGH-yi98HgI-MM9hOHy09QQP-fvk8,8
|
463
|
+
pypcapkit-1.1.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|