From 6f6618f251445b20a3571764f475715ed8eff5b9 Mon Sep 17 00:00:00 2001 From: Lonami Exo Date: Sun, 17 Sep 2023 22:48:17 +0200 Subject: [PATCH] Use cryptg when available --- client/src/telethon/_impl/crypto/aes.py | 13 +++++++++++++ stubs/cryptg.pyi | 2 ++ 2 files changed, 15 insertions(+) create mode 100644 stubs/cryptg.pyi diff --git a/client/src/telethon/_impl/crypto/aes.py b/client/src/telethon/_impl/crypto/aes.py index cfca359d..a7cb70d9 100644 --- a/client/src/telethon/_impl/crypto/aes.py +++ b/client/src/telethon/_impl/crypto/aes.py @@ -51,3 +51,16 @@ def ige_decrypt(ciphertext: bytes, key: bytes, iv: bytes) -> bytes: plaintext += plaintext_block return bytes(plaintext) + + +try: + import cryptg + + ige_encrypt = lambda t, k, i: cryptg.encrypt_ige( + bytes(t) if not isinstance(t, bytes) else t, k, i + ) + ige_decrypt = lambda t, k, i: cryptg.decrypt_ige( + bytes(t) if not isinstance(t, bytes) else t, k, i + ) +except ImportError: + pass diff --git a/stubs/cryptg.pyi b/stubs/cryptg.pyi new file mode 100644 index 00000000..06751214 --- /dev/null +++ b/stubs/cryptg.pyi @@ -0,0 +1,2 @@ +def encrypt_ige(plaintext: bytes, key: bytes, iv: bytes, /) -> bytes: ... +def decrypt_ige(ciphertext: bytes, key: bytes, iv: bytes, /) -> bytes: ...