diff -r ffd1f00ca376 -r 384e2aa5c073 eric6/Plugins/CheckerPlugins/CodeStyleChecker/Security/Checks/generalHardcodedPassword.py --- a/eric6/Plugins/CheckerPlugins/CodeStyleChecker/Security/Checks/generalHardcodedPassword.py Tue Jun 16 17:44:28 2020 +0200 +++ b/eric6/Plugins/CheckerPlugins/CodeStyleChecker/Security/Checks/generalHardcodedPassword.py Tue Jun 16 17:45:12 2020 +0200 @@ -19,6 +19,8 @@ import re import sys +import AstUtilities + RE_WORDS = "(pas+wo?r?d|pass(phrase)?|pwd|token|secrete?|ken+wort|geheim)" RE_CANDIDATES = re.compile( '(^{0}$|_{0}_|^{0}_|_{0}$)'.format(RE_WORDS), @@ -81,7 +83,7 @@ assign = node._securityParent._securityParent._securityParent if ( isinstance(assign, ast.Assign) and - isinstance(assign.value, ast.Str) + AstUtilities.isString(assign.value) ): reportError( context.node.lineno - 1, @@ -97,7 +99,7 @@ comp = node._securityParent if isinstance(comp.left, ast.Name): if RE_CANDIDATES.search(comp.left.id): - if isinstance(comp.comparators[0], ast.Str): + if AstUtilities.isString(comp.comparators[0]): reportError( context.node.lineno - 1, context.node.col_offset, @@ -121,7 +123,7 @@ """ # looks for "function(candidate='some_string')" for kw in context.node.keywords: - if isinstance(kw.value, ast.Str) and RE_CANDIDATES.search(kw.arg): + if AstUtilities.isString(kw.value) and RE_CANDIDATES.search(kw.arg): reportError( context.node.lineno - 1, context.node.col_offset, @@ -157,7 +159,7 @@ isPy3Arg = isinstance(key, ast.arg) if isinstance(key, ast.Name) or isPy3Arg: check = key.arg if sys.version_info[0] > 2 else key.id # Py3 - if isinstance(val, ast.Str) and RE_CANDIDATES.search(check): + if AstUtilities.isString(val) and RE_CANDIDATES.search(check): reportError( context.node.lineno - 1, context.node.col_offset,