Commit 5988d7951b85f2e447f748546ea37e2cb13b2664
1 parent
4e1f626d
crypto: Do not throw from is_encrypted
Showing
1 changed file
with
12 additions
and
6 deletions
oletools/crypto.py
| @@ -229,12 +229,18 @@ def is_encrypted(some_file): | @@ -229,12 +229,18 @@ def is_encrypted(some_file): | ||
| 229 | log.warning('Ignoring error during clean up: {}'.format(exc)) | 229 | log.warning('Ignoring error during clean up: {}'.format(exc)) |
| 230 | 230 | ||
| 231 | # if that failed, try ourselves with older and less accurate code | 231 | # if that failed, try ourselves with older and less accurate code |
| 232 | - if isinstance(some_file, OleFileIO): | ||
| 233 | - return _is_encrypted_ole(some_file) | ||
| 234 | - if zipfile.is_zipfile(some_file): | ||
| 235 | - return _is_encrypted_zip(some_file) | ||
| 236 | - # otherwise assume it is the name of an ole file | ||
| 237 | - return _is_encrypted_ole(OleFileIO(some_file)) | 232 | + try: |
| 233 | + if isinstance(some_file, OleFileIO): | ||
| 234 | + return _is_encrypted_ole(some_file) | ||
| 235 | + if zipfile.is_zipfile(some_file): | ||
| 236 | + return _is_encrypted_zip(some_file) | ||
| 237 | + # otherwise assume it is the name of an ole file | ||
| 238 | + return _is_encrypted_ole(OleFileIO(some_file)) | ||
| 239 | + except Exception as exc: | ||
| 240 | + log.warning('Failed to check {} for encryption ({}); assume it is not ' | ||
| 241 | + 'encrypted.'.format(some_file, exc)) | ||
| 242 | + | ||
| 243 | + return False | ||
| 238 | 244 | ||
| 239 | 245 | ||
| 240 | def _is_encrypted_zip(filename): | 246 | def _is_encrypted_zip(filename): |