Telethon/telethon/crypto/auth_key.py
2017-06-09 16:13:39 +02:00

25 lines
803 B
Python

from hashlib import sha1
from .. import helpers as utils
from ..extensions import BinaryReader, BinaryWriter
class AuthKey:
def __init__(self, data):
self.key = data
with BinaryReader(sha1(self.key).digest()) as reader:
self.aux_hash = reader.read_long(signed=False)
reader.read(4)
self.key_id = reader.read_long(signed=False)
def calc_new_nonce_hash(self, new_nonce, number):
"""Calculates the new nonce hash based on the current class fields' values"""
with BinaryWriter() as writer:
writer.write(new_nonce)
writer.write_byte(number)
writer.write_long(self.aux_hash, signed=False)
new_nonce_hash = utils.calc_msg_key(writer.get_bytes())
return new_nonce_hash