diff --git a/telethon/crypto/aes.py b/telethon/crypto/aes.py index 7bd2fe1a..3cfcc1af 100644 --- a/telethon/crypto/aes.py +++ b/telethon/crypto/aes.py @@ -1,8 +1,7 @@ """ AES IGE implementation in Python. -If available, tgcrypto will be used instead, otherwise -if available, cryptg will be used instead, otherwise +If available, cryptg will be used instead, otherwise if available, libssl will be used instead, otherwise the Python implementation will be used. """ @@ -16,20 +15,15 @@ __log__ = logging.getLogger(__name__) try: - import tgcrypto - __log__.debug('tgcrypto detected, it will be used for encryption') + import cryptg + __log__.info('cryptg detected, it will be used for encryption') except ImportError: - tgcrypto = None - try: - import cryptg - __log__.debug('cryptg detected, it will be used for encryption') - except ImportError: - cryptg = None - if libssl.encrypt_ige and libssl.decrypt_ige: - __log__.debug('libssl detected, it will be used for encryption') - else: - __log__.debug('tgcrypto or cryptg modules not installed and libssl not found, ' - 'falling back to (slower) Python encryption') + cryptg = None + if libssl.encrypt_ige and libssl.decrypt_ige: + __log__.info('libssl detected, it will be used for encryption') + else: + __log__.info('cryptg module not installed and libssl not found, ' + 'falling back to (slower) Python encryption') class AES: @@ -43,8 +37,6 @@ class AES: Decrypts the given text in 16-bytes blocks by using the given key and 32-bytes initialization vector. """ - if tgcrypto: - return tgcrypto.ige256_decrypt(cipher_text, key, iv) if cryptg: return cryptg.decrypt_ige(cipher_text, key, iv) if libssl.decrypt_ige: @@ -86,8 +78,6 @@ class AES: if padding: plain_text += os.urandom(16 - padding) - if tgcrypto: - return tgcrypto.ige256_encrypt(plain_text, key, iv) if cryptg: return cryptg.encrypt_ige(plain_text, key, iv) if libssl.encrypt_ige: diff --git a/telethon/crypto/aesctr.py b/telethon/crypto/aesctr.py index d1f5947f..34422904 100644 --- a/telethon/crypto/aesctr.py +++ b/telethon/crypto/aesctr.py @@ -2,19 +2,6 @@ This module holds the AESModeCTR wrapper class. """ import pyaes -import logging - - -__log__ = logging.getLogger(__name__) - - -try: - import tgcrypto - __log__.debug('tgcrypto detected, it will be used for ctr encryption') -except ImportError: - tgcrypto = None - __log__.debug('tgcrypto module not installed, ' - 'falling back to (slower) Python encryption') class AESModeCTR: @@ -29,15 +16,12 @@ class AESModeCTR: :param iv: the bytes initialization vector. Must have a length of 16. """ # TODO Use libssl if available - if tgcrypto: - self._aes = (key, iv, bytearray(1)) - else: - assert isinstance(key, bytes) - self._aes = pyaes.AESModeOfOperationCTR(key) + assert isinstance(key, bytes) + self._aes = pyaes.AESModeOfOperationCTR(key) - assert isinstance(iv, bytes) - assert len(iv) == 16 - self._aes._counter._counter = list(iv) + assert isinstance(iv, bytes) + assert len(iv) == 16 + self._aes._counter._counter = list(iv) def encrypt(self, data): """ @@ -46,8 +30,6 @@ class AESModeCTR: :param data: the plain text to be encrypted. :return: the encrypted cipher text. """ - if tgcrypto: - return tgcrypto.ctr256_encrypt(data, *self._aes) return self._aes.encrypt(data) def decrypt(self, data): @@ -57,6 +39,4 @@ class AESModeCTR: :param data: the cipher text to be decrypted. :return: the decrypted plain text. """ - if tgcrypto: - return tgcrypto.ctr256_decrypt(data, *self._aes) return self._aes.decrypt(data)