credsweeper 1.10.8__py3-none-any.whl → 1.11.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.

Potentially problematic release.


This version of credsweeper might be problematic. Click here for more details.

credsweeper/__init__.py CHANGED
@@ -18,4 +18,4 @@ __all__ = [
18
18
  '__version__'
19
19
  ]
20
20
 
21
- __version__ = "1.10.8"
21
+ __version__ = "1.11.1"
@@ -960,6 +960,7 @@ nish
960
960
  nism
961
961
  node
962
962
  non
963
+ nope
963
964
  norm
964
965
  not
965
966
  nsive
@@ -1529,6 +1530,7 @@ warn
1529
1530
  watch
1530
1531
  wave
1531
1532
  way
1533
+ weak
1532
1534
  web
1533
1535
  week
1534
1536
  weight
@@ -28,6 +28,7 @@ from .pdf_scanner import PdfScanner
28
28
  from .pkcs12_scanner import Pkcs12Scanner
29
29
  from .pptx_scanner import PptxScanner
30
30
  from .tar_scanner import TarScanner
31
+ from .tmx_scanner import TmxScanner
31
32
  from .xlsx_scanner import XlsxScanner
32
33
  from .xml_scanner import XmlScanner
33
34
  from .zip_scanner import ZipScanner
@@ -126,6 +127,10 @@ class DeepScanner(
126
127
  deep_scanners.append(MxfileScanner)
127
128
  deep_scanners.append(XmlScanner)
128
129
  fallback_scanners.append(ByteScanner)
130
+ elif Util.is_tmx(data):
131
+ deep_scanners.append(TmxScanner)
132
+ fallback_scanners.append(XmlScanner)
133
+ fallback_scanners.append(ByteScanner)
129
134
  else:
130
135
  deep_scanners.append(XmlScanner)
131
136
  fallback_scanners.append(ByteScanner)
@@ -0,0 +1,45 @@
1
+ import logging
2
+ from abc import ABC
3
+ from typing import List, Optional
4
+
5
+ from lxml import etree
6
+
7
+ from credsweeper.common.constants import MIN_DATA_LEN
8
+ from credsweeper.credentials import Candidate
9
+ from credsweeper.deep_scanner.abstract_scanner import AbstractScanner
10
+ from credsweeper.file_handler.data_content_provider import DataContentProvider
11
+ from credsweeper.file_handler.string_content_provider import StringContentProvider
12
+ from credsweeper.utils import Util
13
+
14
+ logger = logging.getLogger(__name__)
15
+
16
+
17
+ class TmxScanner(AbstractScanner, ABC):
18
+ """Realises tmX files scanning for values only. Image tags are skipped."""
19
+
20
+ def data_scan(
21
+ self, #
22
+ data_provider: DataContentProvider, #
23
+ depth: int, #
24
+ recursive_limit_size: int) -> Optional[List[Candidate]]:
25
+ """Tries to represent data as xml text and scan as text lines"""
26
+ try:
27
+ lines = []
28
+ # the format is always in single line xlm, so line numbers are not actual
29
+ tree = etree.fromstring(data_provider.data)
30
+ for element in tree.iter():
31
+ tag = Util.extract_element_data(element, "tag")
32
+ if "Image" in tag:
33
+ continue
34
+ text = Util.extract_element_data(element, "text")
35
+ if MIN_DATA_LEN > len(text):
36
+ continue
37
+ lines.append(text)
38
+ tmx_data_provider = StringContentProvider(lines=lines,
39
+ file_path=data_provider.file_path,
40
+ file_type=data_provider.file_type,
41
+ info=f"{data_provider.info}|TMX")
42
+ return self.scanner.scan(tmx_data_provider)
43
+ except Exception as exc:
44
+ logger.warning("Cannot processed tmX file %s %s", str(data_provider.file_path), str(exc))
45
+ return None
@@ -6,7 +6,9 @@ from credsweeper.ml_model.features.length_of_attribute import LengthOfAttribute
6
6
  from credsweeper.ml_model.features.morpheme_dense import MorphemeDense
7
7
  from credsweeper.ml_model.features.rule_name import RuleName
8
8
  from credsweeper.ml_model.features.search_in_attribute import SearchInAttribute
9
- from credsweeper.ml_model.features.word_in_line import WordInLine
10
9
  from credsweeper.ml_model.features.word_in_path import WordInPath
10
+ from credsweeper.ml_model.features.word_in_postamble import WordInPostamble
11
+ from credsweeper.ml_model.features.word_in_preamble import WordInPreamble
12
+ from credsweeper.ml_model.features.word_in_transition import WordInTransition
11
13
  from credsweeper.ml_model.features.word_in_value import WordInValue
12
14
  from credsweeper.ml_model.features.word_in_variable import WordInVariable
@@ -0,0 +1,32 @@
1
+ from typing import List
2
+
3
+ import numpy as np
4
+
5
+ from credsweeper.common.constants import ML_HUNK
6
+ from credsweeper.credentials import Candidate
7
+ from credsweeper.ml_model.features.word_in import WordIn
8
+
9
+
10
+ class WordInPostamble(WordIn):
11
+ """Feature is true if line contains at least one word from predefined list."""
12
+
13
+ def __init__(self, words: List[str]) -> None:
14
+ """Feature returns array of matching words
15
+
16
+ Args:
17
+ words: list of predefined words - MUST BE IN LOWER CASE
18
+
19
+ """
20
+ super().__init__(words)
21
+
22
+ def extract(self, candidate: Candidate) -> np.ndarray:
23
+ """Returns true if any words in a part of line after value"""
24
+ postamble_end = len(candidate.line_data_list[0].line) \
25
+ if len(candidate.line_data_list[0].line) < candidate.line_data_list[0].value_end + ML_HUNK \
26
+ else candidate.line_data_list[0].value_end + ML_HUNK
27
+ postamble = candidate.line_data_list[0].line[candidate.line_data_list[0].value_end:postamble_end].strip()
28
+
29
+ if postamble:
30
+ return self.word_in_str(postamble.lower())
31
+ else:
32
+ return np.array([np.zeros(shape=[self.dimension], dtype=np.int8)])
@@ -0,0 +1,37 @@
1
+ from typing import List
2
+
3
+ import numpy as np
4
+
5
+ from credsweeper.common.constants import ML_HUNK
6
+ from credsweeper.credentials import Candidate
7
+ from credsweeper.ml_model.features.word_in import WordIn
8
+
9
+
10
+ class WordInPreamble(WordIn):
11
+ """Feature is true if line contains at least one word from predefined list."""
12
+
13
+ def __init__(self, words: List[str]) -> None:
14
+ """Feature returns array of matching words
15
+
16
+ Args:
17
+ words: list of predefined words - MUST BE IN LOWER CASE
18
+
19
+ """
20
+ super().__init__(words)
21
+
22
+ def extract(self, candidate: Candidate) -> np.ndarray:
23
+ """Returns true if any words in line before variable or value"""
24
+ if 0 <= candidate.line_data_list[0].variable_start:
25
+ preamble_start = 0 if ML_HUNK >= candidate.line_data_list[0].variable_start \
26
+ else candidate.line_data_list[0].variable_start - ML_HUNK
27
+ preamble = candidate.line_data_list[0].line[preamble_start:candidate.line_data_list[0].
28
+ variable_start].strip()
29
+ else:
30
+ preamble_start = 0 if ML_HUNK >= candidate.line_data_list[0].value_start \
31
+ else candidate.line_data_list[0].value_start - ML_HUNK
32
+ preamble = candidate.line_data_list[0].line[preamble_start:candidate.line_data_list[0].value_start].strip()
33
+
34
+ if preamble:
35
+ return self.word_in_str(preamble.lower())
36
+ else:
37
+ return np.array([np.zeros(shape=[self.dimension], dtype=np.int8)])
@@ -2,13 +2,11 @@ from typing import List
2
2
 
3
3
  import numpy as np
4
4
 
5
- from credsweeper.common.constants import CHUNK_SIZE
6
5
  from credsweeper.credentials import Candidate
7
6
  from credsweeper.ml_model.features.word_in import WordIn
8
- from credsweeper.utils import Util
9
7
 
10
8
 
11
- class WordInLine(WordIn):
9
+ class WordInTransition(WordIn):
12
10
  """Feature is true if line contains at least one word from predefined list."""
13
11
 
14
12
  def __init__(self, words: List[str]) -> None:
@@ -21,9 +19,14 @@ class WordInLine(WordIn):
21
19
  super().__init__(words)
22
20
 
23
21
  def extract(self, candidate: Candidate) -> np.ndarray:
24
- """Returns true if any words in first line"""
25
- subtext = Util.subtext(candidate.line_data_list[0].line, candidate.line_data_list[0].value_start, CHUNK_SIZE)
26
- if subtext:
27
- return self.word_in_str(subtext.lower())
22
+ """Returns true if any words between variable and value"""
23
+ if 0 <= candidate.line_data_list[0].variable_end < candidate.line_data_list[0].value_start:
24
+ transition = candidate.line_data_list[0].line[candidate.line_data_list[0].variable_end:candidate.
25
+ line_data_list[0].value_start].strip()
26
+ else:
27
+ transition = ''
28
+
29
+ if transition:
30
+ return self.word_in_str(transition.lower())
28
31
  else:
29
32
  return np.array([np.zeros(shape=[self.dimension], dtype=np.int8)])
@@ -70,6 +70,38 @@
70
70
  "attribute": "value"
71
71
  }
