@@ -69,7 +69,7 @@ def get_aws_secrets_from_file(credentials_file: str) -> Set[str]:
6969
7070def check_file_for_aws_keys (
7171 filenames : Sequence [str ],
72- keys : Set [str ],
72+ keys : Set [bytes ],
7373) -> List [BadFile ]:
7474 """Check if files contain AWS secrets.
7575
@@ -79,13 +79,14 @@ def check_file_for_aws_keys(
7979 bad_files = []
8080
8181 for filename in filenames :
82- with open (filename , 'r ' ) as content :
82+ with open (filename , 'rb ' ) as content :
8383 text_body = content .read ()
8484 for key in keys :
8585 # naively match the entire file, low chance of incorrect
8686 # collision
8787 if key in text_body :
88- bad_files .append (BadFile (filename , key [:4 ].ljust (28 , '*' )))
88+ key_hidden = key .decode ()[:4 ].ljust (28 , '*' )
89+ bad_files .append (BadFile (filename , key_hidden ))
8990 return bad_files
9091
9192
@@ -137,7 +138,8 @@ def main(argv: Optional[Sequence[str]] = None) -> int:
137138 )
138139 return 2
139140
140- bad_filenames = check_file_for_aws_keys (args .filenames , keys )
141+ keys_b = {key .encode () for key in keys }
142+ bad_filenames = check_file_for_aws_keys (args .filenames , keys_b )
141143 if bad_filenames :
142144 for bad_file in bad_filenames :
143145 print (f'AWS secret found in { bad_file .filename } : { bad_file .key } ' )
0 commit comments