traffic-taffy 0.8.5__py3-none-any.whl → 0.9.1__py3-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.
- traffic_taffy/__init__.py +1 -1
- traffic_taffy/algorithms/__init__.py +14 -7
- traffic_taffy/algorithms/comparecorrelation.py +164 -0
- traffic_taffy/algorithms/comparecorrelationchanges.py +210 -0
- traffic_taffy/algorithms/compareseries.py +117 -0
- traffic_taffy/algorithms/compareslices.py +116 -0
- traffic_taffy/algorithms/statistical.py +9 -9
- traffic_taffy/compare.py +149 -159
- traffic_taffy/comparison.py +18 -4
- traffic_taffy/config.py +133 -0
- traffic_taffy/dissection.py +78 -6
- traffic_taffy/dissectmany.py +26 -16
- traffic_taffy/dissector.py +189 -77
- traffic_taffy/dissector_engine/scapy.py +41 -8
- traffic_taffy/graph.py +54 -53
- traffic_taffy/graphdata.py +13 -2
- traffic_taffy/hooks/ip2asn.py +20 -7
- traffic_taffy/hooks/labels.py +45 -0
- traffic_taffy/hooks/psl.py +21 -3
- traffic_taffy/output/__init__.py +8 -48
- traffic_taffy/output/console.py +37 -25
- traffic_taffy/output/fsdb.py +24 -18
- traffic_taffy/reports/__init__.py +5 -0
- traffic_taffy/reports/compareslicesreport.py +85 -0
- traffic_taffy/reports/correlationchangereport.py +54 -0
- traffic_taffy/reports/correlationreport.py +42 -0
- traffic_taffy/taffy_config.py +44 -0
- traffic_taffy/tests/test_compare_results.py +22 -7
- traffic_taffy/tests/test_config.py +149 -0
- traffic_taffy/tests/test_global_config.py +33 -0
- traffic_taffy/tests/test_normalize.py +1 -0
- traffic_taffy/tests/test_pcap_dissector.py +12 -2
- traffic_taffy/tests/test_pcap_splitter.py +21 -10
- traffic_taffy/tools/cache_info.py +3 -2
- traffic_taffy/tools/compare.py +32 -24
- traffic_taffy/tools/config.py +83 -0
- traffic_taffy/tools/dissect.py +51 -59
- traffic_taffy/tools/explore.py +5 -4
- traffic_taffy/tools/export.py +28 -17
- traffic_taffy/tools/graph.py +25 -27
- {traffic_taffy-0.8.5.dist-info → traffic_taffy-0.9.1.dist-info}/METADATA +4 -1
- traffic_taffy-0.9.1.dist-info/RECORD +56 -0
- {traffic_taffy-0.8.5.dist-info → traffic_taffy-0.9.1.dist-info}/entry_points.txt +1 -0
- traffic_taffy/report.py +0 -12
- traffic_taffy-0.8.5.dist-info/RECORD +0 -43
- {traffic_taffy-0.8.5.dist-info → traffic_taffy-0.9.1.dist-info}/WHEEL +0 -0
- {traffic_taffy-0.8.5.dist-info → traffic_taffy-0.9.1.dist-info}/licenses/LICENSE.txt +0 -0
traffic_taffy/tools/dissect.py
CHANGED
@@ -9,68 +9,70 @@ from traffic_taffy.dissector import (
|
|
9
9
|
PCAPDissector,
|
10
10
|
)
|
11
11
|
from traffic_taffy.dissectmany import PCAPDissectMany
|
12
|
-
from
|
12
|
+
from traffic_taffy.taffy_config import TaffyConfig, TT_CFG
|
13
|
+
from rich_argparse import RichHelpFormatter
|
14
|
+
from argparse import Namespace
|
15
|
+
from argparse_with_config import ArgumentParserWithConfig
|
13
16
|
|
14
17
|
|
15
|
-
def
|
16
|
-
"""
|
18
|
+
def dissect_parse_args() -> Namespace:
|
19
|
+
"""Parse the command line arguments."""
|
17
20
|
|
18
|
-
|
19
|
-
|
20
|
-
parser = ArgumentParser(
|
21
|
-
formatter_class=ArgumentDefaultsHelpFormatter,
|
22
|
-
description=__doc__,
|
23
|
-
epilog="Example Usage: taffy-dissect -C -d 10 -n 10000 file.pcap",
|
24
|
-
)
|
21
|
+
config: TaffyConfig = TaffyConfig()
|
22
|
+
config[TT_CFG.LOG_LEVEL] = "info"
|
25
23
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
24
|
+
parser = ArgumentParserWithConfig(
|
25
|
+
formatter_class=RichHelpFormatter,
|
26
|
+
description=__doc__,
|
27
|
+
epilog="Example Usage: taffy-dissect -C -d 10 -n 10000 file.pcap",
|
28
|
+
default_config=config,
|
29
|
+
)
|
32
30
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
)
|
31
|
+
parser.add_argument(
|
32
|
+
"--log-level",
|
33
|
+
"--ll",
|
34
|
+
default="info",
|
35
|
+
config_path="log_level",
|
36
|
+
help="Define the logging verbosity level (debug, info, warning, error, fotal, critical).",
|
37
|
+
)
|
39
38
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
39
|
+
parser.add_argument(
|
40
|
+
"-f",
|
41
|
+
"--fsdb",
|
42
|
+
action="store_true",
|
43
|
+
help="Print results in an FSDB formatted output",
|
44
|
+
)
|
45
45
|
|
46
|
-
|
47
|
-
|
46
|
+
parser.add_argument(
|
47
|
+
"--dont-fork",
|
48
|
+
action="store_true",
|
49
|
+
config_path="dissect.dont_fork",
|
50
|
+
help="Do not fork into multiple processes per file (still fork per file)",
|
51
|
+
)
|
52
|
+
|
53
|
+
dissector_add_parseargs(parser, config)
|
54
|
+
limitor_add_parseargs(parser, config)
|
55
|
+
|
56
|
+
parser.add_argument("input_pcaps", type=str, help="input pcap file", nargs="*")
|
57
|
+
|
58
|
+
args = parser.parse_args()
|
59
|
+
log_level = args.log_level.upper()
|
60
|
+
logging.basicConfig(level=log_level, format="%(levelname)-10s:\t%(message)s")
|
48
61
|
|
49
|
-
|
62
|
+
return (parser.config, args)
|
50
63
|
|
51
|
-
args = parser.parse_args()
|
52
|
-
log_level = args.log_level.upper()
|
53
|
-
logging.basicConfig(level=log_level, format="%(levelname)-10s:\t%(message)s")
|
54
|
-
return args
|
55
64
|
|
56
|
-
|
65
|
+
def main() -> None:
|
66
|
+
"""Dissect a pcap file and report contents."""
|
67
|
+
|
68
|
+
config, args = dissect_parse_args()
|
57
69
|
|
58
70
|
dissector_handle_arguments(args)
|
59
71
|
|
60
72
|
# load all the files
|
61
73
|
pdm = PCAPDissectMany(
|
62
74
|
args.input_pcaps,
|
63
|
-
|
64
|
-
dissector_level=args.dissection_level,
|
65
|
-
maximum_count=args.packet_count,
|
66
|
-
cache_results=args.cache_pcap_results,
|
67
|
-
cache_file_suffix=args.cache_file_suffix,
|
68
|
-
ignore_list=args.ignore_list,
|
69
|
-
pcap_filter=args.filter,
|
70
|
-
layers=args.layers,
|
71
|
-
force_overwrite=args.force_overwrite,
|
72
|
-
force_load=args.force_load,
|
73
|
-
merge_files=args.merge,
|
75
|
+
config,
|
74
76
|
)
|
75
77
|
try:
|
76
78
|
dissections = pdm.load_all(return_as_list=True, dont_fork=args.dont_fork)
|
@@ -83,19 +85,7 @@ def main() -> None:
|
|
83
85
|
dissection.merge_all(dissections)
|
84
86
|
|
85
87
|
# put the dissection into a dissector for reporting
|
86
|
-
pd = PCAPDissector(
|
87
|
-
args.input_pcaps[0],
|
88
|
-
bin_size=args.bin_size,
|
89
|
-
dissector_level=args.dissection_level,
|
90
|
-
maximum_count=args.packet_count,
|
91
|
-
cache_results=args.cache_pcap_results,
|
92
|
-
cache_file_suffix=args.cache_file_suffix,
|
93
|
-
ignore_list=args.ignore_list,
|
94
|
-
pcap_filter=args.filter,
|
95
|
-
layers=args.layers,
|
96
|
-
force_overwrite=args.force_overwrite,
|
97
|
-
force_load=args.force_load,
|
98
|
-
)
|
88
|
+
pd = PCAPDissector(args.input_pcaps, config)
|
99
89
|
pd.dissection = dissection
|
100
90
|
|
101
91
|
# output as requested
|
@@ -105,6 +95,7 @@ def main() -> None:
|
|
105
95
|
match_string=args.match_string,
|
106
96
|
match_value=args.match_value,
|
107
97
|
minimum_count=args.minimum_count,
|
98
|
+
match_expression=args.match_expression,
|
108
99
|
)
|
109
100
|
else:
|
110
101
|
pd.print(
|
@@ -112,6 +103,7 @@ def main() -> None:
|
|
112
103
|
match_string=args.match_string,
|
113
104
|
match_value=args.match_value,
|
114
105
|
minimum_count=args.minimum_count,
|
106
|
+
match_expression=args.match_expression,
|
115
107
|
)
|
116
108
|
|
117
109
|
|
traffic_taffy/tools/explore.py
CHANGED
@@ -6,7 +6,8 @@ import logging
|
|
6
6
|
from logging import debug
|
7
7
|
from datetime import datetime
|
8
8
|
import datetime as dt
|
9
|
-
from argparse import ArgumentParser,
|
9
|
+
from argparse import ArgumentParser, Namespace
|
10
|
+
from rich_argparse import RichHelpFormatter
|
10
11
|
from traffic_taffy.dissector import (
|
11
12
|
dissector_add_parseargs,
|
12
13
|
limitor_add_parseargs,
|
@@ -614,13 +615,13 @@ class TaffyExplorer(QDialog, PcapGraphData):
|
|
614
615
|
def parse_args() -> Namespace:
|
615
616
|
"Parse the command line arguments."
|
616
617
|
parser = ArgumentParser(
|
617
|
-
formatter_class=
|
618
|
+
formatter_class=RichHelpFormatter,
|
618
619
|
description=__doc__,
|
619
620
|
epilog="Example Usage: taffy-explore -C file1.pcap file2.pcap",
|
620
621
|
)
|
621
622
|
|
622
|
-
|
623
|
-
compare_add_parseargs(
|
623
|
+
limitor_add_parseargs(parser)
|
624
|
+
compare_add_parseargs(parser)
|
624
625
|
|
625
626
|
dissector_add_parseargs(parser)
|
626
627
|
|
traffic_taffy/tools/export.py
CHANGED
@@ -2,10 +2,12 @@
|
|
2
2
|
|
3
3
|
import logging
|
4
4
|
import sys
|
5
|
-
from argparse import
|
5
|
+
from argparse import ArgumentParser, FileType, Namespace
|
6
|
+
from rich_argparse import RichHelpFormatter
|
6
7
|
|
7
8
|
import pyfsdb
|
8
9
|
|
10
|
+
from traffic_taffy.taffy_config import TaffyConfig, TT_CFG
|
9
11
|
from traffic_taffy.dissectmany import PCAPDissectMany
|
10
12
|
from traffic_taffy.dissector import (
|
11
13
|
dissector_add_parseargs,
|
@@ -16,12 +18,27 @@ from traffic_taffy.dissector import (
|
|
16
18
|
|
17
19
|
def parse_args() -> Namespace:
|
18
20
|
"""Parse the command line arguments for taffy-export."""
|
21
|
+
|
22
|
+
config: TaffyConfig = TaffyConfig()
|
23
|
+
config.config_option_names = ["-y", "--config"]
|
24
|
+
config[TT_CFG.LOG_LEVEL] = "info"
|
25
|
+
|
26
|
+
config.read_configfile_from_arguments(sys.argv)
|
27
|
+
|
19
28
|
parser = ArgumentParser(
|
20
|
-
formatter_class=
|
29
|
+
formatter_class=RichHelpFormatter,
|
21
30
|
description=__doc__,
|
22
31
|
epilog="Example Usage: taffy-export -C -m IP.UDP.sport file.pcap",
|
23
32
|
)
|
24
33
|
|
34
|
+
parser.add_argument(
|
35
|
+
"-y",
|
36
|
+
"--config",
|
37
|
+
default=None,
|
38
|
+
type=str,
|
39
|
+
help="Configuration file (YAML) to load.",
|
40
|
+
)
|
41
|
+
|
25
42
|
parser.add_argument(
|
26
43
|
"--log-level",
|
27
44
|
"--ll",
|
@@ -29,8 +46,8 @@ def parse_args() -> Namespace:
|
|
29
46
|
help="Define the logging verbosity level (debug, info, warning, error, fotal, critical).",
|
30
47
|
)
|
31
48
|
|
32
|
-
dissector_add_parseargs(parser)
|
33
|
-
limitor_add_parseargs(parser)
|
49
|
+
dissector_add_parseargs(parser, config)
|
50
|
+
limitor_add_parseargs(parser, config)
|
34
51
|
|
35
52
|
parser.add_argument(
|
36
53
|
"-o",
|
@@ -45,28 +62,22 @@ def parse_args() -> Namespace:
|
|
45
62
|
args = parser.parse_args()
|
46
63
|
log_level = args.log_level.upper()
|
47
64
|
logging.basicConfig(level=log_level, format="%(levelname)-10s:\t%(message)s")
|
48
|
-
|
65
|
+
|
66
|
+
config.load_namespace(args)
|
67
|
+
return config
|
49
68
|
|
50
69
|
|
51
70
|
def main() -> None:
|
52
71
|
"""Export traffic-taffy data into an FSDB file."""
|
53
|
-
|
72
|
+
config = parse_args()
|
73
|
+
args = config.as_namespace()
|
54
74
|
|
55
75
|
dissector_handle_arguments(args)
|
56
76
|
|
77
|
+
del config["output_file"] # this causes a msgpack problem
|
57
78
|
pdm = PCAPDissectMany(
|
58
79
|
args.input_pcaps,
|
59
|
-
|
60
|
-
dissector_level=args.dissection_level,
|
61
|
-
maximum_count=args.packet_count,
|
62
|
-
cache_results=args.cache_pcap_results,
|
63
|
-
cache_file_suffix=args.cache_file_suffix,
|
64
|
-
ignore_list=args.ignore_list,
|
65
|
-
pcap_filter=args.filter,
|
66
|
-
layers=args.layers,
|
67
|
-
force_load=args.force_load,
|
68
|
-
force_overwrite=args.force_overwrite,
|
69
|
-
merge_files=args.merge,
|
80
|
+
config,
|
70
81
|
)
|
71
82
|
|
72
83
|
dissections = pdm.load_all(return_as_list=True)
|
traffic_taffy/tools/graph.py
CHANGED
@@ -1,27 +1,36 @@
|
|
1
1
|
"""Read a PCAP file and graph it or parts of it."""
|
2
2
|
|
3
|
-
|
3
|
+
import logging
|
4
|
+
from argparse import Namespace
|
5
|
+
from argparse_with_config import ArgumentParserWithConfig
|
6
|
+
from rich_argparse import RichHelpFormatter
|
7
|
+
|
4
8
|
from traffic_taffy.graph import PcapGraph
|
9
|
+
from traffic_taffy.taffy_config import TaffyConfig
|
5
10
|
from traffic_taffy.dissector import (
|
6
11
|
dissector_add_parseargs,
|
7
12
|
limitor_add_parseargs,
|
8
13
|
dissector_handle_arguments,
|
9
14
|
)
|
10
|
-
import logging
|
11
15
|
|
12
16
|
|
13
17
|
def parse_args() -> Namespace:
|
14
18
|
"""Parse the command line arguments."""
|
15
|
-
|
16
|
-
|
19
|
+
|
20
|
+
config: TaffyConfig = TaffyConfig()
|
21
|
+
|
22
|
+
parser = ArgumentParserWithConfig(
|
23
|
+
formatter_class=RichHelpFormatter,
|
17
24
|
description=__doc__,
|
18
|
-
epilog="Example Usage: taffy-graph -C -m
|
25
|
+
epilog="Example Usage: taffy-graph -C -m __TOTAL__ -M packet -o graph.png file.pcap",
|
26
|
+
default_config=config,
|
19
27
|
)
|
20
28
|
|
21
29
|
parser.add_argument(
|
22
30
|
"-o",
|
23
31
|
"--output-file",
|
24
32
|
default=None,
|
33
|
+
config_path="graph.output_file",
|
25
34
|
type=str,
|
26
35
|
help="Where to save the output (png)",
|
27
36
|
)
|
@@ -29,6 +38,7 @@ def parse_args() -> Namespace:
|
|
29
38
|
parser.add_argument(
|
30
39
|
"-p",
|
31
40
|
"--by-percentage",
|
41
|
+
config_path="graph.by_percentage",
|
32
42
|
action="store_true",
|
33
43
|
help="Graph by percentage of traffic rather than by value",
|
34
44
|
)
|
@@ -36,6 +46,7 @@ def parse_args() -> Namespace:
|
|
36
46
|
parser.add_argument(
|
37
47
|
"-i",
|
38
48
|
"--interactive",
|
49
|
+
config_path="graph.interactive",
|
39
50
|
action="store_true",
|
40
51
|
help="Prompt repeatedly for graph data to create",
|
41
52
|
)
|
@@ -44,11 +55,12 @@ def parse_args() -> Namespace:
|
|
44
55
|
"--log-level",
|
45
56
|
"--ll",
|
46
57
|
default="info",
|
58
|
+
config_path="log_level",
|
47
59
|
help="Define verbosity level (debug, info, warning, error, fotal, critical).",
|
48
60
|
)
|
49
61
|
|
50
|
-
dissector_add_parseargs(parser)
|
51
|
-
limitor_add_parseargs(parser)
|
62
|
+
dissector_add_parseargs(parser, config)
|
63
|
+
limitor_add_parseargs(parser, config)
|
52
64
|
|
53
65
|
parser.add_argument("input_pcaps", type=str, help="PCAP file to graph", nargs="+")
|
54
66
|
|
@@ -56,34 +68,20 @@ def parse_args() -> Namespace:
|
|
56
68
|
log_level = args.log_level.upper()
|
57
69
|
logging.basicConfig(level=log_level, format="%(levelname)-10s:\t%(message)s")
|
58
70
|
logging.getLogger("matplotlib.font_manager").setLevel(logging.ERROR)
|
59
|
-
|
71
|
+
|
72
|
+
dissector_handle_arguments(args)
|
73
|
+
|
74
|
+
return parser.config, args
|
60
75
|
|
61
76
|
|
62
77
|
def main() -> None:
|
63
78
|
"""Run taffy-graph."""
|
64
|
-
args = parse_args()
|
65
|
-
|
66
|
-
dissector_handle_arguments(args)
|
79
|
+
config, args = parse_args()
|
67
80
|
|
68
81
|
pc = PcapGraph(
|
69
82
|
args.input_pcaps,
|
70
83
|
args.output_file,
|
71
|
-
|
72
|
-
minimum_count=args.minimum_count,
|
73
|
-
bin_size=args.bin_size,
|
74
|
-
match_string=args.match_string,
|
75
|
-
match_value=args.match_value,
|
76
|
-
cache_pcap_results=args.cache_pcap_results,
|
77
|
-
dissector_level=args.dissection_level,
|
78
|
-
interactive=args.interactive,
|
79
|
-
by_percentage=args.by_percentage,
|
80
|
-
ignore_list=args.ignore_list,
|
81
|
-
pcap_filter=args.filter,
|
82
|
-
cache_file_suffix=args.cache_file_suffix,
|
83
|
-
layers=args.layers,
|
84
|
-
force_overwrite=args.force_overwrite,
|
85
|
-
force_load=args.force_load,
|
86
|
-
merge_files=args.merge,
|
84
|
+
config,
|
87
85
|
)
|
88
86
|
pc.graph_it()
|
89
87
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: traffic-taffy
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.9.1
|
4
4
|
Summary: A tool for doing differential analysis of pcap files
|
5
5
|
Project-URL: Homepage, https://traffic-taffy.github.io/
|
6
6
|
Author-email: Wes Hardaker <opensource@hardakers.net>
|
@@ -8,8 +8,10 @@ License-File: LICENSE.txt
|
|
8
8
|
Classifier: Operating System :: OS Independent
|
9
9
|
Classifier: Programming Language :: Python :: 3
|
10
10
|
Requires-Python: >=3.7
|
11
|
+
Requires-Dist: argparse-with-config>=0.1.4
|
11
12
|
Requires-Dist: cryptography
|
12
13
|
Requires-Dist: dnssplitter
|
14
|
+
Requires-Dist: dotnest>=1.0
|
13
15
|
Requires-Dist: dpkt
|
14
16
|
Requires-Dist: ip2asn
|
15
17
|
Requires-Dist: msgpack
|
@@ -19,6 +21,7 @@ Requires-Dist: pyfsdb
|
|
19
21
|
Requires-Dist: pyopenssl==22.1.0
|
20
22
|
Requires-Dist: pyqt6-charts
|
21
23
|
Requires-Dist: rich
|
24
|
+
Requires-Dist: rich-argparse
|
22
25
|
Requires-Dist: scapy
|
23
26
|
Requires-Dist: seaborn
|
24
27
|
Description-Content-Type: text/markdown
|
@@ -0,0 +1,56 @@
|
|
1
|
+
traffic_taffy/__init__.py,sha256=u9pJ9wMqnfaUDvpAnje_QL_Ge7wmEMvP3I7LcFNVbmw,22
|
2
|
+
traffic_taffy/compare.py,sha256=g9rU6oa_2Wy0nUJ7K6TI8JTctyGCRvYEUakDBf7blOY,8644
|
3
|
+
traffic_taffy/comparison.py,sha256=KJxOp4UqhfRkF4LI1PMDRIefeyTm2w5sbdr7VUTS4KM,1451
|
4
|
+
traffic_taffy/config.py,sha256=DgTu2kA1Ec4Hbwl_44kTsdyJYvxAabgJk9a7aOH2XXU,4444
|
5
|
+
traffic_taffy/dissection.py,sha256=dW6UxJ_RY5oMipyh3J2CvsjP-E9Llly7IgjbPFSSTzU,24571
|
6
|
+
traffic_taffy/dissectmany.py,sha256=SWFXFyERNCi0j7hiMDEeJJdPYDpa0SOlSj1V8AqpXUA,5189
|
7
|
+
traffic_taffy/dissector.py,sha256=Q5dYLY8ZVPt2Iz4T0asdmBBwma2YPBk9XOwtmOATX10,15626
|
8
|
+
traffic_taffy/graph.py,sha256=EfkxH5D9PNlDpvftkh9GyUusV05EV537QGB7JOMeW4w,4730
|
9
|
+
traffic_taffy/graphdata.py,sha256=r_QNXO3FzC7Vx4123SdCliAh7j2NCQ4Lb5uoOJnlt2M,3376
|
10
|
+
traffic_taffy/taffy_config.py,sha256=AmdQbWAhoiV7aTNSpV1exJfd5eA0a3sYTIjikHkMPwY,1124
|
11
|
+
traffic_taffy/algorithms/__init__.py,sha256=A7xI2ctotBT7WgG-6ItilXE_FIWF9QWc6UjdfGyThKw,737
|
12
|
+
traffic_taffy/algorithms/comparecorrelation.py,sha256=gakZJotZNOVj96y4_-vtt_ka8pZLBVERf44Yixtq_yE,5875
|
13
|
+
traffic_taffy/algorithms/comparecorrelationchanges.py,sha256=-ztWKpNN5lm_6e7hTSZytwzuK1RpMpfe1ksQgsb0_tk,7646
|
14
|
+
traffic_taffy/algorithms/compareseries.py,sha256=cVonTV6TnMZAaHlGqZ6shn0aDQTTHzK-tPvUAk3OkuQ,4165
|
15
|
+
traffic_taffy/algorithms/compareslices.py,sha256=aIDhISKi-m8uD65pBd3A2naoxYD9zeay6y7mAk4hXdg,4336
|
16
|
+
traffic_taffy/algorithms/statistical.py,sha256=McP8fdg4P2zRHm57Gq7xKLukrvh7ITZNlj4lhv51IPE,4158
|
17
|
+
traffic_taffy/dissector_engine/__init__.py,sha256=Hu-UQtz7yhivmQLUP5b8tFQLEhy2bfvrRV3Q4aZp6vg,2202
|
18
|
+
traffic_taffy/dissector_engine/dnstap.py,sha256=rBzVlB0D3YVhHOsr17cbnCIZU13g20srgR4sE7ZfNUE,4810
|
19
|
+
traffic_taffy/dissector_engine/dpkt.py,sha256=YgFceo_6cy1VN-ODIijSsOfH3w8OzHPbpUS463is3YI,10949
|
20
|
+
traffic_taffy/dissector_engine/scapy.py,sha256=WrZUfV_viR2Tro0kM3QKUkufIcM3RyYaZ3ncA1yZsaU,4897
|
21
|
+
traffic_taffy/hooks/__init__.py,sha256=Bvhl6RnyBqQkWuCU6TS0O_ZHe4qCQsC4HE8FELigWPw,661
|
22
|
+
traffic_taffy/hooks/ip2asn.py,sha256=FCjTbHQZEuOvlw1fMyQgcJFiZrJfpNpUVZTdsxtUldw,2132
|
23
|
+
traffic_taffy/hooks/labels.py,sha256=QayehHzvaqILf_bP3avwGXa-xL4IBEndo6ILbLtqcKU,1860
|
24
|
+
traffic_taffy/hooks/psl.py,sha256=ym1vzBS9esgIRxZi5hWFcUl0vax5go_f9-2P_6kynts,2031
|
25
|
+
traffic_taffy/iana/tables.msgpak,sha256=d-R5Xw9yG9t4RqGJRrpE6cjH4YfaxQBwQiBhNjKZbwI,172825
|
26
|
+
traffic_taffy/output/__init__.py,sha256=qqlAUA99fxWlHEns-ji7A2RrcA8RA-AKXK7n2D737c8,3312
|
27
|
+
traffic_taffy/output/console.py,sha256=QizlMIRbUKm7S57SojBiTAOB4KM9DCcj8EKiH1roO6U,3031
|
28
|
+
traffic_taffy/output/fsdb.py,sha256=0z2zDydfnqOVM8Mj6pTJf4n4pGPupWykuYPgdgjJRN8,1859
|
29
|
+
traffic_taffy/output/memory.py,sha256=86tgJ-jMt3UVX31eP6U02YbbYRoqbYhhR4kXJQmYzO4,1870
|
30
|
+
traffic_taffy/reports/__init__.py,sha256=lMDS7q35aIdDrJ7G8ot4Q_6t9nYllr0C9510FL43rZY,113
|
31
|
+
traffic_taffy/reports/compareslicesreport.py,sha256=Clrif58TPBTwP4BNxh9PcHkyASbUUscrOWtSgLrItN4,2754
|
32
|
+
traffic_taffy/reports/correlationchangereport.py,sha256=W8tKWMk5Ss45Ho3wh_mAcK2Jj2fpL7vnNyun2C_lRgw,1575
|
33
|
+
traffic_taffy/reports/correlationreport.py,sha256=9PdL_53mxfO619PFSoeRsTEm63L1J_u-B4sVvlH8xaU,1109
|
34
|
+
traffic_taffy/tests/test_compare_results.py,sha256=iLcS9wvEqxgKszIspLtD2Zw8Qk5JxOCurQwWYzhtOkM,2318
|
35
|
+
traffic_taffy/tests/test_config.py,sha256=UCqSJXVwpFFchcIbyFzLqjVF-wgEV755KlQ7thommro,4284
|
36
|
+
traffic_taffy/tests/test_dict_merge.py,sha256=t3rZSQQ0AlBxRKfLborx9SxYN53cCAQQzZ2w-__WT2Y,1429
|
37
|
+
traffic_taffy/tests/test_global_config.py,sha256=kjr1wy1cXWagVLb0OnQYH0vz2htxLs944Xo42lNsir4,597
|
38
|
+
traffic_taffy/tests/test_hooks.py,sha256=amjEbtMwOZZCg_RCJ0wQR7aOqNfwz3IG3WY-9CwjSF4,1260
|
39
|
+
traffic_taffy/tests/test_normalize.py,sha256=sKHyiV8YXcKKcWqsbZP94nu_g5oEMJzzj6umeHxwa64,2638
|
40
|
+
traffic_taffy/tests/test_pcap_dissector.py,sha256=U2P1ECerNbT6d_KP_uSVWyzfA-PfYTZUHWncQ-jK0t4,2214
|
41
|
+
traffic_taffy/tests/test_pcap_splitter.py,sha256=F1s4KQi340oCRcfdkU_r1wYRExCEnTs7FxYbCYTQrbY,2812
|
42
|
+
traffic_taffy/tests/test_splitter.py,sha256=bSb84QOCxRuRXy4BGLFDs5YYRBDgZrx9InhtE3DZsFg,1481
|
43
|
+
traffic_taffy/tests/test_value_printing.py,sha256=rhmCUqnh1Lk1TTZvZi7ksvUWm4XDB4g2aUihjLpoqHI,266
|
44
|
+
traffic_taffy/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
45
|
+
traffic_taffy/tools/cache_info.py,sha256=ZanO6jDlTdfJ7w0N_7BkLyJj4NyZGShaH7SrUulbIoE,2085
|
46
|
+
traffic_taffy/tools/compare.py,sha256=oT5fIqfPeY6nGI9vSVAoKDsAVzzqfXJDzyOw2BhPfSI,3509
|
47
|
+
traffic_taffy/tools/config.py,sha256=XVsKA0E429K2HCyjuPuHwS1iPBkscQxa82Zu53Wmpqw,2458
|
48
|
+
traffic_taffy/tools/dissect.py,sha256=B-7e7aqEOWtJ-0P2Y-mzmrzoDqVrDCJ2JzGR45QtuuQ,3073
|
49
|
+
traffic_taffy/tools/explore.py,sha256=gUcOfAgangJJI1si1gLPUoWRUKmWUAXSP0oTD2JJygw,24149
|
50
|
+
traffic_taffy/tools/export.py,sha256=9zBBGhZK95b4ZiLJ8XK30GPsaBjgR84Sk1HoPIxRpTI,2844
|
51
|
+
traffic_taffy/tools/graph.py,sha256=KiKDY9R8JLT5-JouANoi_1WGcdFMhXsLnYlhPsFRWpM,2316
|
52
|
+
traffic_taffy-0.9.1.dist-info/METADATA,sha256=DnMSh8c3gJmQqp_kP6NZCiHfsC29fJ8dZf8pfLv4olU,2033
|
53
|
+
traffic_taffy-0.9.1.dist-info/WHEEL,sha256=TJPnKdtrSue7xZ_AVGkp9YXcvDrobsjBds1du3Nx6dc,87
|
54
|
+
traffic_taffy-0.9.1.dist-info/entry_points.txt,sha256=F0lqjvw94nQ3hY4eerN7faT9aKhhGUHbqBhuEr9q1r8,361
|
55
|
+
traffic_taffy-0.9.1.dist-info/licenses/LICENSE.txt,sha256=hiV1DJgDQeSM1r7P-ez5oxily11S5nsCedU0jKzKKzo,11338
|
56
|
+
traffic_taffy-0.9.1.dist-info/RECORD,,
|
@@ -1,6 +1,7 @@
|
|
1
1
|
[console_scripts]
|
2
2
|
taffy-cache-info = traffic_taffy.tools.cache_info:main
|
3
3
|
taffy-compare = traffic_taffy.tools.compare:main
|
4
|
+
taffy-config = traffic_taffy.tools.config:main
|
4
5
|
taffy-dissect = traffic_taffy.tools.dissect:main
|
5
6
|
taffy-explorer = traffic_taffy.tools.explorer:main
|
6
7
|
taffy-export = traffic_taffy.tools.export:main
|
traffic_taffy/report.py
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
traffic_taffy/__init__.py,sha256=n9FymgbxpXu3w9gvFFmFbdtHDu-QOLvIWAMihAIPlcs,22
|
2
|
-
traffic_taffy/compare.py,sha256=4T25Ygp6rQw7J3syn4Tam6tEw3ieSzl-lELPARvNnVw,8641
|
3
|
-
traffic_taffy/comparison.py,sha256=MmCxK7E3RbVLS8gJ_JJOdqa2MHQ7np1Pq_VB0Scir8U,933
|
4
|
-
traffic_taffy/dissection.py,sha256=6Ex0zkUCvl-nMNg44CYkSL7JFqi6O7_T690bFzTj0A8,21567
|
5
|
-
traffic_taffy/dissectmany.py,sha256=kJO2XF8QzOmLDsKDjZIkQBmxC97wFpi-IisCURLOmfU,4700
|
6
|
-
traffic_taffy/dissector.py,sha256=JHewf3vhvYjE6CGuRzO6_SnR5QuHZjzx-hZjpkAPHl4,11685
|
7
|
-
traffic_taffy/graph.py,sha256=lH20RjnY3rMU8g2zyOkpS5pfvgCcYa4GCtO22uArzs8,4510
|
8
|
-
traffic_taffy/graphdata.py,sha256=lHpLuzzypEPuz3QPfkvs0IAbplTLzKcqHaLyoRidmiE,2971
|
9
|
-
traffic_taffy/report.py,sha256=Yzb27hUWcWL-RxWpSQmRyM8NyWxQGT0l0jUCGHoYDSY,224
|
10
|
-
traffic_taffy/algorithms/__init__.py,sha256=wfzoujmw_Huwi69UnDgAcBQyXeKqz2tPW4RFSqTr3iU,318
|
11
|
-
traffic_taffy/algorithms/statistical.py,sha256=J9eI2a4S3GXezWySjjXZQ_sxNEnSc6ePiDSL3cp-UjQ,4023
|
12
|
-
traffic_taffy/dissector_engine/__init__.py,sha256=Hu-UQtz7yhivmQLUP5b8tFQLEhy2bfvrRV3Q4aZp6vg,2202
|
13
|
-
traffic_taffy/dissector_engine/dnstap.py,sha256=rBzVlB0D3YVhHOsr17cbnCIZU13g20srgR4sE7ZfNUE,4810
|
14
|
-
traffic_taffy/dissector_engine/dpkt.py,sha256=YgFceo_6cy1VN-ODIijSsOfH3w8OzHPbpUS463is3YI,10949
|
15
|
-
traffic_taffy/dissector_engine/scapy.py,sha256=5lE6y4wzULfULTFcTAo6qINazqoBVwzbRzP0alP4ATc,3730
|
16
|
-
traffic_taffy/hooks/__init__.py,sha256=Bvhl6RnyBqQkWuCU6TS0O_ZHe4qCQsC4HE8FELigWPw,661
|
17
|
-
traffic_taffy/hooks/ip2asn.py,sha256=8KyqwKTY3YK9GZEDW_3PM_6zuvrzkDAzIceIodNAepY,1765
|
18
|
-
traffic_taffy/hooks/psl.py,sha256=6Xmbl2OigDIe17ChumU35iuE0B6Q7ttBp2iBruxWFg4,1529
|
19
|
-
traffic_taffy/iana/tables.msgpak,sha256=d-R5Xw9yG9t4RqGJRrpE6cjH4YfaxQBwQiBhNjKZbwI,172825
|
20
|
-
traffic_taffy/output/__init__.py,sha256=dSpW9xDno3nKaYOwThS2fVkcIHJVAJE9DlEiLfdHXfg,4555
|
21
|
-
traffic_taffy/output/console.py,sha256=Ziq4MKtzSdP9oVaZrWHiw0Bpsm2Dj9QFLJtDK38mxaY,2911
|
22
|
-
traffic_taffy/output/fsdb.py,sha256=po--ldHeRPTXVTkP68qtI_BYV2cEOab-kFVWv0ymj5M,1704
|
23
|
-
traffic_taffy/output/memory.py,sha256=86tgJ-jMt3UVX31eP6U02YbbYRoqbYhhR4kXJQmYzO4,1870
|
24
|
-
traffic_taffy/tests/test_compare_results.py,sha256=LRAAsel2vwSLZmSGxzdGurga77dhBsLkTCMRjybb10A,1921
|
25
|
-
traffic_taffy/tests/test_dict_merge.py,sha256=t3rZSQQ0AlBxRKfLborx9SxYN53cCAQQzZ2w-__WT2Y,1429
|
26
|
-
traffic_taffy/tests/test_hooks.py,sha256=amjEbtMwOZZCg_RCJ0wQR7aOqNfwz3IG3WY-9CwjSF4,1260
|
27
|
-
traffic_taffy/tests/test_normalize.py,sha256=k5y3XmYitnF1aTkB-9dZ7WZPQB__l_iEzC6atKKywfw,2601
|
28
|
-
traffic_taffy/tests/test_pcap_dissector.py,sha256=sxJJ3seO9pjzilM0b6iu_ggQbUI4E7WbMFdwm4m9Gz0,2027
|
29
|
-
traffic_taffy/tests/test_pcap_splitter.py,sha256=Pjv2CS_WXqK1wQ1rdsxLU-M1Z5fuHsciEhiDJpujFnI,2568
|
30
|
-
traffic_taffy/tests/test_splitter.py,sha256=bSb84QOCxRuRXy4BGLFDs5YYRBDgZrx9InhtE3DZsFg,1481
|
31
|
-
traffic_taffy/tests/test_value_printing.py,sha256=rhmCUqnh1Lk1TTZvZi7ksvUWm4XDB4g2aUihjLpoqHI,266
|
32
|
-
traffic_taffy/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
33
|
-
traffic_taffy/tools/cache_info.py,sha256=N4L-xjO3i-p3QD5DIytSt3GBnT4JsJh3V2dl5Tktumk,2084
|
34
|
-
traffic_taffy/tools/compare.py,sha256=BkcWza0lN6KeBb_8oyr88eh0WoVqp5LM3yK8nRY16bc,3476
|
35
|
-
traffic_taffy/tools/dissect.py,sha256=Z_5JJ92E4168_GZM_9Iu-m6lDfETBt8Gv-vD_Mu3Cfg,3559
|
36
|
-
traffic_taffy/tools/explore.py,sha256=Hb4x9HZkFoYnR8BJKF5OLwZWKGR3RX3MdZhX4Oo-NDU,24180
|
37
|
-
traffic_taffy/tools/export.py,sha256=BuAnZcOszj9ZpMxHmRjDqptR15dMRigOhp2-BFJHgWA,2707
|
38
|
-
traffic_taffy/tools/graph.py,sha256=gARv5-7N5MUBSJJ8Uj5XLx4xEonXgIMADKwN573jxyk,2555
|
39
|
-
traffic_taffy-0.8.5.dist-info/METADATA,sha256=h_i-wO4muRSfeswpfjQddlpyinLnYJfYc2wLGnr_SN4,1933
|
40
|
-
traffic_taffy-0.8.5.dist-info/WHEEL,sha256=TJPnKdtrSue7xZ_AVGkp9YXcvDrobsjBds1du3Nx6dc,87
|
41
|
-
traffic_taffy-0.8.5.dist-info/entry_points.txt,sha256=ySz30b1Cu03CtCGMRqqg0NZJpzrVI91T5HjbEaTNnpQ,314
|
42
|
-
traffic_taffy-0.8.5.dist-info/licenses/LICENSE.txt,sha256=hiV1DJgDQeSM1r7P-ez5oxily11S5nsCedU0jKzKKzo,11338
|
43
|
-
traffic_taffy-0.8.5.dist-info/RECORD,,
|
File without changes
|
File without changes
|