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.

Files changed (51) hide show
  1. credsweeper/__init__.py +1 -1
  2. credsweeper/__main__.py +23 -13
  3. credsweeper/app.py +7 -2
  4. credsweeper/common/keyword_pattern.py +6 -3
  5. credsweeper/common/morpheme_checklist.txt +26 -6
  6. credsweeper/config/config.py +1 -0
  7. credsweeper/credentials/line_data.py +21 -6
  8. credsweeper/deep_scanner/abstract_scanner.py +1 -0
  9. credsweeper/deep_scanner/csv_scanner.py +71 -0
  10. credsweeper/deep_scanner/deep_scanner.py +19 -9
  11. credsweeper/deep_scanner/jks_scanner.py +11 -2
  12. credsweeper/deep_scanner/pkcs_scanner.py +4 -0
  13. credsweeper/deep_scanner/rtf_scanner.py +41 -0
  14. credsweeper/deep_scanner/strings_scanner.py +52 -0
  15. credsweeper/file_handler/byte_content_provider.py +10 -1
  16. credsweeper/file_handler/file_path_extractor.py +2 -0
  17. credsweeper/file_handler/text_content_provider.py +7 -1
  18. credsweeper/filters/__init__.py +1 -1
  19. credsweeper/filters/group/token_pattern.py +2 -2
  20. credsweeper/filters/group/weird_base36_token.py +3 -3
  21. credsweeper/filters/group/weird_base64_token.py +2 -2
  22. credsweeper/filters/value_camel_case_check.py +2 -2
  23. credsweeper/filters/value_file_path_check.py +5 -3
  24. credsweeper/filters/value_github_check.py +3 -2
  25. credsweeper/filters/value_morphemes_check.py +43 -0
  26. credsweeper/filters/value_string_type_check.py +1 -0
  27. credsweeper/ml_model/features/feature.py +1 -18
  28. credsweeper/ml_model/features/file_extension.py +1 -1
  29. credsweeper/ml_model/features/has_html_tag.py +10 -8
  30. credsweeper/ml_model/features/is_secret_numeric.py +4 -3
  31. credsweeper/ml_model/features/rule_name.py +1 -1
  32. credsweeper/ml_model/features/word_in.py +9 -32
  33. credsweeper/ml_model/features/word_in_path.py +2 -3
  34. credsweeper/ml_model/features/word_in_postamble.py +1 -4
  35. credsweeper/ml_model/features/word_in_preamble.py +1 -4
  36. credsweeper/ml_model/features/word_in_transition.py +1 -4
  37. credsweeper/ml_model/features/word_in_value.py +2 -3
  38. credsweeper/ml_model/features/word_in_variable.py +2 -3
  39. credsweeper/ml_model/ml_config.json +15 -8
  40. credsweeper/ml_model/ml_model.onnx +0 -0
  41. credsweeper/ml_model/ml_validator.py +1 -1
  42. credsweeper/rules/config.yaml +174 -207
  43. credsweeper/scanner/scanner.py +12 -7
  44. credsweeper/secret/config.json +18 -5
  45. credsweeper/utils/util.py +21 -18
  46. {credsweeper-1.12.1.dist-info → credsweeper-1.13.3.dist-info}/METADATA +7 -7
  47. {credsweeper-1.12.1.dist-info → credsweeper-1.13.3.dist-info}/RECORD +50 -47
  48. credsweeper/filters/value_couple_keyword_check.py +0 -28
  49. {credsweeper-1.12.1.dist-info → credsweeper-1.13.3.dist-info}/WHEEL +0 -0
  50. {credsweeper-1.12.1.dist-info → credsweeper-1.13.3.dist-info}/entry_points.txt +0 -0
  51. {credsweeper-1.12.1.dist-info → credsweeper-1.13.3.dist-info}/licenses/LICENSE +0 -0
@@ -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, rule_path: Union[None, str, Path]) -> None:
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 rule_path is None:
72
- rule_path = APP_PATH / "rules" / "config.yaml"
73
- rule_templates = Util.yaml_load(rule_path)
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 '{rule_path}'")
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 "#define" in target_line_stripped
157
- or "%define" in target_line_stripped
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
@@ -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
- ".xlsx",
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": 31,
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(-np.sum(probabilities * np.log2(probabilities)))
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
- text = content.decode(encoding, errors="strict")
225
- if content != text.encode(encoding, errors="strict"):
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 = text.replace('\r\n', '\n').replace('\r', '\n').split('\n')
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
- @classmethod
359
- def is_sqlite3(cls, data):
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.12.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.9
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<2.0.0
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.9, 3.10, 3.11, 3.12
93
+ - Python 3.10, 3.11, 3.12
94
94
 
95
95
  ### Installation
96
96
 