72
72
  },
73
+ {
74
+ "type": "SearchInAttribute",
75
+ "comment": "camelStyle naming detection",
76
+ "kwargs": {
77
+ "pattern": "^[a-z][a-z]{1,16}[0-9]*([A-Z]([a-z]{1,16}[0-9]*|[0-9]{1,16})){1,8}$",
78
+ "attribute": "value"
79
+ }
80
+ },
81
+ {
82
+ "type": "SearchInAttribute",
83
+ "comment": "PascalStyle naming detection",
84
+ "kwargs": {
85
+ "pattern": "^([A-Z]([a-z]{1,16}[0-9]*|[0-9]{1,16})){1,8}$",
86
+ "attribute": "value"
87
+ }
88
+ },
89
+ {
90
+ "type": "SearchInAttribute",
91
+ "comment": "UPPERCASE naming detection",
92
+ "kwargs": {
93
+ "pattern": "^(_+[0-9]{1,16}|_*[A-Z]{1,16}[0-9]*)(_+([0-9]{1,16}|[A-Z]{1,16}[0-9]*)){1,8}_*$",
94
+ "attribute": "value"
95
+ }
96
+ },
97
+ {
98
+ "type": "SearchInAttribute",
99
+ "comment": "lowercase naming detection",
100
+ "kwargs": {
101
+ "pattern": "^(_+[0-9]{1,16}|_*[a-z]{1,16}[0-9]*)(_+([0-9]{1,16}|[a-z]{1,16}[0-9]*)){1,8}_*$",
102
+ "attribute": "value"
103
+ }
104
+ },
73
105
  {
74
106
  "type": "SearchInAttribute",
75
107
  "comment": "VariableNotAllowedPatternCheck",
@@ -82,7 +114,7 @@
82
114
  "type": "SearchInAttribute",
83
115
  "comment": "VariableNotAllowedNameCheck",
84
116
  "kwargs": {
85
- "pattern": "(?i:pub(lic)?_?key)",
117
+ "pattern": "(?i:(filters?|pub(lic)?)_?key)",
86
118
  "attribute": "variable"
87
119
  }
88
120
  },
