Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 1 addition & 9 deletions samcli/lib/utils/hash.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,13 @@

import hashlib
import os
import sys
from typing import Any, List, Optional, cast

BLOCK_SIZE = 4096
# earliest python version to support usedforsecurity option for hashlib.md5 is 3.9
# https://docs.python.org/3/library/hashlib.html#hash-algorithms
_MAJOR_PYTHON_VERSION = 3
_MINOR_PYTHON_VERSION = 9


def _get_md5():
if sys.version_info.major >= _MAJOR_PYTHON_VERSION and sys.version_info.minor >= _MINOR_PYTHON_VERSION:
return hashlib.md5(usedforsecurity=False)
else:
return hashlib.md5()
return hashlib.md5(usedforsecurity=False)


def file_checksum(file_name: str, hash_generator: Any = None) -> str:
Expand Down
6 changes: 1 addition & 5 deletions tests/unit/lib/utils/test_hash.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import hashlib
import os
import shutil
import sys
import tempfile
from unittest import TestCase
from unittest.mock import patch
Expand Down Expand Up @@ -127,7 +126,4 @@ def test_str_checksum(self):
@patch("samcli.lib.utils.hash.hashlib")
def test_md5_instantiation(self, patched_hashlib):
str_checksum("dummy-data")
if sys.version_info.major >= 3 and sys.version_info.minor >= 9:
patched_hashlib.md5.assert_called_with(usedforsecurity=False)
else:
patched_hashlib.md5.assert_called_with()
patched_hashlib.md5.assert_called_with(usedforsecurity=False)