Use threads for factorization

Closes #3162.
This commit is contained in:
Lonami Exo 2022-01-24 14:27:34 +01:00
parent 4aa23cfbbc
commit 3c7bb53c3c

View File

@ -2,6 +2,8 @@
This module contains several functions that authenticate the client machine
with Telegram's servers, effectively creating an authorization key.
"""
import asyncio
import functools
import os
import time
from hashlib import sha1
@ -31,7 +33,10 @@ async def do_authentication(sender):
pq = get_int(res_pq.pq)
# Step 2 sending: DH Exchange
p, q = Factorization.factorize(pq)
p, q = await asyncio.get_running_loop().run_in_executor(
None,
functools.partial(Factorization.factorize, pq)
)
p, q = rsa.get_byte_array(p), rsa.get_byte_array(q)
new_nonce = int.from_bytes(os.urandom(32), 'little', signed=True)