credsweeper 1.12.1__py3-none-any.whl → 1.13.3__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.
Potentially problematic release.
This version of credsweeper might be problematic. Click here for more details.
- credsweeper/__init__.py +1 -1
- credsweeper/__main__.py +23 -13
- credsweeper/app.py +7 -2
- credsweeper/common/keyword_pattern.py +6 -3
- credsweeper/common/morpheme_checklist.txt +26 -6
- credsweeper/config/config.py +1 -0
- credsweeper/credentials/line_data.py +21 -6
- credsweeper/deep_scanner/abstract_scanner.py +1 -0
- credsweeper/deep_scanner/csv_scanner.py +71 -0
- credsweeper/deep_scanner/deep_scanner.py +19 -9
- credsweeper/deep_scanner/jks_scanner.py +11 -2
- credsweeper/deep_scanner/pkcs_scanner.py +4 -0
- credsweeper/deep_scanner/rtf_scanner.py +41 -0
- credsweeper/deep_scanner/strings_scanner.py +52 -0
- credsweeper/file_handler/byte_content_provider.py +10 -1
- credsweeper/file_handler/file_path_extractor.py +2 -0
- credsweeper/file_handler/text_content_provider.py +7 -1
- credsweeper/filters/__init__.py +1 -1
- credsweeper/filters/group/token_pattern.py +2 -2
- credsweeper/filters/group/weird_base36_token.py +3 -3
- credsweeper/filters/group/weird_base64_token.py +2 -2
- credsweeper/filters/value_camel_case_check.py +2 -2
- credsweeper/filters/value_file_path_check.py +5 -3
- credsweeper/filters/value_github_check.py +3 -2
- credsweeper/filters/value_morphemes_check.py +43 -0
- credsweeper/filters/value_string_type_check.py +1 -0
- credsweeper/ml_model/features/feature.py +1 -18
- credsweeper/ml_model/features/file_extension.py +1 -1
- credsweeper/ml_model/features/has_html_tag.py +10 -8
- credsweeper/ml_model/features/is_secret_numeric.py +4 -3
- credsweeper/ml_model/features/rule_name.py +1 -1
- credsweeper/ml_model/features/word_in.py +9 -32
- credsweeper/ml_model/features/word_in_path.py +2 -3
- credsweeper/ml_model/features/word_in_postamble.py +1 -4
- credsweeper/ml_model/features/word_in_preamble.py +1 -4
- credsweeper/ml_model/features/word_in_transition.py +1 -4
- credsweeper/ml_model/features/word_in_value.py +2 -3
- credsweeper/ml_model/features/word_in_variable.py +2 -3
- credsweeper/ml_model/ml_config.json +15 -8
- credsweeper/ml_model/ml_model.onnx +0 -0
- credsweeper/ml_model/ml_validator.py +1 -1
- credsweeper/rules/config.yaml +174 -207
- credsweeper/scanner/scanner.py +12 -7
- credsweeper/secret/config.json +18 -5
- credsweeper/utils/util.py +21 -18
- {credsweeper-1.12.1.dist-info → credsweeper-1.13.3.dist-info}/METADATA +7 -7
- {credsweeper-1.12.1.dist-info → credsweeper-1.13.3.dist-info}/RECORD +50 -47
- credsweeper/filters/value_couple_keyword_check.py +0 -28
- {credsweeper-1.12.1.dist-info → credsweeper-1.13.3.dist-info}/WHEEL +0 -0
- {credsweeper-1.12.1.dist-info → credsweeper-1.13.3.dist-info}/entry_points.txt +0 -0
- {credsweeper-1.12.1.dist-info → credsweeper-1.13.3.dist-info}/licenses/LICENSE +0 -0
credsweeper/scanner/scanner.py
CHANGED
|
@@ -19,6 +19,8 @@ from credsweeper.utils.util import Util
|
|
|
19
19
|
|
|
20
20
|
logger = logging.getLogger(__name__)
|
|
21
21
|
|
|
22
|
+
RULES_PATH = APP_PATH / "rules" / "config.yaml"
|
|
23
|
+
|
|
22
24
|
|
|
23
25
|
class Scanner:
|
|
24
26
|
"""Advanced Credential Scanner base class.
|
|
@@ -66,11 +68,11 @@ class Scanner:
|
|
|
66
68
|
return True
|
|
67
69
|
return False
|
|
68
70
|
|
|
69
|
-
def _set_rules_scanners(self,
|
|
71
|
+
def _set_rules_scanners(self, rules_path: Union[None, str, Path]) -> None:
|
|
70
72
|
"""Auxiliary method to fill rules, determine min_pattern_len and set scanners"""
|
|
71
|
-
if
|
|
72
|
-
|
|
73
|
-
rule_templates = Util.yaml_load(
|
|
73
|
+
if rules_path is None:
|
|
74
|
+
rules_path = RULES_PATH
|
|
75
|
+
rule_templates = Util.yaml_load(rules_path)
|
|
74
76
|
if rule_templates and isinstance(rule_templates, list):
|
|
75
77
|
rule_names = set()
|
|
76
78
|
for rule_template in rule_templates:
|
|
@@ -98,7 +100,7 @@ class Scanner:
|
|
|
98
100
|
logger.warning(f"Unknown rule type:{rule.rule_type}")
|
|
99
101
|
self.rules_scanners.append((rule, self.get_scanner(rule)))
|
|
100
102
|
else:
|
|
101
|
-
raise RuntimeError(f"Wrong rules '{rule_templates}' were read from '{
|
|
103
|
+
raise RuntimeError(f"Wrong rules '{rule_templates}' were read from '{rules_path}'")
|
|
102
104
|
|
|
103
105
|
def _is_available(self, rule: Rule) -> bool:
|
|
104
106
|
"""separate the method to reduce complexity"""
|
|
@@ -153,8 +155,11 @@ class Scanner:
|
|
|
153
155
|
target_line_stripped_len >= self.min_keyword_len and ( #
|
|
154
156
|
'=' in target_line_stripped
|
|
155
157
|
or ':' in target_line_stripped
|
|
156
|
-
or "
|
|
157
|
-
|
|
158
|
+
or ("define" in target_line_stripped
|
|
159
|
+
and ('(' in target_line_stripped and ',' in target_line_stripped
|
|
160
|
+
or "#define" in target_line_stripped
|
|
161
|
+
or "%define" in target_line_stripped)
|
|
162
|
+
)
|
|
158
163
|
or "%global" in target_line_stripped
|
|
159
164
|
or "set" in target_line_stripped_lower
|
|
160
165
|
or "%3d" in target_line_stripped_lower
|
credsweeper/secret/config.json
CHANGED
|
@@ -12,18 +12,21 @@
|
|
|
12
12
|
".rpm",
|
|
13
13
|
".tar",
|
|
14
14
|
".war",
|
|
15
|
+
".whl",
|
|
15
16
|
".xz",
|
|
16
17
|
".zip"
|
|
17
18
|
],
|
|
18
19
|
"documents": [
|
|
19
|
-
".
|
|
20
|
+
".doc",
|
|
20
21
|
".docx",
|
|
21
|
-
".pptx",
|
|
22
|
-
".xls",
|
|
23
22
|
".odp",
|
|
24
23
|
".ods",
|
|
25
24
|
".odt",
|
|
26
|
-
".pdf"
|
|
25
|
+
".pdf",
|
|
26
|
+
".ppt",
|
|
27
|
+
".pptx",
|
|
28
|
+
".xls",
|
|
29
|
+
".xlsx"
|
|
27
30
|
],
|
|
28
31
|
"extension": [
|
|
29
32
|
".7z",
|
|
@@ -45,16 +48,23 @@
|
|
|
45
48
|
".info",
|
|
46
49
|
".jpeg",
|
|
47
50
|
".jpg",
|
|
51
|
+
".lib",
|
|
48
52
|
".map",
|
|
49
53
|
".m4a",
|
|
50
54
|
".mat",
|
|
51
55
|
".mo",
|
|
56
|
+
".mov",
|
|
52
57
|
".mp3",
|
|
53
58
|
".mp4",
|
|
59
|
+
".mpg",
|
|
60
|
+
".mkv",
|
|
54
61
|
".npy",
|
|
55
62
|
".npz",
|
|
56
63
|
".obj",
|
|
64
|
+
".oga",
|
|
57
65
|
".ogg",
|
|
66
|
+
".ogv",
|
|
67
|
+
".ops",
|
|
58
68
|
".pak",
|
|
59
69
|
".png",
|
|
60
70
|
".psd",
|
|
@@ -71,8 +81,10 @@
|
|
|
71
81
|
".so",
|
|
72
82
|
".sum",
|
|
73
83
|
".svg",
|
|
84
|
+
".swf",
|
|
74
85
|
".tif",
|
|
75
86
|
".tiff",
|
|
87
|
+
".tlb",
|
|
76
88
|
".ttf",
|
|
77
89
|
".vcxproj",
|
|
78
90
|
".vdproj",
|
|
@@ -81,6 +93,7 @@
|
|
|
81
93
|
".webp",
|
|
82
94
|
".wma",
|
|
83
95
|
".woff",
|
|
96
|
+
".woff2",
|
|
84
97
|
".yuv"
|
|
85
98
|
],
|
|
86
99
|
"path": [
|
|
@@ -164,7 +177,7 @@
|
|
|
164
177
|
"tizen"
|
|
165
178
|
],
|
|
166
179
|
"check_for_literals": true,
|
|
167
|
-
"max_password_value_length":
|
|
180
|
+
"max_password_value_length": 64,
|
|
168
181
|
"max_url_cred_value_length": 80,
|
|
169
182
|
"line_data_output": [
|
|
170
183
|
"line",
|
credsweeper/utils/util.py
CHANGED
|
@@ -61,11 +61,11 @@ class Util:
|
|
|
61
61
|
def get_shannon_entropy(data: Union[str, bytes]) -> float:
|
|
62
62
|
"""Borrowed from http://blog.dkbza.org/2007/05/scanning-data-for-entropy-anomalies.html."""
|
|
63
63
|
if not data:
|
|
64
|
-
return 0.
|
|
64
|
+
return 0.0
|
|
65
65
|
size = len(data)
|
|
66
66
|
_uniq, counts = np.unique(list(data), return_counts=True)
|
|
67
67
|
probabilities = counts / size
|
|
68
|
-
entropy = float(
|
|
68
|
+
entropy = -float(np.sum(probabilities * np.log2(probabilities)))
|
|
69
69
|
return entropy
|
|
70
70
|
|
|
71
71
|
# Precalculated data for speedup
|
|
@@ -141,15 +141,6 @@ class Util:
|
|
|
141
141
|
min_entropy = Util.get_min_data_entropy(data_len)
|
|
142
142
|
return entropy < min_entropy
|
|
143
143
|
|
|
144
|
-
@staticmethod
|
|
145
|
-
def is_known(data: Union[bytes, bytearray]) -> bool:
|
|
146
|
-
"""Returns True if any known binary format is found to prevent extra scan a file without an extension."""
|
|
147
|
-
if isinstance(data, (bytes, bytearray)) and data.startswith(b"\x7f\x45\x4c\x46") and 127 <= len(data):
|
|
148
|
-
# https://en.wikipedia.org/wiki/Executable_and_Linkable_Format
|
|
149
|
-
# minimal ELF is 127 bytes https://github.com/tchajed/minimal-elf
|
|
150
|
-
return True
|
|
151
|
-
return False
|
|
152
|
-
|
|
153
144
|
@staticmethod
|
|
154
145
|
def is_binary(data: Union[bytes, bytearray]) -> bool:
|
|
155
146
|
"""
|
|
@@ -218,13 +209,12 @@ class Util:
|
|
|
218
209
|
try:
|
|
219
210
|
if binary_suggest and LATIN_1 == encoding and (Util.is_binary(content) or not Util.is_latin1(content)):
|
|
220
211
|
# LATIN_1 may convert data (bytes in range 0x80:0xFF are transformed)
|
|
221
|
-
# so skip this encoding when checking binaries
|
|
222
|
-
logger.warning("Binary file detected %s", repr(content[:8]))
|
|
223
212
|
break
|
|
224
|
-
|
|
225
|
-
if content !=
|
|
213
|
+
_text = content.decode(encoding=encoding, errors="strict")
|
|
214
|
+
if content != _text.encode(encoding=encoding, errors="strict"):
|
|
226
215
|
# the check helps to detect a real encoding
|
|
227
216
|
raise UnicodeError
|
|
217
|
+
text = _text
|
|
228
218
|
break
|
|
229
219
|
except UnicodeError:
|
|
230
220
|
binary_suggest = True
|
|
@@ -233,6 +223,11 @@ class Util:
|
|
|
233
223
|
logger.error(f"Unexpected Error: Can't read content as {encoding}. Error message: {exc}")
|
|
234
224
|
return text
|
|
235
225
|
|
|
226
|
+
@staticmethod
|
|
227
|
+
def split_text(text: str) -> List[str]:
|
|
228
|
+
"""Splits a text into lines, handling all common line endings (e.g., LF, CRLF, CR)."""
|
|
229
|
+
return text.replace("\r\n", '\n').replace('\r', '\n').split('\n')
|
|
230
|
+
|
|
236
231
|
@staticmethod
|
|
237
232
|
def decode_bytes(content: bytes, encodings: Optional[List[str]] = None) -> List[str]:
|
|
238
233
|
"""Decode content using different encodings.
|
|
@@ -251,7 +246,7 @@ class Util:
|
|
|
251
246
|
|
|
252
247
|
"""
|
|
253
248
|
if text := Util.decode_text(content, encodings):
|
|
254
|
-
lines =
|
|
249
|
+
lines = Util.split_text(text)
|
|
255
250
|
else:
|
|
256
251
|
lines = []
|
|
257
252
|
return lines
|
|
@@ -355,13 +350,20 @@ class Util:
|
|
|
355
350
|
return True
|
|
356
351
|
return False
|
|
357
352
|
|
|
358
|
-
@
|
|
359
|
-
def is_sqlite3(
|
|
353
|
+
@staticmethod
|
|
354
|
+
def is_sqlite3(data: Union[bytes, bytearray]):
|
|
360
355
|
"""According https://en.wikipedia.org/wiki/List_of_file_signatures - SQLite Database"""
|
|
361
356
|
if isinstance(data, (bytes, bytearray)) and data.startswith(b"SQLite format 3\0"):
|
|
362
357
|
return True
|
|
363
358
|
return False
|
|
364
359
|
|
|
360
|
+
@staticmethod
|
|
361
|
+
def is_rtf(data: Union[bytes, bytearray]):
|
|
362
|
+
"""According https://en.wikipedia.org/wiki/List_of_file_signatures - Rich Text Format"""
|
|
363
|
+
if isinstance(data, (bytes, bytearray)) and data.startswith(b"{\\rtf1") and data.endswith(b"}"):
|
|
364
|
+
return True
|
|
365
|
+
return False
|
|
366
|
+
|
|
365
367
|
@staticmethod
|
|
366
368
|
def is_asn1(data: Union[bytes, bytearray]) -> int:
|
|
367
369
|
"""Only sequence type 0x30 and size correctness are checked
|
|
@@ -575,6 +577,7 @@ class Util:
|
|
|
575
577
|
"""decode text to bytes with / without padding detect and urlsafe symbols"""
|
|
576
578
|
value = text.translate(Util.WHITESPACE_TRANS_TABLE)
|
|
577
579
|
if padding_safe:
|
|
580
|
+
value = value.rstrip('=') # python 3.10 workaround
|
|
578
581
|
pad_num = 0x3 & len(value)
|
|
579
582
|
if pad_num:
|
|
580
583
|
value += '=' * (4 - pad_num)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: credsweeper
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.13.3
|
|
4
4
|
Summary: Credential Sweeper
|
|
5
5
|
Project-URL: Homepage, https://github.com/Samsung/CredSweeper
|
|
6
6
|
Project-URL: Bug Tracker, https://github.com/Samsung/CredSweeper/issues
|
|
@@ -10,13 +10,12 @@ Classifier: License :: OSI Approved :: MIT License
|
|
|
10
10
|
Classifier: Operating System :: OS Independent
|
|
11
11
|
Classifier: Programming Language :: Python :: 3
|
|
12
12
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
14
13
|
Classifier: Programming Language :: Python :: 3.10
|
|
15
14
|
Classifier: Programming Language :: Python :: 3.11
|
|
16
15
|
Classifier: Programming Language :: Python :: 3.12
|
|
17
16
|
Classifier: Topic :: Security
|
|
18
17
|
Classifier: Topic :: Software Development :: Quality Assurance
|
|
19
|
-
Requires-Python: >=3.
|
|
18
|
+
Requires-Python: >=3.10
|
|
20
19
|
Requires-Dist: base58
|
|
21
20
|
Requires-Dist: beautifulsoup4>=4.11.0
|
|
22
21
|
Requires-Dist: colorama
|
|
@@ -24,10 +23,10 @@ Requires-Dist: cryptography
|
|
|
24
23
|
Requires-Dist: gitpython
|
|
25
24
|
Requires-Dist: humanfriendly
|
|
26
25
|
Requires-Dist: lxml
|
|
27
|
-
Requires-Dist: numpy
|
|
26
|
+
Requires-Dist: numpy
|
|
28
27
|
Requires-Dist: odfpy
|
|
29
|
-
Requires-Dist: onnxruntime; platform_system != 'Windows'
|
|
30
|
-
Requires-Dist: onnxruntime==1.19.2; platform_system == 'Windows'
|
|
28
|
+
Requires-Dist: onnxruntime; platform_system != 'Windows' or python_version != '3.12'
|
|
29
|
+
Requires-Dist: onnxruntime==1.19.2; platform_system == 'Windows' and python_version == '3.12'
|
|
31
30
|
Requires-Dist: openpyxl
|
|
32
31
|
Requires-Dist: pandas
|
|
33
32
|
Requires-Dist: pdfminer-six
|
|
@@ -38,6 +37,7 @@ Requires-Dist: python-docx
|
|
|
38
37
|
Requires-Dist: python-pptx
|
|
39
38
|
Requires-Dist: pyyaml
|
|
40
39
|
Requires-Dist: rpmfile
|
|
40
|
+
Requires-Dist: striprtf
|
|
41
41
|
Requires-Dist: whatthepatch
|
|
42
42
|
Requires-Dist: xlrd
|
|
43
43
|
Description-Content-Type: text/markdown
|
|
@@ -90,7 +90,7 @@ Full documentation can be found here: <https://credsweeper.readthedocs.io/>
|
|
|
90
90
|
|
|
91
91
|
### Main Requirements
|
|
92
92
|
|
|
93
|
-
- Python 3.
|
|
93
|
+
- Python 3.10, 3.11, 3.12
|
|
94
94
|
|
|
95
95
|
### Installation
|
|
96
96
|
|
|
@@ -1,44 +1,47 @@
|
|
|
1
|
-
credsweeper/__init__.py,sha256=
|
|
2
|
-
credsweeper/__main__.py,sha256=
|
|
3
|
-
credsweeper/app.py,sha256=
|
|
1
|
+
credsweeper/__init__.py,sha256=GZRsqgsgQGxv0Yc0H3LeHGIA5KUmQVMQ-TH8KsH8nfc,992
|
|
2
|
+
credsweeper/__main__.py,sha256=cxbrvejofMAhaiOi9fO0qEKVME_HLGTeZAVmcppFsW8,22591
|
|
3
|
+
credsweeper/app.py,sha256=U6V-LQ7OiqNjtP45ih-0HwJqTz5dpgkrG3sRCoWU21A,21001
|
|
4
4
|
credsweeper/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
5
|
credsweeper/common/__init__.py,sha256=mYiHEDV0hSeWcFx0Wb8oIRDCPR92ben0mCuC9-gCTgI,184
|
|
6
6
|
credsweeper/common/constants.py,sha256=ZCE5VCpCMx1qmhVEfh2VYmjofQfaYzVip-ej0qJEPT8,5475
|
|
7
7
|
credsweeper/common/keyword_checklist.py,sha256=6EKNdMMryZykedAOhEc-MF1byi5oXmAiljq61T_nco4,2258
|
|
8
8
|
credsweeper/common/keyword_checklist.txt,sha256=a8GW-wF6D83uVFYxMWEsUFlth6c1B_KDpF8_Xpj0mE8,7169
|
|
9
|
-
credsweeper/common/keyword_pattern.py,sha256=
|
|
10
|
-
credsweeper/common/morpheme_checklist.txt,sha256=
|
|
9
|
+
credsweeper/common/keyword_pattern.py,sha256=BuqYm4zYc27MJcxMMPNfqqjbqP2kS8fOaIaCkbuw-fk,3481
|
|
10
|
+
credsweeper/common/morpheme_checklist.txt,sha256=ynzT3GaFzxGM_p1cHzYxHug4Zqbzshm0Zcd-h_KcXoI,9000
|
|
11
11
|
credsweeper/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
12
|
-
credsweeper/config/config.py,sha256=
|
|
12
|
+
credsweeper/config/config.py,sha256=iFrUxGvUoFPJT-FsbtQwKYRWMfxn6gJxS1h4GWtnFRM,2694
|
|
13
13
|
credsweeper/credentials/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
14
|
credsweeper/credentials/augment_candidates.py,sha256=Rnujq3EmTKhfnGhiuwQ3sCJD5VY4CPuLKCjTujC5TfU,812
|
|
15
15
|
credsweeper/credentials/candidate.py,sha256=VeOnxdkdb2bN5G9y0jqBJuATiqEB0QoYwsyrc3d9G9Y,5515
|
|
16
16
|
credsweeper/credentials/candidate_group_generator.py,sha256=rN_c4-ogPz0h-z2aPgzbu0hUz68L69xfd9oyzkooTUc,1243
|
|
17
17
|
credsweeper/credentials/candidate_key.py,sha256=NsYGPqqjfm6z2MGtcQbiUGiWmKUCuzflXlZYf_vn_84,917
|
|
18
18
|
credsweeper/credentials/credential_manager.py,sha256=Au5oCtz0HY33e83P5EN5v6LQMLYIbtZGvaClOc-uKZ0,4197
|
|
19
|
-
credsweeper/credentials/line_data.py,sha256=
|
|
19
|
+
credsweeper/credentials/line_data.py,sha256=3Y9cuUGt9equShHlFGfumZG_S5_EHDFplBESYD2IFqs,22525
|
|
20
20
|
credsweeper/deep_scanner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
21
|
-
credsweeper/deep_scanner/abstract_scanner.py,sha256=
|
|
21
|
+
credsweeper/deep_scanner/abstract_scanner.py,sha256=AVeTfIa602bgvL5ao4ck1ucgSLJh4rK-TI9birvjpTM,15863
|
|
22
22
|
credsweeper/deep_scanner/byte_scanner.py,sha256=U1XTqFmfJ71GQs16n1KZ-Grw2pJ3_K7ozHWDzI_vCbo,1135
|
|
23
23
|
credsweeper/deep_scanner/bzip2_scanner.py,sha256=-Ops6s3MqurtPdrl56qgqYCHLMyWeP-TZ477FcpKMaA,1634
|
|
24
|
+
credsweeper/deep_scanner/csv_scanner.py,sha256=iI8DalkVsx_Fl-zXd5bSGS_Q2aOqu7gvoQxnR4qeTbA,3187
|
|
24
25
|
credsweeper/deep_scanner/deb_scanner.py,sha256=cu2jCMUdctn3ezoOo7kHAC-85NCaY9m_b_rI3aNMmuQ,2495
|
|
25
|
-
credsweeper/deep_scanner/deep_scanner.py,sha256=
|
|
26
|
+
credsweeper/deep_scanner/deep_scanner.py,sha256=NI5E3GhogLGnNOWYejchdpdK_yyB9HvlK0IE9nvkHZ0,6686
|
|
26
27
|
credsweeper/deep_scanner/docx_scanner.py,sha256=yL4IvSbiU9AkGHXUHYNV9rOlzfgPJ-dtMn7VxDg6pkw,4163
|
|
27
28
|
credsweeper/deep_scanner/eml_scanner.py,sha256=zZSFRSX-5h5iMwofGNRYRjRxr_RdwnQyjP1D6ULz2P8,3522
|
|
28
29
|
credsweeper/deep_scanner/encoder_scanner.py,sha256=3bip1bV7dW9BKeG7aIwWWyoi3whVuXxose5eLk3oYlA,1325
|
|
29
30
|
credsweeper/deep_scanner/gzip_scanner.py,sha256=6aRW_kKtDKUhnbiGDZyk1ktfTd7PABFjsouudCO_uWU,1710
|
|
30
31
|
credsweeper/deep_scanner/html_scanner.py,sha256=zORcAOEaBSiumLm83tl1k7sibc5u5sq3YasKcgr-LY0,1496
|
|
31
32
|
credsweeper/deep_scanner/jclass_scanner.py,sha256=F9D5i-Jr__sC7YXaETPbSCFhiscTbPNEBYwVbChzngo,2981
|
|
32
|
-
credsweeper/deep_scanner/jks_scanner.py,sha256
|
|
33
|
+
credsweeper/deep_scanner/jks_scanner.py,sha256=iG5X4bFSM1JDAcFbqwbDjM5rlGwY39ovnWMvM8PzwCY,2281
|
|
33
34
|
credsweeper/deep_scanner/lang_scanner.py,sha256=eXBOOevLIexoVtiSJX1oRxof2agmzYdljIU1y_gE1N8,1350
|
|
34
35
|
credsweeper/deep_scanner/lzma_scanner.py,sha256=BMRMyWxvzOGgz2Lax1I_GxJVx60K6pQUcDD2rHCW4Yg,1708
|
|
35
36
|
credsweeper/deep_scanner/mxfile_scanner.py,sha256=El1jxK2_ryorTw4i2tAS_m4pucfkW-d5YLA6QYMGeP0,2108
|
|
36
37
|
credsweeper/deep_scanner/patch_scanner.py,sha256=f371z_6-fxl5AESWB3BGU7_mozfHwTF3NdsaHFB8MME,2255
|
|
37
38
|
credsweeper/deep_scanner/pdf_scanner.py,sha256=1UBvLq96SIPr3PCgzuDg8H6Wj9_DsiWT5hx2MGvLd20,3058
|
|
38
|
-
credsweeper/deep_scanner/pkcs_scanner.py,sha256=
|
|
39
|
+
credsweeper/deep_scanner/pkcs_scanner.py,sha256=_KDQbtmc-RsMFxBEFbzGKvMoQTij3sLp3aiLPRAH6yo,1996
|
|
39
40
|
credsweeper/deep_scanner/pptx_scanner.py,sha256=sxVz2R0Z1D_XF_uhl65dnI2gidYR-J6Ok53WiH0pQh0,1838
|
|
40
41
|
credsweeper/deep_scanner/rpm_scanner.py,sha256=dR7qFnoXdKeHKK21cFP5OFXYZvjdeKchkolUrLRfnUM,2293
|
|
42
|
+
credsweeper/deep_scanner/rtf_scanner.py,sha256=ZcPk6ZsqCI69wkTaJxDbHk9qz4RVau1gR5NYOvsjr7s,1617
|
|
41
43
|
credsweeper/deep_scanner/sqlite3_scanner.py,sha256=9XaFTtSZoiaKKPIrDpxDsFIh8m3wILR3c2927dWgXCQ,3510
|
|
44
|
+
credsweeper/deep_scanner/strings_scanner.py,sha256=qgPrBZo87vGhNT8pyuhzlX93bI3lCnAJJWHeOkg_60A,2236
|
|
42
45
|
credsweeper/deep_scanner/tar_scanner.py,sha256=6VAw-xSvYQqmP_OmLuETelRQFUK_UzmJfSXC49dzYzI,2440
|
|
43
46
|
credsweeper/deep_scanner/tmx_scanner.py,sha256=Nlmx_zH_J1AAPEbXoxz_NjPkg9uVN4TtS8Z1pRqZOag,1961
|
|
44
47
|
credsweeper/deep_scanner/xlsx_scanner.py,sha256=BlbylVMAC1-OEERuB_A54BjETmmQsVNWOSXojxeTKYA,2721
|
|
@@ -47,18 +50,18 @@ credsweeper/deep_scanner/zip_scanner.py,sha256=bElKtNwpecOmBfJBsi-2y9SjcrpFFe-ix
|
|
|
47
50
|
credsweeper/file_handler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
48
51
|
credsweeper/file_handler/abstract_provider.py,sha256=2qtZHOLSf3HnEkHjugLo-OpY2bPeMJU0_CU9bX6Show,1324
|
|
49
52
|
credsweeper/file_handler/analysis_target.py,sha256=FEznSNcUbTaqGa3ZKy8FusdqDR7CxFX1fwIrA_LdwoY,2752
|
|
50
|
-
credsweeper/file_handler/byte_content_provider.py,sha256=
|
|
53
|
+
credsweeper/file_handler/byte_content_provider.py,sha256=NP-SDn6tp2x9M7ro0Yx4GwoUJV29ZBJZTEjl4CFINHc,2305
|
|
51
54
|
credsweeper/file_handler/content_provider.py,sha256=eUTgzbZaml6AFXlTJysVw4_nHVVFXYCoDSCtGiB0zBI,3893
|
|
52
55
|
credsweeper/file_handler/data_content_provider.py,sha256=p2hvZabS4pH6_y9eLn2M4VJTH-9dn8S9QeglxuFJJeQ,17667
|
|
53
56
|
credsweeper/file_handler/descriptor.py,sha256=LQHjzmRL0fl8mlKwA--Nl_D4mKFtg9VsUJnWZqtjFhU,185
|
|
54
57
|
credsweeper/file_handler/diff_content_provider.py,sha256=zziVB38BbXTmKuDAesjzw-pCWEZLUMUprIRl1G9mXpg,7782
|
|
55
|
-
credsweeper/file_handler/file_path_extractor.py,sha256=
|
|
58
|
+
credsweeper/file_handler/file_path_extractor.py,sha256=_nc0DnwQDU886NVBp4YgJOEo21HT6TvAy0kyPIRtB-o,6954
|
|
56
59
|
credsweeper/file_handler/files_provider.py,sha256=3dCsrrkhrjYAJ75-FRWn5H4-55Nnk_S0YkXS66G3tYk,2538
|
|
57
60
|
credsweeper/file_handler/patches_provider.py,sha256=fzC0tUAzev5PzZJ8NcIL1HfeGPcLvWZNlf4noeGLhlo,3016
|
|
58
61
|
credsweeper/file_handler/string_content_provider.py,sha256=e7mHLwa5bkHthI3hr5pP7ZlyoFfPeeVbmTAlZG2-xB4,2481
|
|
59
62
|
credsweeper/file_handler/struct_content_provider.py,sha256=H1ZhSosaWJEOtzWYC1rve0glrJUu2UDYjmOx-9DDNxs,1595
|
|
60
|
-
credsweeper/file_handler/text_content_provider.py,sha256
|
|
61
|
-
credsweeper/filters/__init__.py,sha256=
|
|
63
|
+
credsweeper/file_handler/text_content_provider.py,sha256=-ChrXvo6Cq2eWcHR_EpZ5FUdfGZk-MUDImhDjxuNPf8,3325
|
|
64
|
+
credsweeper/filters/__init__.py,sha256=ysfbPt7iWEgpSDquxJpPi6d-RXOKDBz4C2zxmD9DwhM,3318
|
|
62
65
|
credsweeper/filters/filter.py,sha256=Z6z8mQ3uACWPUnNZWBju41ch__ojN7glxbh6s70zWLQ,927
|
|
63
66
|
credsweeper/filters/line_git_binary_check.py,sha256=UV9BlPIpcz8019wvRSq-wz3TvU4D7T8n1esM8zIix2s,1657
|
|
64
67
|
credsweeper/filters/line_specific_key_check.py,sha256=lRt35rYBnzeqyW_Gylu6ewf_x6Nw3fMSMzxe-3G4dVI,1603
|
|
@@ -74,16 +77,15 @@ credsweeper/filters/value_base64_key_check.py,sha256=NzT0hwdg8c732Q4nx1O4Y14yLrQ
|
|
|
74
77
|
credsweeper/filters/value_base64_part_check.py,sha256=ux250qeSjqqsbkgiok29cu0fSLbjGD2jMllXSErTtMg,5025
|
|
75
78
|
credsweeper/filters/value_basic_auth_check.py,sha256=yrH-nXTAW2ol0J_S7UxN2dYZPQSthtigm60vq4Flfow,1395
|
|
76
79
|
credsweeper/filters/value_blocklist_check.py,sha256=QeRHpjQQNLDYmQYfpETXbkAMBTeqtW-BZ6iBOcb8gms,1208
|
|
77
|
-
credsweeper/filters/value_camel_case_check.py,sha256=
|
|
78
|
-
credsweeper/filters/value_couple_keyword_check.py,sha256=hZ_uAqUpIdGV6yadYIoDHJaBHaTcM3r7LF79ryujDvo,1067
|
|
80
|
+
credsweeper/filters/value_camel_case_check.py,sha256=0CzDzFa9ZGdPAejAajATS_vSaClIdGjC5rrvS4RbtSM,1296
|
|
79
81
|
credsweeper/filters/value_dictionary_keyword_check.py,sha256=aKUe1gWk80h_3Euo_5wog3MLJb20yrf3CmKyVDHjrt8,1326
|
|
80
82
|
credsweeper/filters/value_discord_bot_check.py,sha256=bjBdMCNfg2AH1kyBTBIp_FEr-dDfbui6CO0czVTM-os,1547
|
|
81
83
|
credsweeper/filters/value_entropy_base32_check.py,sha256=PKFp6eOXZ8yiK00JNxWPbxw4LnAeE16u39ePNozTGEg,642
|
|
82
84
|
credsweeper/filters/value_entropy_base36_check.py,sha256=ZHa_AUtskBCmfhUQwjgkolB1OuB2t1GRDi8SDl7o_A8,651
|
|
83
85
|
credsweeper/filters/value_entropy_base64_check.py,sha256=Kp6AU1rOqEnO4MJ7xoQhMSbvoJKMBBcEQvZz_JsX_kY,812
|
|
84
86
|
credsweeper/filters/value_entropy_base_check.py,sha256=6mBfw5RAXutHemMARe0eJl_7I0G24rzl4ggzYOIPQGk,1308
|
|
85
|
-
credsweeper/filters/value_file_path_check.py,sha256=
|
|
86
|
-
credsweeper/filters/value_github_check.py,sha256=
|
|
87
|
+
credsweeper/filters/value_file_path_check.py,sha256=SO1WR1dLKsJpkC8dWab16JTAPRR652Zps8wBo5rB2CU,3787
|
|
88
|
+
credsweeper/filters/value_github_check.py,sha256=QA5cymmhlwx8DaK8zTdS3By7-ay32R2BhAIz7LIOM0Q,1630
|
|
87
89
|
credsweeper/filters/value_grafana_check.py,sha256=4WO6nE4Mg38Yp8EICIO0YxLnLXjg7Pd0vvZRRmbyPG0,1573
|
|
88
90
|
credsweeper/filters/value_grafana_service_check.py,sha256=zufVC7k0upjTww842vMK297HMTuK1RZu8mYybBRmWDQ,1195
|
|
89
91
|
credsweeper/filters/value_hex_number_check.py,sha256=bEknr5uHGFMLUhZdPMU4Trmxnl8iJbXfVUPbIIm1D3I,1038
|
|
@@ -93,13 +95,14 @@ credsweeper/filters/value_json_web_token_check.py,sha256=XXPqdWomf4LXVr2ihxygxMG
|
|
|
93
95
|
credsweeper/filters/value_last_word_check.py,sha256=EX9DiZrZt0Kd_3PNAcj5uKhuKrJs-84GVhX51WBXvgE,963
|
|
94
96
|
credsweeper/filters/value_length_check.py,sha256=HBGGXZLZpLpH6V9J7Uz8qXa1o-DsSU6QahZhBDa3Y0Y,1174
|
|
95
97
|
credsweeper/filters/value_method_check.py,sha256=ekpvFWGk71hpsRYWmte0ob8_lpfYvmgr0Otqy5X2h68,1175
|
|
98
|
+
credsweeper/filters/value_morphemes_check.py,sha256=u0dpYxhiH1s-jag0YykXIORr09b90XatbWDEIIu3Z_c,1958
|
|
96
99
|
credsweeper/filters/value_not_allowed_pattern_check.py,sha256=0zVvEGp8CJA5_pEeKm551cT19nmt_fE09asoTZfmxgk,1245
|
|
97
100
|
credsweeper/filters/value_not_part_encoded_check.py,sha256=Myhm9o5HxmkEsKw8z8ssJy4__FNqGvmMQNAR6OAoHN8,3839
|
|
98
101
|
credsweeper/filters/value_number_check.py,sha256=_syVNMVQlRQN8fM2n2LOdWTbruicd2jW419gI0eJO78,1192
|
|
99
102
|
credsweeper/filters/value_pattern_check.py,sha256=6yovpT3a9_x5W0MU1_7Bbcbj5CgoySy61dKQWhOb9ns,6916
|
|
100
103
|
credsweeper/filters/value_similarity_check.py,sha256=uFaQkYy0MvJIOQLqeqOjVQkQzf3PHP8pxI6uSANmwGo,1235
|
|
101
104
|
credsweeper/filters/value_split_keyword_check.py,sha256=yLMbGy9pvNbV_Siw_vl2RB8p1UGQAMiExd_kC-wc_rY,1175
|
|
102
|
-
credsweeper/filters/value_string_type_check.py,sha256=
|
|
105
|
+
credsweeper/filters/value_string_type_check.py,sha256=Ua85BMqT9IqbWaJuk9mfuCkHDM8maV0Ny25ePU5w-28,2198
|
|
103
106
|
credsweeper/filters/value_token_base32_check.py,sha256=nI6Xz3Vu-ps6Uq4svRjNAvz4TzC1n1Vhjhd1DGpusws,1875
|
|
104
107
|
credsweeper/filters/value_token_base36_check.py,sha256=qYVVSZByF1ZoLfAuxbHrSlYtcekuHYzGhi4FFW9A8zI,1885
|
|
105
108
|
credsweeper/filters/value_token_base64_check.py,sha256=Gy8_X9SscffIjp6VOA1RttdFQVEv28uaeqPt8xYefPQ,1891
|
|
@@ -110,52 +113,52 @@ credsweeper/filters/group/general_keyword.py,sha256=NetpCdWS44fixqZVHaiPW-UB7pRs
|
|
|
110
113
|
credsweeper/filters/group/general_pattern.py,sha256=WoIqyMU8tjEVPLfZaJYsM0_XMlb0dQVJYU90ogpAhlo,303
|
|
111
114
|
credsweeper/filters/group/group.py,sha256=tj5OSndxhlcCZREdEeaE3j6NWY0tazkW1k9piBCdF9M,2661
|
|
112
115
|
credsweeper/filters/group/password_keyword.py,sha256=Mv1Op3SaXRcqMRsxoBdSuyt03OR0sOciHShgxTjF3pY,714
|
|
113
|
-
credsweeper/filters/group/token_pattern.py,sha256=
|
|
116
|
+
credsweeper/filters/group/token_pattern.py,sha256=mgcYkb3-GBadtWzRmeAPFDCzSKKFV20qm75ovzcsWNI,580
|
|
114
117
|
credsweeper/filters/group/url_credentials_group.py,sha256=z2A-HFLiGF0lPEku7ER22FzmxwnJCqwIv4sBkX87qAE,1444
|
|
115
|
-
credsweeper/filters/group/weird_base36_token.py,sha256=
|
|
116
|
-
credsweeper/filters/group/weird_base64_token.py,sha256=
|
|
118
|
+
credsweeper/filters/group/weird_base36_token.py,sha256=pB0_Cqmdm0GlTDRXVCh29XU-DvVz3Wj7hfPlhbRf_S4,672
|
|
119
|
+
credsweeper/filters/group/weird_base64_token.py,sha256=Un6cW132Go4UFcPBGdc9j9xQjeUksXzJbhLGscKiNwI,860
|
|
117
120
|
credsweeper/logger/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
118
121
|
credsweeper/logger/logger.py,sha256=el-wbkQUOcpaOa8w-sd5p0hgJ486ncDh9T7sArowAAw,1833
|
|
119
122
|
credsweeper/ml_model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
120
|
-
credsweeper/ml_model/ml_config.json,sha256=
|
|
121
|
-
credsweeper/ml_model/ml_model.onnx,sha256=
|
|
122
|
-
credsweeper/ml_model/ml_validator.py,sha256=
|
|
123
|
+
credsweeper/ml_model/ml_config.json,sha256=JVDx1kS0brPv4aE-cmFRq2sUWr4Q4VB-Ljnm5mhXyis,19401
|
|
124
|
+
credsweeper/ml_model/ml_model.onnx,sha256=RCwHwrJRTwX-BhrBiZkHTgOr-2V9F4RjKumu-DXIXw4,12856578
|
|
125
|
+
credsweeper/ml_model/ml_validator.py,sha256=h52zH4VTQDNH2FIwxtCs2fcBDPfJogIn-59qTX-KIHc,12946
|
|
123
126
|
credsweeper/ml_model/features/__init__.py,sha256=veCL3g1lG65YFOi_mBwM5C1D543yWCGgjAl0s-EE0TQ,1089
|
|
124
127
|
credsweeper/ml_model/features/entropy_evaluation.py,sha256=nFUBtNn_d-iUt25lLxCdf0cCMJmlMJnIWQd0soO3KRk,2615
|
|
125
|
-
credsweeper/ml_model/features/feature.py,sha256=
|
|
126
|
-
credsweeper/ml_model/features/file_extension.py,sha256=
|
|
127
|
-
credsweeper/ml_model/features/has_html_tag.py,sha256=
|
|
128
|
-
credsweeper/ml_model/features/is_secret_numeric.py,sha256=
|
|
128
|
+
credsweeper/ml_model/features/feature.py,sha256=XKRyex8qmagcAUGXGebs2Deh2ZmJF0hio0Fts0HBoX4,667
|
|
129
|
+
credsweeper/ml_model/features/file_extension.py,sha256=X0r2eBixbgKlX1hhcq_S0qBf3wNsG_IRhUVm41hdDfQ,699
|
|
130
|
+
credsweeper/ml_model/features/has_html_tag.py,sha256=J7V59_nH7kVu31Lwn6i0Gnsp2feHe_fh7KhQMW1XpIw,1162
|
|
131
|
+
credsweeper/ml_model/features/is_secret_numeric.py,sha256=P3Br-VDrt9oChZzVmeHlATCoR_ewRQpmJPt2gGouPV0,432
|
|
129
132
|
credsweeper/ml_model/features/length_of_attribute.py,sha256=2t5Xf8PVUgJi0_uwR7UqQjjRF_U_cy-vP1cqGVlmeKY,1202
|
|
130
133
|
credsweeper/ml_model/features/morpheme_dense.py,sha256=_06StZjTnFPs-4ARSWIAXNz5f-RzjFsZ_Qgyo7dXK0Y,1102
|
|
131
|
-
credsweeper/ml_model/features/rule_name.py,sha256=
|
|
134
|
+
credsweeper/ml_model/features/rule_name.py,sha256=41-41BQZVtRsWL5mEzH5Dq1v84UXj9aRt3jmgzjmeSE,679
|
|
132
135
|
credsweeper/ml_model/features/rule_severity.py,sha256=KlkLm744BpbDed6JpLDGgQ7-F2_x_JYOtxTBxtFfbAY,775
|
|
133
136
|
credsweeper/ml_model/features/search_in_attribute.py,sha256=tuKpfERaS2tT2-EcXb03P1DJUcvz9OTAMr_0c-rWxvE,702
|
|
134
|
-
credsweeper/ml_model/features/word_in.py,sha256=
|
|
135
|
-
credsweeper/ml_model/features/word_in_path.py,sha256
|
|
136
|
-
credsweeper/ml_model/features/word_in_postamble.py,sha256=
|
|
137
|
-
credsweeper/ml_model/features/word_in_preamble.py,sha256=
|
|
138
|
-
credsweeper/ml_model/features/word_in_transition.py,sha256=
|
|
139
|
-
credsweeper/ml_model/features/word_in_value.py,sha256=
|
|
140
|
-
credsweeper/ml_model/features/word_in_variable.py,sha256=
|
|
137
|
+
credsweeper/ml_model/features/word_in.py,sha256=yxJU1JdWqoWPzwQxJdpjtoj3S0vDJ2NoUrKc96-VcvA,1254
|
|
138
|
+
credsweeper/ml_model/features/word_in_path.py,sha256=-6vCtRliLGAgbEi4HT4xRZUXMUzQhF5_F2ymvrKakr8,1080
|
|
139
|
+
credsweeper/ml_model/features/word_in_postamble.py,sha256=1mIEmhMtcCt1LCeGL04JTrc6HLa6rYN1i2y-uooW1Cg,865
|
|
140
|
+
credsweeper/ml_model/features/word_in_preamble.py,sha256=xhjCppEqWQjI8hGYG5W605lBaLRm8xPhWCGMedb2Mbc,1213
|
|
141
|
+
credsweeper/ml_model/features/word_in_transition.py,sha256=kUTSLcMDVqYX_hsCl_JyVpdm3e5otfsf8Ypf2At2MdE,817
|
|
142
|
+
credsweeper/ml_model/features/word_in_value.py,sha256=rC8orl9tMHgPBAS9kMJiHOFdQQ6mDwQY6Siq9sIE54E,522
|
|
143
|
+
credsweeper/ml_model/features/word_in_variable.py,sha256=kfr05_NdmlqnxMx6wxRt8qU32dlgKmODUrP60ucWWdY,497
|
|
141
144
|
credsweeper/rules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
142
|
-
credsweeper/rules/config.yaml,sha256=
|
|
145
|
+
credsweeper/rules/config.yaml,sha256=YVY67KsHerrCkXtDXev0Mf-0mqGWy9x3xWMQznTO21Q,40748
|
|
143
146
|
credsweeper/rules/rule.py,sha256=rn7qAwD2D6Z9ckinv0JTGIjsxXk4NIGRVTNAIhQZpm4,10260
|
|
144
147
|
credsweeper/scanner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
145
|
-
credsweeper/scanner/scanner.py,sha256=
|
|
148
|
+
credsweeper/scanner/scanner.py,sha256=CaAsv7E0Sant_W8aLLjoC7bjYmpQknHN3YD0r76R_8Y,10634
|
|
146
149
|
credsweeper/scanner/scan_type/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
147
150
|
credsweeper/scanner/scan_type/multi_pattern.py,sha256=4CfcNyTIVIOf0mE_v_KOhhWaziBdaeqQVQYLLGn-VRg,3848
|
|
148
151
|
credsweeper/scanner/scan_type/pem_key_pattern.py,sha256=xFv4v_KuXh_oUB_WIN4pRtKGAYZ0CLkGGHMGRpPFZ78,1533
|
|
149
152
|
credsweeper/scanner/scan_type/scan_type.py,sha256=9YFYEqL5Me2Sq_SHsELLajHbeCrzRlNzln8R5NuQaJY,9425
|
|
150
153
|
credsweeper/scanner/scan_type/single_pattern.py,sha256=eU7souNPml8KvsI15IATX9HEbBB1ou61BnaBLm9LrVs,986
|
|
151
|
-
credsweeper/secret/config.json,sha256=
|
|
154
|
+
credsweeper/secret/config.json,sha256=MBztENieYs7a3cLqLbQDg29W4CaqazXnCKNquhIE6oI,3766
|
|
152
155
|
credsweeper/secret/log.yaml,sha256=h29atN5Kvk68oKuTYG2Mi4f2uNO3dvwhOkzCRBKo1rg,952
|
|
153
156
|
credsweeper/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
154
157
|
credsweeper/utils/hop_stat.py,sha256=vMd_1lcpDo4yaFhi61X0tJeeE83qUbzPckvxZcrgsgs,3010
|
|
155
158
|
credsweeper/utils/pem_key_detector.py,sha256=5BwapI5Ub0DyK_X1v8rcTLe6U4uDjFjgWgitxBpHx9E,7588
|
|
156
|
-
credsweeper/utils/util.py,sha256=
|
|
157
|
-
credsweeper-1.
|
|
158
|
-
credsweeper-1.
|
|
159
|
-
credsweeper-1.
|
|
160
|
-
credsweeper-1.
|
|
161
|
-
credsweeper-1.
|
|
159
|
+
credsweeper/utils/util.py,sha256=EihI-BmLH6_qvjuIle32JQlz7L9lZPSFjs7NmRYZago,28117
|
|
160
|
+
credsweeper-1.13.3.dist-info/METADATA,sha256=NTq7f9lxSXTc2aU73oPoQYN6u24g6mvo0Do2arz2il0,10392
|
|
161
|
+
credsweeper-1.13.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
162
|
+
credsweeper-1.13.3.dist-info/entry_points.txt,sha256=SLGNZshvi3zpWPhVmRP-oDXRMRPBS4tzRDy6xYOXwqA,58
|
|
163
|
+
credsweeper-1.13.3.dist-info/licenses/LICENSE,sha256=aU7mGjBKbmRHNLVXXzcPdKmTtBxRwDPtjflQRfN7fFg,1065
|
|
164
|
+
credsweeper-1.13.3.dist-info/RECORD,,
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
from typing import Optional
|
|
2
|
-
|
|
3
|
-
from credsweeper.common import static_keyword_checklist
|
|
4
|
-
from credsweeper.config.config import Config
|
|
5
|
-
from credsweeper.credentials.line_data import LineData
|
|
6
|
-
from credsweeper.file_handler.analysis_target import AnalysisTarget
|
|
7
|
-
from credsweeper.filters.filter import Filter
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class ValueCoupleKeywordCheck(Filter):
|
|
11
|
-
"""Check value if TWO words from morphemes checklist exists in value"""
|
|
12
|
-
|
|
13
|
-
def __init__(self, config: Optional[Config] = None, threshold=1) -> None:
|
|
14
|
-
# threshold - minimum morphemes number in a value
|
|
15
|
-
self.threshold = threshold
|
|
16
|
-
|
|
17
|
-
def run(self, line_data: LineData, target: AnalysisTarget) -> bool:
|
|
18
|
-
"""Run filter checks on received credential candidate data 'line_data'.
|
|
19
|
-
|
|
20
|
-
Args:
|
|
21
|
-
line_data: credential candidate data
|
|
22
|
-
target: multiline target from which line data was obtained
|
|
23
|
-
|
|
24
|
-
Return:
|
|
25
|
-
True, if need to filter candidate and False if left
|
|
26
|
-
|
|
27
|
-
"""
|
|
28
|
-
return static_keyword_checklist.check_morphemes(line_data.value.lower(), self.threshold)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|