@@ -1,44 +1,47 @@
1
- credsweeper/__init__.py,sha256=r7ftJ7P_js_nXMf0Z0h1tOHjMzmCX_qUlMRhVahUfaM,992
2
- credsweeper/__main__.py,sha256=koQXkosJ4wZ54MmOIUUsx8dHeAiEkv6ZHu3hGTUU7uA,21825
3
- credsweeper/app.py,sha256=hAGmbGJpDPmYf4xCUJ__oGyDGdZdWc_IGojad26Nc4o,20780
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=UIty0_CfWy5oMH-pcY6jDF-TaWJOaXC1zQGy3B3DD2c,3322
10
- credsweeper/common/morpheme_checklist.txt,sha256=81HzC_wRi-hOSnyec4Hw5kY9fjOg91WNrsQ7ksMoO20,8880
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=fv_XPLgA42Wa5WUwl4xGYpHYmXclkyL2JVmsaI56EpM,2639
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=hkVtppv7jM1E5yN7ikHktKVvaRbux8OLTYDGv6xcdo0,21669
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=Dnfb4JpkOP1eF4MTxcGAXZ4E4H8T-KpFybYVqhjyGrE,15819
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=TVJK9C4_wlpkHy4b5Xp2UFJLPyR6URbx9Z-iPn6Sv7k,6309
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=-CgZ5SSaVcAwm1rS3LUr3yQ2qIl505sv3T3z_FbdXSY,1877
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=AUjsldmwRz92Z98ZJWoXqbylu3oJLj79Himvfq13lyA,1749
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=WiKpmoq8cZ8JRvsjdIXYpH7JeW9F6U6srZzgSJYDk-Y,1935
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=EgVVeaf14UkbETuWHf4Do_0A2Rj2weFc7EFOKez5AgU,6901
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=JcNiRrWDYMgLUADehp1V4RvICx35jl3AeeJCbzpbRRg,3008
61
- credsweeper/filters/__init__.py,sha256=gBuGNWvKtYVdFnIZd8yVvKvIDb55JX9jhrQ1db1qqEY,3327
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=G9jPfMeVt9eH_DLlEGfnaLy3nb-o65Iipn56kZTumiM,1300
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=lqajrWbvVKZFVOrH6A-fC2I3ZuiGMI8AMwFOKkGHLbs,3638
86
- credsweeper/filters/value_github_check.py,sha256=GPYbUBCzaNfKWafpm_F_Hfq4QQwtFA_47l-zRq8u0m0,1503
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=If3oVEEBl5ChejCbnwar4BSSoYv55633dEsijIIPt40,2139
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=gszqhl0rL1c5TSPO2nbdbWPYwpqvserspL9GeuL7h9I,588
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=W0mZdNJ0YT8JdiUEPTwS1ljclqLc9wZNkoFcm4lTBJ8,668
116
- credsweeper/filters/group/weird_base64_token.py,sha256=ClhJqjlLf6XFlMCiixLTyuSE8XkK69rQg6ldjc4R2vY,857
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=P63kgpcNBcZpRkPb3oa-MZ3Iqa52Vg-G7oBTqyUhv1g,19051
121
- credsweeper/ml_model/ml_model.onnx,sha256=MWkFhV4UVNM3iho9Iu_GpRjACzjheaSK10qK1tEzdgs,12653703
122
- credsweeper/ml_model/ml_validator.py,sha256=mxmxil75wBWIgPGxNItWBXgm70YqggoAWxqaUOKcZVY,12945
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=hOprnj9BD8PFTmV_MjiPMLwbbPI0r7pYI4Qzbsmy1c4,1104
126
- credsweeper/ml_model/features/file_extension.py,sha256=IgxESm9RbKMhoqx0nEiMvq3aT-J5vwM_cGF_iwFCKUg,702
127
- credsweeper/ml_model/features/has_html_tag.py,sha256=SpobHmie49Mt9wbND_chjZDMB0UwS5C-IL8cC5eOx1Q,1131
128
- credsweeper/ml_model/features/is_secret_numeric.py,sha256=vU10cofvTCFWhHWKTu_1aODE2L4sCxkSoIWlLCXMqps,411
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=aRhCa5cU7yGykJSpL-n4qQGyxvNBZbat8WcMtkfLvdk,682
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=LqqNILB1cItoyRLVkrd0OmkhaTRvICaOHhcZ3OasofM,2006
135
- credsweeper/ml_model/features/word_in_path.py,sha256=h6yGORld8y7bkfzUHrutgTlSKNI0Gh0TEYYeYujUDEk,1139
136
- credsweeper/ml_model/features/word_in_postamble.py,sha256=Z0_5PA-2DeUfpPnuhhL1L0biBO62ZHc-uyQ87p0_NVU,947
137
- credsweeper/ml_model/features/word_in_preamble.py,sha256=YjQYAm2YVOzLv-1BBoU6LUiN-tl7MzmqDC_visJvMpc,1295
138
- credsweeper/ml_model/features/word_in_transition.py,sha256=uV86GVG8PiCxOAs-ZUtLEO5KKPe6bfPFIA-AfiaU0TQ,899
139
- credsweeper/ml_model/features/word_in_value.py,sha256=JBaBlMBHkAxAf0clpNcQQ8dUk6ekZTdk1xsj1mSmROE,581
140
- credsweeper/ml_model/features/word_in_variable.py,sha256=7JRZiN01AokjYeJJc_LpeMxGFQoJBXf9S8eQ-TahvTI,544
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=DhYU8pGvRn761v1ZGTE7NpsgEprso25s5Spqnr20vko,41983
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=M7Q-mReXhgN2Gvy9xWrHTdYZQNTvGqi_m3mZ2X9XUN4,10401
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=8PMz9Ps1NWoWts7ZQpGptymTQrGsPjabE5xmBDIzbOc,3504
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=IjcXO7_AVK8uaFFd9fYgf8IZZTJjOK2jWCb4gBrJV5U,28121
157
- credsweeper-1.12.1.dist-info/METADATA,sha256=WQ1lRB3uyYu6snmulCVHPENZ3v7v6Minxs1MhY1oDkE,10371
158
- credsweeper-1.12.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
159
- credsweeper-1.12.1.dist-info/entry_points.txt,sha256=SLGNZshvi3zpWPhVmRP-oDXRMRPBS4tzRDy6xYOXwqA,58
160
- credsweeper-1.12.1.dist-info/licenses/LICENSE,sha256=aU7mGjBKbmRHNLVXXzcPdKmTtBxRwDPtjflQRfN7fFg,1065
161
- credsweeper-1.12.1.dist-info/RECORD,,
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)