credsweeper.scanner.scan_type package

Submodules

credsweeper.scanner.scan_type.multi_pattern module

class credsweeper.scanner.scan_type.multi_pattern.MultiPattern[source]

Bases: ScanType

Check if line is a part of a multi-line credential and second part is present within MAX_SEARCH_MARGIN lines.

Parameters:

MAX_SEARCH_MARGIN – Int constant. Number of lines around current to perform search for the second part

MAX_SEARCH_MARGIN = 10
classmethod get_line_positions(line_pos: int, target: AnalysisTarget) List[int][source]

Returns list of line positions to be scanned for second part of multi-pattern rule in a priority order.

classmethod run(config: Config, rule: Rule, target: AnalysisTarget) List[Candidate][source]

Check if multiline credential present if the file within MAX_SEARCH_MARGIN range from current line_num.

Parameters:
  • config – user configs

  • rule – Rule object to check current line. Should be a multi-pattern rule

  • target – Analysis target

Returns:

List of Candidates if pattern defined in a rule is present in a line and second part of multi-pattern rule is present within MAX_SEARCH_MARGIN from the line. Empty list (False) - otherwise.

credsweeper.scanner.scan_type.pem_key_pattern module

class credsweeper.scanner.scan_type.pem_key_pattern.PemKeyPattern[source]

Bases: ScanType

Scanner detects single PEM private key in target from current line

classmethod run(config: Config, rule: Rule, target: AnalysisTarget) List[Candidate][source]

Check if target is a PEM key

Parameters:
  • config – user configs

  • rule – Rule object to check current line. Should be a pem-pattern rule

  • target – Analysis target

Returns:

List of Candidate objects if pattern defined in a rule is present in a line and filters defined in rule do not remove current line. Empty list - otherwise

credsweeper.scanner.scan_type.scan_type module

class credsweeper.scanner.scan_type.scan_type.ScanType[source]

Bases: ABC

Base class for all Scanners.

Scanner allow to check if regex pattern defined in a rule is present in a line.

classmethod filtering(target: AnalysisTarget, line_data: LineData, filters: List[Filter]) bool[source]

Check if line data should be removed based on filters.

If use_filters option is false, always return False

Parameters:
  • target – AnalysisTarget from which line_data was obtained

  • line_data – Line data to check with filters

  • filters – Filters to use

Returns:

True if line_data should be removed. False otherwise. If use_filters option is false, always return False

Return type:

boolean

classmethod get_line_data_list(config: Config, target: AnalysisTarget, pattern: Pattern, filters: List[Filter]) List[LineData][source]

Check if regex pattern is present in line, and line should not be removed by filters.

Parameters:
  • config – dict of credsweeper configuration

  • target – AnalysisTarget with all necessary data

  • pattern – Compiled regex object to be searched in line

  • filters – Filters to use

Returns:

List of LineData objects if pattern a line and filters do not remove current line. Empty otherwise

abstract classmethod run(config: Config, rule: Rule, target: AnalysisTarget) List[Candidate][source]

Check if regex pattern defined in a rule is present in a line.

Parameters:
  • config – user configs

  • rule – Rule object to check current line

  • target – Analysis target

Returns:

List of Candidate objects if pattern defined in a rule is present in a line and filters defined in rule do not remove current line. Empty list - otherwise

credsweeper.scanner.scan_type.single_pattern module

class credsweeper.scanner.scan_type.single_pattern.SinglePattern[source]

Bases: ScanType

Check if single line rule present in the line.

classmethod run(config: Config, rule: Rule, target: AnalysisTarget) List[Candidate][source]

Check if regex pattern defined in a rule is present in a line.

Parameters:
  • config – config object of user configs

  • rule – Rule object to check current line

  • target – Analysis target

Returns:

List of Candidate objects if pattern defined in a rule is present in a line and filters defined in rule do not remove current line. Empty list - otherwise

Module contents