From dd38225f51c70222f3218b15083e410401d01337 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Fri, 26 Jan 2024 06:57:56 -1000 Subject: [PATCH] Use hashlib in place of hashes.Hash (#714) --- kasa/klaptransport.py | 11 +++-------- kasa/protocol.py | 10 +++------- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/kasa/klaptransport.py b/kasa/klaptransport.py index 66052f59..ac9243d1 100644 --- a/kasa/klaptransport.py +++ b/kasa/klaptransport.py @@ -50,7 +50,7 @@ import time from pprint import pformat as pf from typing import Any, Dict, Optional, Tuple, cast -from cryptography.hazmat.primitives import hashes, padding +from cryptography.hazmat.primitives import padding from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes from .credentials import Credentials @@ -68,16 +68,11 @@ SESSION_EXPIRE_BUFFER_SECONDS = 60 * 20 def _sha256(payload: bytes) -> bytes: - digest = hashes.Hash(hashes.SHA256()) # noqa: S303 - digest.update(payload) - hash = digest.finalize() - return hash + return hashlib.sha256(payload).digest() # noqa: S324 def _sha1(payload: bytes) -> bytes: - digest = hashes.Hash(hashes.SHA1()) # noqa: S303 - digest.update(payload) - return digest.finalize() + return hashlib.sha1(payload).digest() # noqa: S324 class KlapTransport(BaseTransport): diff --git a/kasa/protocol.py b/kasa/protocol.py index 60b3d7ca..aa9e3cbe 100755 --- a/kasa/protocol.py +++ b/kasa/protocol.py @@ -11,6 +11,7 @@ http://www.apache.org/licenses/LICENSE-2.0 """ import base64 import errno +import hashlib import logging import struct from abc import ABC, abstractmethod @@ -18,8 +19,6 @@ from typing import Dict, Tuple, Union # When support for cpython older than 3.11 is dropped # async_timeout can be replaced with asyncio.timeout -from cryptography.hazmat.primitives import hashes - from .credentials import Credentials from .deviceconfig import DeviceConfig @@ -29,11 +28,8 @@ _UNSIGNED_INT_NETWORK_ORDER = struct.Struct(">I") def md5(payload: bytes) -> bytes: - """Return an md5 hash of the payload.""" - digest = hashes.Hash(hashes.MD5()) # noqa: S303 - digest.update(payload) - hash = digest.finalize() - return hash + """Return the MD5 hash of the payload.""" + return hashlib.md5(payload).digest() # noqa: S324 class BaseTransport(ABC):