pypcapkit 1.3.3.post1__cp310-none-any.whl → 1.3.4__cp310-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/ftp/return_code.py +2 -2
- pcapkit/const/http/status_code.py +5 -1
- pcapkit/const/mh/status_code.py +1 -1
- pcapkit/protocols/internet/internet.py +14 -5
- pcapkit/protocols/internet/ipv6.py +54 -3
- pcapkit/protocols/internet/ipv6_route.py +5 -7
- pcapkit/protocols/schema/internet/ipv6_route.py +2 -3
- pcapkit/utilities/decorators.py +6 -1
- {pypcapkit-1.3.3.post1.dist-info → pypcapkit-1.3.4.dist-info}/METADATA +1 -1
- {pypcapkit-1.3.3.post1.dist-info → pypcapkit-1.3.4.dist-info}/RECORD +15 -15
- {pypcapkit-1.3.3.post1.dist-info → pypcapkit-1.3.4.dist-info}/WHEEL +1 -1
- {pypcapkit-1.3.3.post1.dist-info → pypcapkit-1.3.4.dist-info}/LICENSE +0 -0
- {pypcapkit-1.3.3.post1.dist-info → pypcapkit-1.3.4.dist-info}/entry_points.txt +0 -0
- {pypcapkit-1.3.3.post1.dist-info → pypcapkit-1.3.4.dist-info}/top_level.txt +0 -0
pcapkit/__init__.py
CHANGED
pcapkit/const/ftp/return_code.py
CHANGED
@@ -194,8 +194,8 @@ class ReturnCode(IntEnum):
|
|
194
194
|
#: command if the service knows it must shut down.
|
195
195
|
CODE_421: 'ReturnCode' = 421, 'Service available, closing control connection.'
|
196
196
|
|
197
|
-
#: open data connection.
|
198
|
-
CODE_425: 'ReturnCode' = 425, 'open data connection.
|
197
|
+
#: Can't open data connection.
|
198
|
+
CODE_425: 'ReturnCode' = 425, "Can't open data connection."
|
199
199
|
|
200
200
|
#: Connection closed; transfer aborted.
|
201
201
|
CODE_426: 'ReturnCode' = 426, 'Connection closed; transfer aborted.'
|
@@ -54,6 +54,10 @@ class StatusCode(IntEnum):
|
|
54
54
|
#: Early Hints [:rfc:`8297`]
|
55
55
|
CODE_103 = 103, 'Early Hints'
|
56
56
|
|
57
|
+
#: Upload Resumption Supported (TEMPORARY - registered 2024-11-13, expires
|
58
|
+
#: 2025-11-13) [draft-ietf-httpbis-resumable-upload-05]
|
59
|
+
CODE_104 = 104, 'Upload Resumption Supported'
|
60
|
+
|
57
61
|
#: OK [:rfc:`9110#section-15.3.1`]
|
58
62
|
CODE_200 = 200, 'OK'
|
59
63
|
|
@@ -267,7 +271,7 @@ class StatusCode(IntEnum):
|
|
267
271
|
"""
|
268
272
|
if not (isinstance(value, int) and 100 <= value <= 599):
|
269
273
|
raise ValueError('%r is not a valid %s' % (value, cls.__name__))
|
270
|
-
if
|
274
|
+
if 105 <= value <= 199:
|
271
275
|
#: Unassigned
|
272
276
|
return extend_enum(cls, 'CODE_%d' % value, value, 'Unassigned')
|
273
277
|
if 209 <= value <= 225:
|
pcapkit/const/mh/status_code.py
CHANGED
@@ -94,7 +94,7 @@ class StatusCode(IntEnum):
|
|
94
94
|
#: MIPV6-MESG-ID-REQD [:rfc:`4285`]
|
95
95
|
MIPV6_MESG_ID_REQD = 145
|
96
96
|
|
97
|
-
#: MIPV6-AUTH-FAIL [:rfc:`4285`]
|
97
|
+
#: MIPV6-AUTH-FAIL [:rfc:`4285`][RFC Errata 3463]
|
98
98
|
MIPV6_AUTH_FAIL = 146
|
99
99
|
|
100
100
|
#: Permanent home keygen token unavailable [:rfc:`4866`]
|
@@ -157,7 +157,8 @@ class Internet(Protocol[_PT, _ST], Generic[_PT, _ST]): # pylint: disable=abstra
|
|
157
157
|
|
158
158
|
def _decode_next_layer(self, dict_: '_PT', proto: 'Optional[int]' = None, # pylint: disable=arguments-differ
|
159
159
|
length: 'Optional[int]' = None, *, packet: 'Optional[dict[str, Any]]' = None,
|
160
|
-
version: 'Literal[4, 6]' = 4, ipv6_exthdr: 'Optional[ProtoChain]' = None
|
160
|
+
version: 'Literal[4, 6]' = 4, ipv6_exthdr: 'Optional[ProtoChain]' = None,
|
161
|
+
payload: 'Optional[bytes]' = None) -> '_PT':
|
161
162
|
r"""Decode next layer extractor.
|
162
163
|
|
163
164
|
Arguments:
|
@@ -167,6 +168,8 @@ class Internet(Protocol[_PT, _ST], Generic[_PT, _ST]): # pylint: disable=abstra
|
|
167
168
|
packet: packet info (passed from :meth:`self.unpack <pcapkit.protocols.protocol.Protocol.unpack>`)
|
168
169
|
version: IP version
|
169
170
|
ipv6_exthdr: protocol chain of IPv6 extension headers
|
171
|
+
payload: payload from packet. If not provided, will extract from
|
172
|
+
:meth:`self.__header__.get_payload <pcapkit.protocols.schema.schema.Schema.get_payload>`
|
170
173
|
|
171
174
|
Returns:
|
172
175
|
Current protocol with next layer extracted.
|
@@ -179,7 +182,8 @@ class Internet(Protocol[_PT, _ST], Generic[_PT, _ST]): # pylint: disable=abstra
|
|
179
182
|
|
180
183
|
"""
|
181
184
|
next_ = cast('Protocol', # type: ignore[redundant-cast]
|
182
|
-
self._import_next_layer(proto, length, packet=packet, version=version
|
185
|
+
self._import_next_layer(proto, length, packet=packet, version=version,
|
186
|
+
payload=payload)) # type: ignore[arg-type,misc,call-arg]
|
183
187
|
info, chain = next_.info, next_.protochain
|
184
188
|
|
185
189
|
# make next layer protocol name
|
@@ -203,8 +207,8 @@ class Internet(Protocol[_PT, _ST], Generic[_PT, _ST]): # pylint: disable=abstra
|
|
203
207
|
|
204
208
|
@beholder # type: ignore[arg-type]
|
205
209
|
def _import_next_layer(self, proto: 'int', length: 'Optional[int]' = None, *, # pylint: disable=arguments-differ
|
206
|
-
packet: 'Optional[dict[str, Any]]' = None,
|
207
|
-
|
210
|
+
packet: 'Optional[dict[str, Any]]' = None, version: 'Literal[4, 6]' = 4,
|
211
|
+
extension: 'bool' = False, payload: 'Optional[bytes]' = None) -> 'Protocol':
|
208
212
|
"""Import next layer extractor.
|
209
213
|
|
210
214
|
Arguments:
|
@@ -213,6 +217,8 @@ class Internet(Protocol[_PT, _ST], Generic[_PT, _ST]): # pylint: disable=abstra
|
|
213
217
|
packet: packet info (passed from :meth:`self.unpack <pcapkit.protocols.protocol.Protocol.unpack>`)
|
214
218
|
version: IP protocol version
|
215
219
|
extension: if is extension header
|
220
|
+
payload: payload from packet. If not provided, will extract from
|
221
|
+
:meth:`self.__header__.get_payload <pcapkit.protocols.schema.schema.Schema.get_payload>`
|
216
222
|
|
217
223
|
Returns:
|
218
224
|
Instance of next layer.
|
@@ -221,7 +227,10 @@ class Internet(Protocol[_PT, _ST], Generic[_PT, _ST]): # pylint: disable=abstra
|
|
221
227
|
if TYPE_CHECKING:
|
222
228
|
protocol: 'Type[Protocol]'
|
223
229
|
|
224
|
-
|
230
|
+
if payload is not None:
|
231
|
+
file_ = self.__header__.get_payload()
|
232
|
+
else:
|
233
|
+
file_ = payload
|
225
234
|
if length is None:
|
226
235
|
length = len(file_)
|
227
236
|
|
@@ -31,11 +31,13 @@ from typing import TYPE_CHECKING
|
|
31
31
|
|
32
32
|
from pcapkit.const.ipv6.extension_header import ExtensionHeader as Enum_ExtensionHeader
|
33
33
|
from pcapkit.const.reg.transtype import TransType as Enum_TransType
|
34
|
+
from pcapkit.corekit.module import ModuleDescriptor
|
34
35
|
from pcapkit.corekit.multidict import OrderedMultiDict
|
35
36
|
from pcapkit.corekit.protochain import ProtoChain
|
36
37
|
from pcapkit.protocols.data.internet.ipv6 import IPv6 as Data_IPv6
|
37
38
|
from pcapkit.protocols.internet.ip import IP
|
38
39
|
from pcapkit.protocols.schema.internet.ipv6 import IPv6 as Schema_IPv6
|
40
|
+
from pcapkit.utilities.decorators import beholder
|
39
41
|
|
40
42
|
if TYPE_CHECKING:
|
41
43
|
from enum import IntEnum as StdlibEnum
|
@@ -46,7 +48,6 @@ if TYPE_CHECKING:
|
|
46
48
|
from typing_extensions import Literal
|
47
49
|
|
48
50
|
from pcapkit.protocols.protocol import ProtocolBase as Protocol
|
49
|
-
from pcapkit.protocols.schema.schema import Schema
|
50
51
|
|
51
52
|
__all__ = ['IPv6']
|
52
53
|
|
@@ -310,6 +311,7 @@ class IPv6(IP[Data_IPv6, Schema_IPv6],
|
|
310
311
|
_protos = [] # ProtoChain buffer
|
311
312
|
|
312
313
|
# traverse if next header is an extensive header
|
314
|
+
payload = self.__header__.get_payload()
|
313
315
|
while True:
|
314
316
|
try:
|
315
317
|
ex_proto = Enum_ExtensionHeader(proto)
|
@@ -322,7 +324,8 @@ class IPv6(IP[Data_IPv6, Schema_IPv6],
|
|
322
324
|
# break
|
323
325
|
|
324
326
|
# make protocol name
|
325
|
-
next_ = self._import_next_layer(proto, packet=packet, version=6, extension=True
|
327
|
+
next_ = self._import_next_layer(proto, packet=packet, version=6, extension=True,
|
328
|
+
payload=payload) # type: ignore[misc,call-arg,arg-type]
|
326
329
|
info = next_.info
|
327
330
|
name = next_.alias.lstrip('IPv6-').lower()
|
328
331
|
ipv6.__update__({
|
@@ -348,6 +351,9 @@ class IPv6(IP[Data_IPv6, Schema_IPv6],
|
|
348
351
|
})
|
349
352
|
break
|
350
353
|
|
354
|
+
# update payload for next extension header
|
355
|
+
payload = payload[next_.length:]
|
356
|
+
|
351
357
|
# record real header & payload length (headers exclude)
|
352
358
|
ipv6.__update__({
|
353
359
|
'hdr_len': hdr_len,
|
@@ -358,4 +364,49 @@ class IPv6(IP[Data_IPv6, Schema_IPv6],
|
|
358
364
|
})
|
359
365
|
|
360
366
|
ipv6_exthdr = ProtoChain.from_list(_protos) # type: ignore[arg-type]
|
361
|
-
return super()._decode_next_layer(ipv6, proto, raw_len, packet=packet, ipv6_exthdr=ipv6_exthdr)
|
367
|
+
return super()._decode_next_layer(ipv6, proto, raw_len, packet=packet, ipv6_exthdr=ipv6_exthdr, payload=payload)
|
368
|
+
|
369
|
+
@beholder # type: ignore[arg-type]
|
370
|
+
def _import_next_layer(self, proto: 'int', length: 'Optional[int]' = None, *, # pylint: disable=arguments-differ
|
371
|
+
packet: 'Optional[dict[str, Any]]' = None, version: 'Literal[4, 6]' = 4,
|
372
|
+
extension: 'bool' = False, payload: 'Optional[bytes]' = None) -> 'Protocol':
|
373
|
+
"""Import next layer extractor.
|
374
|
+
|
375
|
+
Arguments:
|
376
|
+
proto: next layer protocol index
|
377
|
+
length: valid (*non-padding*) length
|
378
|
+
packet: packet info (passed from :meth:`self.unpack <pcapkit.protocols.protocol.Protocol.unpack>`)
|
379
|
+
version: IP protocol version
|
380
|
+
extension: if is extension header
|
381
|
+
payload: payload from packet. If not provided, will extract from
|
382
|
+
:meth:`self.__header__.get_payload <pcapkit.protocols.schema.schema.Schema.get_payload>`
|
383
|
+
|
384
|
+
Returns:
|
385
|
+
Instance of next layer.
|
386
|
+
|
387
|
+
"""
|
388
|
+
if TYPE_CHECKING:
|
389
|
+
protocol: 'Type[Protocol]'
|
390
|
+
|
391
|
+
if payload is None:
|
392
|
+
file_ = self.__header__.get_payload()
|
393
|
+
else:
|
394
|
+
file_ = payload
|
395
|
+
if length is None:
|
396
|
+
length = len(file_)
|
397
|
+
|
398
|
+
if length == 0:
|
399
|
+
from pcapkit.protocols.misc.null import \
|
400
|
+
NoPayload as protocol # isort: skip # pylint: disable=import-outside-toplevel
|
401
|
+
elif self._sigterm:
|
402
|
+
from pcapkit.protocols.misc.raw import \
|
403
|
+
Raw as protocol # isort: skip # pylint: disable=import-outside-toplevel
|
404
|
+
else:
|
405
|
+
protocol = self.__proto__[proto] # type: ignore[assignment]
|
406
|
+
if isinstance(protocol, ModuleDescriptor):
|
407
|
+
protocol = protocol.klass # type: ignore[unreachable]
|
408
|
+
self.__proto__[proto] = protocol # update mapping upon import
|
409
|
+
|
410
|
+
next_ = protocol(file_, length, version=version, extension=extension, # type: ignore[abstract]
|
411
|
+
alias=proto, packet=packet, layer=self._exlayer, protocol=self._exproto)
|
412
|
+
return next_
|
@@ -48,14 +48,12 @@ from pcapkit.utilities.warnings import RegistryWarning, warn
|
|
48
48
|
if TYPE_CHECKING:
|
49
49
|
from enum import IntEnum as StdlibEnum
|
50
50
|
from ipaddress import IPv6Address
|
51
|
-
from typing import IO, Any, Callable, DefaultDict,
|
51
|
+
from typing import IO, Any, Callable, DefaultDict, Optional, Type
|
52
52
|
|
53
53
|
from aenum import IntEnum as AenumEnum
|
54
54
|
from mypy_extensions import DefaultArg, KwArg, NamedArg
|
55
55
|
from typing_extensions import Literal
|
56
56
|
|
57
|
-
from pcapkit.corekit.protochain import ProtoChain
|
58
|
-
from pcapkit.protocols.protocol import ProtocolBase as Protocol
|
59
57
|
from pcapkit.protocols.schema.internet.ipv6_route import RoutingType as Schema_RoutingType
|
60
58
|
|
61
59
|
TypeParser = Callable[[Schema_RoutingType, NamedArg(Schema_IPv6_Route, 'header')], Data_IPv6_Route]
|
@@ -402,7 +400,7 @@ class IPv6_Route(Internet[Data_IPv6_Route, Schema_IPv6_Route],
|
|
402
400
|
"""
|
403
401
|
ipv6_route = Data_UnknownType(
|
404
402
|
next=header.next,
|
405
|
-
length=header.length,
|
403
|
+
length=header.length * 8 + 8,
|
406
404
|
type=header.type,
|
407
405
|
seg_left=header.seg_left,
|
408
406
|
data=schema.data,
|
@@ -463,7 +461,7 @@ class IPv6_Route(Internet[Data_IPv6_Route, Schema_IPv6_Route],
|
|
463
461
|
|
464
462
|
ipv6_route = Data_SourceRoute(
|
465
463
|
next=header.next,
|
466
|
-
length=header.length,
|
464
|
+
length=header.length * 8 + 8,
|
467
465
|
type=header.type,
|
468
466
|
seg_left=header.seg_left,
|
469
467
|
ip=tuple(schema.ip),
|
@@ -507,7 +505,7 @@ class IPv6_Route(Internet[Data_IPv6_Route, Schema_IPv6_Route],
|
|
507
505
|
|
508
506
|
ipv6_route = Data_Type2(
|
509
507
|
next=header.next,
|
510
|
-
length=header.length,
|
508
|
+
length=header.length * 8 + 8,
|
511
509
|
type=header.type,
|
512
510
|
seg_left=header.seg_left,
|
513
511
|
ip=schema.ip,
|
@@ -547,7 +545,7 @@ class IPv6_Route(Internet[Data_IPv6_Route, Schema_IPv6_Route],
|
|
547
545
|
|
548
546
|
ipv6_route = Data_RPL(
|
549
547
|
next=header.next,
|
550
|
-
length=header.length,
|
548
|
+
length=header.length * 8 + 8,
|
551
549
|
type=header.type,
|
552
550
|
seg_left=header.seg_left,
|
553
551
|
cmpr_i=schema.cmpr_i,
|
@@ -24,10 +24,9 @@ __all__ = [
|
|
24
24
|
|
25
25
|
if TYPE_CHECKING:
|
26
26
|
from ipaddress import IPv6Address
|
27
|
-
from typing import Any
|
27
|
+
from typing import Any
|
28
28
|
|
29
29
|
from pcapkit.corekit.fields.field import FieldBase as Field
|
30
|
-
from pcapkit.protocols.protocol import ProtocolBase as Protocol
|
31
30
|
|
32
31
|
if SPHINX_TYPE_CHECKING:
|
33
32
|
from typing_extensions import TypedDict
|
@@ -52,7 +51,7 @@ def ipv6_route_data_selector(pkt: 'dict[str, Any]') -> 'Field':
|
|
52
51
|
"""
|
53
52
|
type = cast('Enum_Routing', pkt['type'])
|
54
53
|
schema = RoutingType.registry[type]
|
55
|
-
return SchemaField(length=pkt['length'] * 8
|
54
|
+
return SchemaField(length=pkt['length'] * 8, schema=schema)
|
56
55
|
|
57
56
|
|
58
57
|
@schema_final
|
pcapkit/utilities/decorators.py
CHANGED
@@ -14,6 +14,7 @@ decorators, including :func:`~pcapkit.utilities.decorators.seekset`,
|
|
14
14
|
import functools
|
15
15
|
import io
|
16
16
|
import os
|
17
|
+
import traceback
|
17
18
|
from typing import TYPE_CHECKING, cast
|
18
19
|
|
19
20
|
from pcapkit.utilities.exceptions import StructError, stacklevel
|
@@ -122,7 +123,11 @@ def beholder(func: 'Callable[Concatenate[Protocol, int, Optional[int], P], R_beh
|
|
122
123
|
# error = traceback.format_exc(limit=1).strip().rsplit(os.linesep, maxsplit=1)[-1]
|
123
124
|
|
124
125
|
# log error
|
125
|
-
logger.warning(str(exc),
|
126
|
+
logger.warning(str(exc), stack_info=DEVMODE, stacklevel=stacklevel())
|
127
|
+
|
128
|
+
if VERBOSE:
|
129
|
+
logger.error('The following error occurred while parsing the packet:')
|
130
|
+
traceback.print_exc()
|
126
131
|
|
127
132
|
file_ = self.__header__.get_payload()
|
128
133
|
next_ = protocol(file_, length, error=str(exc))
|
@@ -1,4 +1,4 @@
|
|
1
|
-
pcapkit/__init__.py,sha256=
|
1
|
+
pcapkit/__init__.py,sha256=VnyWkRLc-qNZGu3WDcBLGltHaB99O0IY5x3-tTDCBYM,4091
|
2
2
|
pcapkit/__main__.py,sha256=G3rJrhCwkxlxOa04zwRJ4mq4G1k8JYWES3JnsaeMDe4,6415
|
3
3
|
pcapkit/all.py,sha256=6G7rVFlajYk98F5vCYcLOw-CkXdEw4C2zAwnTgU0asU,6679
|
4
4
|
pcapkit/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -8,7 +8,7 @@ pcapkit/const/arp/hardware.py,sha256=0VJr0oAyuX5LDWe-pnsaGISoYiqzK0JMql2khFU9tLg
|
|
8
8
|
pcapkit/const/arp/operation.py,sha256=HfqBJaBAmhpulxMq0SqwOs59KSAF9-2eGQrqkOspSAU,3124
|
9
9
|
pcapkit/const/ftp/__init__.py,sha256=ICFUj-uRyoMU7tOTUqPwE1tiKc9b71fLcbCgi9iPACs,936
|
10
10
|
pcapkit/const/ftp/command.py,sha256=TD9lnr2neKI3rU2ZEhNLHS9fT5NMiPQXVpxeaGx5ML4,12361
|
11
|
-
pcapkit/const/ftp/return_code.py,sha256=
|
11
|
+
pcapkit/const/ftp/return_code.py,sha256=RCWgoATNecn8wplDXf4vDPBT9xTkxQFpFuNteoJpTTg,11076
|
12
12
|
pcapkit/const/hip/__init__.py,sha256=cfC7fg9VhuoWAaeQQJ5x_EO1dA5TbscTdkr3jZ-Xluc,5583
|
13
13
|
pcapkit/const/hip/certificate.py,sha256=00sHuIZ-tA3uAUlnSUgYSCl8tt5Lj-14Qb3CHpdm4Tc,2081
|
14
14
|
pcapkit/const/hip/cipher.py,sha256=ZI0QnP_RPlPW7SQvUC3J-lk-b3kjdtbZLbUT8XUNJNc,1695
|
@@ -33,7 +33,7 @@ pcapkit/const/http/error_code.py,sha256=caVfNqmyXCGeLqbi8NSo45SBjp263E7pgoW9ENRO
|
|
33
33
|
pcapkit/const/http/frame.py,sha256=4l8Uqk9PYfsmki51fYAliaK7rSpTZv-sJNrJNMfmO9w,2555
|
34
34
|
pcapkit/const/http/method.py,sha256=x-7zi1JTrKyX6A84Eg1omsIG9RcBMPR8DDs97YWOQ6c,5011
|
35
35
|
pcapkit/const/http/setting.py,sha256=Y6iPP1dP9yXzVU-3wERqIKi7ClnI2nht9Uogt4IcR4Y,3148
|
36
|
-
pcapkit/const/http/status_code.py,sha256=
|
36
|
+
pcapkit/const/http/status_code.py,sha256=blnXu5uqkVJPpUAkjGnVaz0U0w45tUdjS2KoKBmihmE,8945
|
37
37
|
pcapkit/const/ipv4/__init__.py,sha256=YSYTPDXlnQHsMsSpIzNIXN0Fdios7-w3dso2Qt6MK38,3089
|
38
38
|
pcapkit/const/ipv4/classification_level.py,sha256=O5JyxOU_CPWzamy2pNnFBE8ALyUnUTcnX-iIKJEQXR8,1882
|
39
39
|
pcapkit/const/ipv4/option_class.py,sha256=apHy6yQZbd--dak5gpfGKk27csuXBrY_nPkZSUpPIMQ,1527
|
@@ -101,7 +101,7 @@ pcapkit/const/mh/packet.py,sha256=OnB_U5liLxwsmQ5ZNOPDx-l_HPcmOSGdwobd0dAl1Xo,33
|
|
101
101
|
pcapkit/const/mh/qos_attribute.py,sha256=-YHKRTHMAI_c8AYK39FMXfaa7JizOhd47b3QjePHgjM,2638
|
102
102
|
pcapkit/const/mh/revocation_status_code.py,sha256=F7I3tLxkR7ZZ6vc8KFVVO-ZBwCCcwlJ4-vse37GPeWU,2773
|
103
103
|
pcapkit/const/mh/revocation_trigger.py,sha256=P_Reof4Jn1-nYaEZTJxAWn_1GDCuGXyT5XpzFOrB4w8,2831
|
104
|
-
pcapkit/const/mh/status_code.py,sha256=
|
104
|
+
pcapkit/const/mh/status_code.py,sha256=DtX5dTUW9fcR4nain4GqWFotuZ6Y4XAabVKgUD-GSIs,7078
|
105
105
|
pcapkit/const/mh/traffic_selector.py,sha256=el5PbvzoUemEOAKWHgXY6F8faE0UvYpQHkdLmLmpWtM,1991
|
106
106
|
pcapkit/const/mh/upa_status.py,sha256=hRv2rmuSU9hO2xRXdH63NgixwgDdULor5nu78FP_dmg,2409
|
107
107
|
pcapkit/const/mh/upn_reason.py,sha256=lK3Et2-mhj9vXsO_IYXv-btdNZYm4h3LR-neFe2ktDw,2499
|
@@ -241,14 +241,14 @@ pcapkit/protocols/internet/__init__.py,sha256=92A7PPTi_YYjGvns_aRKaBq2uhRMDc_6bk
|
|
241
241
|
pcapkit/protocols/internet/ah.py,sha256=mPI887GUeJGxy_Ovoh0Hs2vU2i0gZ9nDJYNNmlN5mDo,10219
|
242
242
|
pcapkit/protocols/internet/hip.py,sha256=NloOKuxvcFFvWvv8D5p5EUdgt8zxmZZ6ocDNM-EC_pI,209870
|
243
243
|
pcapkit/protocols/internet/hopopt.py,sha256=dtpe28jxkpZU7HX6wTkxgDX3gz6iuHzbA3uGtCGiQrQ,75260
|
244
|
-
pcapkit/protocols/internet/internet.py,sha256=
|
244
|
+
pcapkit/protocols/internet/internet.py,sha256=dl3hl2iEI4v9SfI-3iu4CBfoUZksRk7E5vAfX4yW4vI,11898
|
245
245
|
pcapkit/protocols/internet/ip.py,sha256=VfLC4vj4e6NOSWWvBr4sTSrzgRw0WNES6jlFFZbDJl4,1654
|
246
246
|
pcapkit/protocols/internet/ipsec.py,sha256=-8eB-1yb7S2Nppr5rpbXQ1xB7ZwnkxDrw2-m18-jIoo,1545
|
247
247
|
pcapkit/protocols/internet/ipv4.py,sha256=-A4mrKsh76VjyQiUr53xJX8gI7PyO78HET74ZCwR7I8,70545
|
248
|
-
pcapkit/protocols/internet/ipv6.py,sha256=
|
248
|
+
pcapkit/protocols/internet/ipv6.py,sha256=DMy2WHaXzq87bFD716aT9PI2FCmHU3E5V07KDIfbhg8,15996
|
249
249
|
pcapkit/protocols/internet/ipv6_frag.py,sha256=hVS_-596hx90-mUNerhcfwhExdX9wdG6j6E4qeO04eY,9389
|
250
250
|
pcapkit/protocols/internet/ipv6_opts.py,sha256=FQTg04w4d3iKFqlyK2EmNAkuOEcFUMo0i-zt5spxycw,76104
|
251
|
-
pcapkit/protocols/internet/ipv6_route.py,sha256=
|
251
|
+
pcapkit/protocols/internet/ipv6_route.py,sha256=IUpVB6M-mDc3acnpkBJzatr5tVBwkj_alJVmEhVElbk,29615
|
252
252
|
pcapkit/protocols/internet/ipx.py,sha256=a6SinNMJ5XDttNtn7Ii9H8HNC2-_-w_VuBr4RKSYNm0,7812
|
253
253
|
pcapkit/protocols/internet/mh.py,sha256=ZINPkkqXp15ZGRuazTk-FXewopxqhourZ2eKdzRSreo,114047
|
254
254
|
pcapkit/protocols/internet/NotImplemented/ecn.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -292,7 +292,7 @@ pcapkit/protocols/schema/internet/ipv4.py,sha256=us04bxCJ3SJytV65GvxYF79A1gHH3aG
|
|
292
292
|
pcapkit/protocols/schema/internet/ipv6.py,sha256=zLtUfBoWwgoKUtojTdWqIceZwPcKBJshdW57GLZtW5g,2045
|
293
293
|
pcapkit/protocols/schema/internet/ipv6_frag.py,sha256=Zewv7Bau3m3DDIja9G9ko_WYMmKo3m1d-DzrQ2jOQ7o,1434
|
294
294
|
pcapkit/protocols/schema/internet/ipv6_opts.py,sha256=M-h3DM_PStbUK2FhHP7UoHiza0AdGh5wI8F5w5jXRlg,21504
|
295
|
-
pcapkit/protocols/schema/internet/ipv6_route.py,sha256=
|
295
|
+
pcapkit/protocols/schema/internet/ipv6_route.py,sha256=lYcwnTN-rGpJwVEGFEClhWf5EVGbJ3_tOF-ga-IOIJI,6190
|
296
296
|
pcapkit/protocols/schema/internet/ipx.py,sha256=RWWMrnXZiruLocpc2BGC7iKQ3qt7GImz72LJzXRr43M,1377
|
297
297
|
pcapkit/protocols/schema/internet/mh.py,sha256=s_S76GUpNP3NwbU1gq9aPg1y8k6KJ7BV0A-LuhNOuss,24920
|
298
298
|
pcapkit/protocols/schema/link/__init__.py,sha256=xdkvznfriNEjzOEMWVfTuEv1sMnKJMOSDADgG78RCNg,644
|
@@ -326,7 +326,7 @@ pcapkit/toolkit/pyshark.py,sha256=37KdzGls8b8aI7d-MHS9k0QQbo9Gm1sRDth-eLKVToA,33
|
|
326
326
|
pcapkit/toolkit/scapy.py,sha256=L-rmqDWgTjHOH_MiqcwtYXhaPm3pzGc0kh1IUzNyzkI,11445
|
327
327
|
pcapkit/utilities/__init__.py,sha256=nd_SO3k9zXgi-Vesa1bhBiAgu55x2BeRMclLsdz9RWg,692
|
328
328
|
pcapkit/utilities/compat.py,sha256=fq16iG0leV4cyglNn2GeXdIIwUVzwMXGtdPigrejrgo,6533
|
329
|
-
pcapkit/utilities/decorators.py,sha256=
|
329
|
+
pcapkit/utilities/decorators.py,sha256=zUmoTISPCy6oKaUJt2OlcKYJ2CTOapw9o1r1RkDZnV8,7233
|
330
330
|
pcapkit/utilities/exceptions.py,sha256=2T2KvTXfzfs2iGuRkbczq_0zTN9jpwhrV-_8ULikP_M,11092
|
331
331
|
pcapkit/utilities/logging.py,sha256=-QAMfEfoWO17FwZoPHYN_2RL8tp8HlJNwbdu3eJXMfE,1935
|
332
332
|
pcapkit/utilities/warnings.py,sha256=2b8IXVIWLHb8DBsMFdiBF87kaVp1y1ELxbHYpm2zD2s,5068
|
@@ -458,9 +458,9 @@ pcapkit/vendor/tcp/mp_tcp_option.py,sha256=f6_-VMoQFnhuEbxs17Q1rp6JjFSLXGK3w1K2v
|
|
458
458
|
pcapkit/vendor/tcp/option.py,sha256=p05DrOt2m0QCf4gjLJzRshQRvaWxmt2PIzsv2UMjsa8,3043
|
459
459
|
pcapkit/vendor/vlan/__init__.py,sha256=qvLktJ0yuoZokas6-_ZGwMJOzbujSCM8pZHQ9jjTegU,674
|
460
460
|
pcapkit/vendor/vlan/priority_level.py,sha256=xVu6M-Ys4pft5I-qPCCxM-KfnMAUnZppD2qPO9gPkVE,2961
|
461
|
-
pypcapkit-1.3.
|
462
|
-
pypcapkit-1.3.
|
463
|
-
pypcapkit-1.3.
|
464
|
-
pypcapkit-1.3.
|
465
|
-
pypcapkit-1.3.
|
466
|
-
pypcapkit-1.3.
|
461
|
+
pypcapkit-1.3.4.dist-info/LICENSE,sha256=KkKND5E2e1Z6CQvSLPc1lRBy4xPRed41AG6q1txotWk,1516
|
462
|
+
pypcapkit-1.3.4.dist-info/METADATA,sha256=aFrfnTXGkfceooOyJrA0cpAf1jPDmP9eyfW3jsSaPTA,7698
|
463
|
+
pypcapkit-1.3.4.dist-info/WHEEL,sha256=R06PA3UVYHThwHvxuRWMqaGcr-PuniXahwjmQRFMEkY,91
|
464
|
+
pypcapkit-1.3.4.dist-info/entry_points.txt,sha256=8tVaZ-N0S2t19ELoTEGq_OlC8-dSmd7dvNn-kMV3afY,100
|
465
|
+
pypcapkit-1.3.4.dist-info/top_level.txt,sha256=KEssKRhG9ln3EOfGH-yi98HgI-MM9hOHy09QQP-fvk8,8
|
466
|
+
pypcapkit-1.3.4.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|