Switch to cryptograhy for crypto routines

This commit is contained in:
Pierre Ståhl
2020-09-26 22:53:24 +02:00
committed by rospogrigio
parent 2879761eae
commit b7173f3033
4 changed files with 17 additions and 51 deletions

View File

@@ -9,7 +9,8 @@ import asyncio
import logging
from hashlib import md5
from Cryptodome.Cipher import AES
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
_LOGGER = logging.getLogger(__name__)
@@ -22,7 +23,9 @@ def decrypt_udp(message):
def _unpad(data):
return data[: -ord(data[len(data) - 1 :])]
return _unpad(AES.new(UDP_KEY, AES.MODE_ECB).decrypt(message)).decode()
cipher = Cipher(algorithms.AES(UDP_KEY), modes.ECB(), default_backend())
decryptor = cipher.decryptor()
return _unpad(decryptor.update(message) + decryptor.finalize()).decode()
class TuyaDiscovery(asyncio.DatagramProtocol):