@@ -90,7 +122,15 @@
90
122
  "type": "SearchInAttribute",
91
123
  "comment": "VariableNotAllowedNameCheck",
92
124
  "kwargs": {
93
- "pattern": "(?i:_?id$|name$|type$)",
125
+ "pattern": "(?i:(id|size|name|type|manager)$)",
126
+ "attribute": "variable"
127
+ }
128
+ },
129
+ {
130
+ "type": "SearchInAttribute",
131
+ "comment": "PWD invocation",
132
+ "kwargs": {
133
+ "pattern": "(?i:(^\\$pwd$)|(^\\$\\{#?pwd[^}]*\\}$)|(^\\$\\(pwd\\)$)|(^`pwd`$))",
94
134
  "attribute": "variable"
95
135
  }
96
136
  },
@@ -98,44 +138,55 @@
98
138
  "type": "WordInVariable",
99
139
  "kwargs": {
100
140
  "words": [
101
- "/",
102
141
  " ",
142
+ "/",
103
143
  "_at",
104
144
  "_id",
105
- "obj",
145
+ "_len",
146
+ "access",
147
+ "cache",
148
+ "client",
149
+ "control",
150
+ "encrypted",
151
+ "example",
152
+ "expire",
153
+ "fake",
106
154
  "file",
107
- "path",
155
+ "filter",
156
+ "fingerprint",
108
157
  "hash",
158
+ "key",
159
+ "label",
160
+ "length",
161
+ "manager",
162
+ "mock",
109
163
  "name",
164
+ "native",
165
+ "obj",
166
+ "option",
167
+ "p/w",
168
+ "parameter",
169
+ "pass",
170
+ "path",
171
+ "project",
172
+ "public",
173
+ "pw",
174
+ "secret",
175
+ "size",
176
+ "space",
177
+ "status",
178
+ "sword",
179
+ "temp",
110
180
  "test",
181
+ "thumbprint",
111
182
  "time",
112
- "temp",
183
+ "timestamp",
184
+ "title",
185
+ "token",
113
186
  "type",
114
- "mock",
115
- "size",
116
187
  "uniq",
117
- "fake",
118
- "view",
119
- "cache",
120
188
  "valid",
121
- "label",
122
- "title",
123
- "access",
124
- "space",
125
- "filter",
126
- "native",
127
- "status",
128
- "expire",
129
- "client",
130
- "option",
131
- "public",
132
- "project",
133
- "control",
134
- "parameter",
135
- "encrypted",
136
- "timestamp",
137
- "thumbprint",
138
- "fingerprint"
189
+ "view"
139
190
  ]
140
191
  }
