71 "H", |
71 "H", |
72 func.upper(), |
72 func.upper(), |
73 ) |
73 ) |
74 elif func == "new": |
74 elif func == "new": |
75 args = context.callArgs |
75 args = context.callArgs |
76 name = args[0] if args else keywords.get("name", None) |
76 name = args[0] if args else keywords.get("name") |
77 if ( |
77 if ( |
78 isinstance(name, str) |
78 isinstance(name, str) |
79 and name.lower() in insecureHashes |
79 and name.lower() in insecureHashes |
80 and keywords.get("usedforsecurity", "True") == "True" |
80 and keywords.get("usedforsecurity", "True") == "True" |
81 ): |
81 ): |
111 qualnameList = context.callFunctionNameQual.split(".") |
111 qualnameList = context.callFunctionNameQual.split(".") |
112 func = qualnameList[-1] |
112 func = qualnameList[-1] |
113 if "hashlib" in qualnameList and func == "new": |
113 if "hashlib" in qualnameList and func == "new": |
114 args = context.callArgs |
114 args = context.callArgs |
115 keywords = context.callKeywords |
115 keywords = context.callKeywords |
116 name = args[0] if args else keywords.get("name", None) |
116 name = args[0] if args else keywords.get("name") |
117 if isinstance(name, str) and name.lower() in insecureHashes: |
117 if isinstance(name, str) and name.lower() in insecureHashes: |
118 reportError( |
118 reportError( |
119 context.node.lineno - 1, |
119 context.node.lineno - 1, |
120 context.node.col_offset, |
120 context.node.col_offset, |
121 "S331", |
121 "S331", |