141
192
  },
@@ -144,76 +195,154 @@
144
195
  "kwargs": {
145
196
  "words": [
146
197
  " ",
198
+ "$(",
199
+ "${",
147
200
  "(",
148
- "[",
149
- ".",
150
201
  "->",
151
- "${",
152
- "$(",
202
+ ".",
153
203
  "...",
154
- "foo",
155
- "bar",
156
204
  "123",
205
+ "<",
206
+ ">",
207
+ "[",
208
+ "_id",
157
209
  "abc",
158
- "xyz",
159
- "xxx",
160
- "pwd",
161
- "passwd",
162
- "pswd",
163
- "psswd",
210
+ "allow",
211
+ "bar",
212
+ "disable",
213
+ "changeme",
214
+ "example",
215
+ "fake",
216
+ "file",
217
+ "foo",
218
+ "min",
219
+ "mock",
220
+ "my",
221
+ "nil",
164
222
  "pass",
223
+ "passwd",
165
224
  "password",
166
- "pasword",
167
- "null",
168
- "nil",
169
- "undefined",
170
- "none",
171
- "true",
172
- "false",
173
- "example",
225
+ "pswd",
174
226
  "public",
175
- "mock",
176
- "fake",
227
+ "pwd",
177
228
  "test",
178
- "allow",
179
- "my",
180
- "file",
181
- "id"
229
+ "xxx",
230
+ "xyz"
182
231
  ]
183
232
  }
184
233
  },
185
234
  {
186
- "type": "WordInLine",
235
+ "type": "WordInPreamble",
187
236
  "kwargs": {
188
237
  "words": [
238
+ "$",
239
+ "%2",
240
+ "%3",
241
+ "&",
242
+ "&amp;",
189
243
  "(",
190
- "[",
244
+ "->",
191
245
  ".",
192
- "$",
193
246
  "://",
247
+ "?",
194
248
  "@",
195
- "pwd",
196
- "passwd",
197
- "pswd",
198
- "psswd",
249
+ "[",
250
+ "approval",
251
+ "assert",
252
+ "case",
253
+ "circle",
254
+ "equal",
255
+ "example",
256
+ "expect",
257
+ "false",
258
+ "height",
259
+ "image",
260
+ "line",
261
+ "media",
262
+ "nil",
263
+ "none",
264
+ "null",
199
265
  "pass",
200
266
  "password",
201
- "pasword",
202
- "->",
203
- "null",
204
- "nil",
267
+ "path",
268
+ "pwd",
269
+ "sqa",
270
+ "test",
271
+ "true",
205
272
  "undefined",
206
- "none",
207
273
  "unit",
274
+ "width"
275
+ ]
276
+ }
277
+ },
278
+ {
279
+ "type": "WordInTransition",
280
+ "kwargs": {
281
+ "words": [
282
+ "%2",
283
+ "%3",
284
+ "&",
285
+ "(",
286
+ "->",
287
+ ".",
288
+ "?",
289
+ "@",
290
+ "[",
291
+ "bearer",
292
+ "equal",
293
+ "example",
294
+ "expect",
295
+ "line",
296
+ "media",
297
+ "pass",
298
+ "password",
299
+ "path",
208
300
  "test",
209
- "approval",
210
- "case",
211
- "true",
212
- "false",
301
+ "unit"
302
+ ]
303
+ }
304
+ },
305
+ {
306
+ "type": "WordInPostamble",
307
+ "kwargs": {
308
+ "words": [
309
+ "$",
310
+ "%2",
311
+ "%3",
312
+ "&",
313
+ "&amp;",
314
+ "(",
315
+ "->",
316
+ ".",
317
+ "://",
318
+ "?",
319
+ "@",
320
+ "[",
213
321
  "assert",
322
+ "case",
323
+ "circle",
214
324
  "equal",
215
325
  "example",
216
- "expect"
326
+ "expect",
327
+ "false",
328
+ "height",
329
+ "image",
330
+ "line",
331
+ "media",
332
+ "nil",
333
+ "none",
334
+ "null",
335
+ "pass",
336
+ "passwd",
337
+ "password",
338
+ "path",
339
+ "pwd",
340
+ "sqa",
341
+ "test",
342
+ "true",
343
+ "undefined",
344
+ "unit",
345
+ "width"
217
346
  ]
218
347
  }
219
348
  },
@@ -221,20 +350,22 @@
221
350
  "type": "WordInPath",
222
351
  "kwargs": {
223
352
  "words": [
224
- "/test",
225
- "/config",
226
- "/src/",
227
- "/record",
228
- "/usr/local/lib/python",
353
+ "/conf",
229
354
  "/dist-packages/",
355
+ "/example",
356
+ "/record",
357
+ "/script",
230
358
  "/site-packages/",
231
- "/example"
359
+ "/src/",
360
+ "/test",
361
+ "/tool",
362
+ "/usr/local/lib/python",
363
+ "/assets/"
232
364
  ]
233
365
  }
234
366
  },
235
367
  {
236
- "type": "MorphemeDense",
237
- "kwargs": {}
368
+ "type": "MorphemeDense"
238
369
  },
239
370
  {
240
371
  "type": "HasHtmlTag"
@@ -255,6 +386,7 @@
255
386
  ".bat",
256
387
  ".bats",
257
388
  ".bazel",
389
+ ".bin",
258
390
  ".build",
259
391
  ".bundle",
260
392
  ".bzl",
@@ -337,6 +469,7 @@
337
469
  ".nix",
338
470
  ".nolint",
339
471
  ".odd",
472
+ ".onnx",
340
473
  ".oracle",
341
474
  ".pan",
342
475
  ".patch",
@@ -396,6 +529,7 @@
396
529
  ".ts",
397
530
  ".tsx",
398
531
  ".txt",
532
+ ".var",
399
533
  ".vue",
400
534
  ".xaml",
401
535
  ".xib",
Binary file
credsweeper/utils/util.py CHANGED
@@ -517,6 +517,18 @@ class Util:
517
517
  return True
518
518
  return False
519
519
 
520
+ @staticmethod
521
+ def is_tmx(data: Union[bytes, bytearray]) -> bool:
522
+ """Used to detect tm7,tm6,etc. (ThreadModeling) format."""
523
+ if isinstance(data, (bytes, bytearray)):
524
+ for opening_tag, closing_tag in [(b"<ThreatModel", b"</ThreatModel>"),
525
+ (b"<KnowledgeBase", b"</KnowledgeBase>")]:
526
+ opening_pos = data.find(opening_tag, 0, MAX_LINE_LENGTH)
527
+ if 0 <= opening_pos < data.find(closing_tag, opening_pos):
528
+ # opening and closing tags were found - suppose it is an HTML
529
+ return True
530
+ return False
531
+
520
532
  # A well-formed XML must start from < or a whitespace character
521
533
  XML_FIRST_BRACKET_PATTERN = re.compile(rb"^\s*<")
522
534
  XML_OPENING_TAG_PATTERN = re.compile(rb"<([0-9A-Za-z_]{1,256})")
@@ -583,14 +595,14 @@ class Util:
583
595
  line_nums = []
584
596
  tree = etree.fromstringlist(xml_lines)
585
597
  for element in tree.iter():
586
- tag = Util._extract_element_data(element, "tag")
587
- text = Util._extract_element_data(element, "text")
598
+ tag = Util.extract_element_data(element, "tag")
599
+ text = Util.extract_element_data(element, "text")
588
600
  lines.append(f"{tag} : {text}")
589
601
  line_nums.append(element.sourceline)
590
602
  return lines, line_nums
591
603
 
592
604
  @staticmethod
593
- def _extract_element_data(element, attr) -> str:
605
+ def extract_element_data(element: Any, attr: str) -> str:
594
606
  """Extract xml element data to string.
595
607
 
596
608
  Try to extract the xml data and strip() the string.
@@ -605,7 +617,7 @@ class Util:
605
617
  """
606
618
  element_attr: Any = getattr(element, attr)
607
619
  if element_attr is None or not isinstance(element_attr, str):
608
- return ""
620
+ return ''
609
621
  return str(element_attr).strip()
610
622
 
611
623
  @staticmethod
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: credsweeper
3
- Version: 1.10.8
3
+ Version: 1.11.1
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
@@ -1,4 +1,4 @@
1
- credsweeper/__init__.py,sha256=AVoCT0SvwU-54LMpiM15rolizTKZICxaBWftDTrIpsI,632
1
+ credsweeper/__init__.py,sha256=DNgFBLOXoBUXL0IvKDJswX-CEJfApajSHSuJq_FhRtg,632
2
2
  credsweeper/__main__.py,sha256=jlI83ctJJfF0koMqP6u24JASC7MIPA2g1POx7aeuaQ8,17187
3
3
  credsweeper/app.py,sha256=sexUp4Qced22AhvbcVlb5C-QtJRoDmUp5qhc_nwj248,21369
4
4
  credsweeper/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -7,7 +7,7 @@ credsweeper/common/constants.py,sha256=plBHrIVfj4CBpymIgLxTPiYr66_By3QKlgCoHYVKP
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
9
  credsweeper/common/keyword_pattern.py,sha256=JYwIrtMFzQhHSRJWudnbFLgE2i9dOEY4_EFYsgbIBzg,2618
10
- credsweeper/common/morpheme_checklist.txt,sha256=yPfBCSlLCHrzMtZELZbco4PFFWgq_cVOLJF4VTA2b9M,8852
10
+ credsweeper/common/morpheme_checklist.txt,sha256=Q-vc60F05Y-DiZP9rYahouPRf7kxEyy9gsXQTWE0pc4,8862
11
11
  credsweeper/config/__init__.py,sha256=3_lLgF2P-EurNupTYmHvY11Ba8rdjhLJAAfTiMJW4mY,45
12
12
  credsweeper/config/config.py,sha256=Rfc8YLa4bcG_AMequbfQ-HggS74jC4OqTtaWOoGxJdA,2630
13
13
  credsweeper/credentials/__init__.py,sha256=bn7BEgGqKcwlCLi5-7_sXlBmIpK7s5RrNcG_e01L4Ck,333
@@ -21,7 +21,7 @@ credsweeper/deep_scanner/__init__.py,sha256=Lp94BjQPZTgEa77E0v6xZaXZvQf2A-QTHsjq
21
21
  credsweeper/deep_scanner/abstract_scanner.py,sha256=RLwANH7C42GMdgq_uyMH895HCUwmZFfCOTmFTzO8ni0,1404
22
22
  credsweeper/deep_scanner/byte_scanner.py,sha256=oHeA8mGe995SHqWvONhTDBIE5j50TQASHA9Mv6LHYuQ,1125
23
23
  credsweeper/deep_scanner/bzip2_scanner.py,sha256=74RsjmeuffEuxmKl04lXIZt3q_Zvxj-gLHXACqVSU_o,1619
24
- credsweeper/deep_scanner/deep_scanner.py,sha256=lBfXRsALmI62WRNeo6QULLVSFfv9rP4aa_fOXNYZe_g,17035
24
+ credsweeper/deep_scanner/deep_scanner.py,sha256=l4fj7yuwCl6FWNB3UO4JmMAGEVrHSi-8OH8LIwsLTB4,17263
25
25
  credsweeper/deep_scanner/docx_scanner.py,sha256=t0vocPDY54KBjpmQBo53n5KvOISXkB-LlxFbfuRNLMA,4128
26
26
  credsweeper/deep_scanner/eml_scanner.py,sha256=iRLr2yvBWGktT2oXxl-haqnhJN3tglO1Mej10hFk0as,3512
27
27
  credsweeper/deep_scanner/encoder_scanner.py,sha256=qszql2a-lVuzVN_bNS2EsJ-Zxpqql52o1sJsLnpjX7M,1279
@@ -34,6 +34,7 @@ credsweeper/deep_scanner/pdf_scanner.py,sha256=LMyIoVJPNFOFnAfcZ5Akr7PTWSUBNPT6G
34
34
  credsweeper/deep_scanner/pkcs12_scanner.py,sha256=s6WyeLUHxqbMnM3t_eY6GUwn1Yyh_nyehprWM_HgomQ,2142
35
35
  credsweeper/deep_scanner/pptx_scanner.py,sha256=aMX6GgnUEShonHjlqhaI5w970b-2yxmKsld5kY1XdeQ,1828
36
36
  credsweeper/deep_scanner/tar_scanner.py,sha256=L3a9OUhQQweDNLVbe_LNLhldtVeU8DlS0Ux3ip_KN2w,2425
37
+ credsweeper/deep_scanner/tmx_scanner.py,sha256=6BsMysSSSJrxtssh4bf1e4vwpps7yXDDvByFkyLhC_o,1946
37
38
  credsweeper/deep_scanner/xlsx_scanner.py,sha256=Ck8j14OWy9LTXK0GBASCdPq9VhZe5ceUv0uZShFFpo8,2706
38
39
  credsweeper/deep_scanner/xml_scanner.py,sha256=Dc5vw8MhOQFppPSMMzJBANKTC1OIu_7UsuLAwPGYQ4c,1302
39
40
  credsweeper/deep_scanner/zip_scanner.py,sha256=rWNV43OV8FTpXGMkAlRCwnnaJ-WdiIpreI9FUpx7wb0,2431
@@ -108,10 +109,10 @@ credsweeper/filters/group/weird_base64_token.py,sha256=nMAmhwMzBZ-La1pJnZHVOavPa
108
109
  credsweeper/logger/__init__.py,sha256=qoRn8hBnzjqDMSPAmavHbpsuyC0dmxuKqbO_v50EcDU,45
109
110
  credsweeper/logger/logger.py,sha256=E427IHUgX5jOCUKYlXKwQiyXNIUSYBpP45ldNCfVjFw,1828
110
111
  credsweeper/ml_model/__init__.py,sha256=Bvw_WgOmNwzFrBP0tKgWapasYcU7IRT0zMpbmWD6DwU,58
111
- credsweeper/ml_model/ml_config.json,sha256=HgjZicEsbXd0T6LFO9YEtUhlTqCBZ5HFig1F7yHPh5E,12078
112
- credsweeper/ml_model/ml_model.onnx,sha256=o50IaStZWRAk5VciLFglNYQiYimq9udGQed0dpoE5SY,9605528
112
+ credsweeper/ml_model/ml_config.json,sha256=QDPNRl-QT9TY7NPgOjjsekDdPvxI3IZkyXcr5VSa6eY,16049
113
+ credsweeper/ml_model/ml_model.onnx,sha256=1z_vsA2d74qvEUfDDxGGsWmUvRLotd7AM1C7QlkO1bE,10979845
113
114
  credsweeper/ml_model/ml_validator.py,sha256=uM5D9s-2r_qqlZWItWWnp9o1gx5FuJo3E-0Y6OhfqYM,11907
114
- credsweeper/ml_model/features/__init__.py,sha256=v63Ri6rrjKfD1yN47dA6i9tn9hpdjqK06afHJHV5-ig,858
115
+ credsweeper/ml_model/features/__init__.py,sha256=OtWcKTbXsM4hi4P8G6f-T_FC6pQVOz_le2FbN2Kak1c,1020
115
116
  credsweeper/ml_model/features/entropy_evaluation.py,sha256=Mzv6bSui2XbX-WBLHk0gI0x_9RHgRjM7n9ep0VfDCIw,2605
116
117
  credsweeper/ml_model/features/feature.py,sha256=6qYXKh1vDC0rgFn1zrXsCbr52W4r3jL6Ju1UUECBPWY,1094
117
118
  credsweeper/ml_model/features/file_extension.py,sha256=ffPiPV9TM9axvBcnZE_2nE761rv7mNFzpQjo5SpAuRY,688
@@ -122,8 +123,10 @@ credsweeper/ml_model/features/morpheme_dense.py,sha256=k9UZiy19uVFSWpLMhfhaDZYue
122
123
  credsweeper/ml_model/features/rule_name.py,sha256=2J5vf8o-FHvKN9iYbupp2dMjOeln7XwDYaC3kNNwwJk,666
123
124
  credsweeper/ml_model/features/search_in_attribute.py,sha256=aHwUZ5iF4BUtNLa5BUi3ufEhcQWPa7647Oy5hBauwhQ,692
124
125
  credsweeper/ml_model/features/word_in.py,sha256=TE6fjP0UZHq3pbydxUFIvwN8M-V82VFbjd_a76B-l_k,1996
125
- credsweeper/ml_model/features/word_in_line.py,sha256=RmQgcyKE7vgduFv16mI9CUdWdW4EFPtkHHR83OjbKxM,974
126
126
  credsweeper/ml_model/features/word_in_path.py,sha256=5jz2pRPF_wS9IIuiAOF3Ev73lXIPdyC0PQK1hrc08tk,1184
127
+ credsweeper/ml_model/features/word_in_postamble.py,sha256=Yf6mcnZsnWxmtD5M_Zd1hb-MXyY2DvOJiFE9XcJs3ok,1192
128
+ credsweeper/ml_model/features/word_in_preamble.py,sha256=mVA7sEaO_VfoJJ5rwwr16iK5jbZgJ1X1oHPKyVWOkZI,1540
129
+ credsweeper/ml_model/features/word_in_transition.py,sha256=owpXQOWD4OzCXTWypYr3HOWuR7Q29uYSTW7a6JZuNV4,1144
127
130
  credsweeper/ml_model/features/word_in_value.py,sha256=35GCjCfvpWw4-MiMAZA9YcoaqwBommArSrJ4kEAi5TA,883
128
131
  credsweeper/ml_model/features/word_in_variable.py,sha256=d02c1ieUxm1pSyOE-S-HijgliMRV9kMaI0zv-UxFAp4,823
129
132
  credsweeper/rules/__init__.py,sha256=alXS8IivUs-AKKbVHiWvSjFpg1urJZLKItuFr61HHyg,40
@@ -142,9 +145,9 @@ credsweeper/utils/__init__.py,sha256=wPdTkrSBAkR3rppFZ68k6MiT_P7tIHuAb3AcwndJCWg
142
145
  credsweeper/utils/entropy_validator.py,sha256=711xCIBGAy-Pb6wqbMpEToa4dOYj5_CmkbKHygLeQrI,2796
143
146
  credsweeper/utils/hop_stat.py,sha256=0D7xB1CVAUhseOZWvLZXxn3MYHKZnfnFJ8hj7tONiyU,2978
144
147
  credsweeper/utils/pem_key_detector.py,sha256=Z1LJYm4WAqppF2ooj81-lbhrg2woiNKiMk8Nt4DV-G8,7721
145
- credsweeper/utils/util.py,sha256=koK8Sat8wjWHncOy0MQbnKRUrdxrJ77gt8U6spRG-oA,30451
146
- credsweeper-1.10.8.dist-info/METADATA,sha256=q7SvvJlrS74vmGiEJ35v4hFqfTaSfXeFAl5ial3abWA,10504
147
- credsweeper-1.10.8.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
148
- credsweeper-1.10.8.dist-info/entry_points.txt,sha256=SLGNZshvi3zpWPhVmRP-oDXRMRPBS4tzRDy6xYOXwqA,58
149
- credsweeper-1.10.8.dist-info/licenses/LICENSE,sha256=aU7mGjBKbmRHNLVXXzcPdKmTtBxRwDPtjflQRfN7fFg,1065
150
- credsweeper-1.10.8.dist-info/RECORD,,
148
+ credsweeper/utils/util.py,sha256=p8Chj7VWJrAP8q_jQhssfm1xoiIN_iCN1uMViq-1JrA,31102
149
+ credsweeper-1.11.1.dist-info/METADATA,sha256=W39T66V_XQYHdIx91-XgGi48QJiiZN7CwGndeUN98FA,10504
150
+ credsweeper-1.11.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
151
+ credsweeper-1.11.1.dist-info/entry_points.txt,sha256=SLGNZshvi3zpWPhVmRP-oDXRMRPBS4tzRDy6xYOXwqA,58
152
+ credsweeper-1.11.1.dist-info/licenses/LICENSE,sha256=aU7mGjBKbmRHNLVXXzcPdKmTtBxRwDPtjflQRfN7fFg,1065
153
+ credsweeper-1.11.1.dist-info/RECORD,,