mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-06-19 19:46:41 +00:00
fix(AuthKey): key_id is a signed long, not unsigned
This commit is contained in:
parent
59da66e105
commit
c97e6023c4
@ -39,7 +39,7 @@ class AuthKey:
|
|||||||
with BinaryReader(sha1(self._key).digest()) as reader:
|
with BinaryReader(sha1(self._key).digest()) as reader:
|
||||||
self.aux_hash = reader.read_long(signed=False)
|
self.aux_hash = reader.read_long(signed=False)
|
||||||
reader.read(4)
|
reader.read(4)
|
||||||
self.key_id = reader.read_long(signed=False)
|
self.key_id = reader.read_long(signed=True)
|
||||||
|
|
||||||
# TODO This doesn't really fit here, it's only used in authentication
|
# TODO This doesn't really fit here, it's only used in authentication
|
||||||
def calc_new_nonce_hash(self, new_nonce, number):
|
def calc_new_nonce_hash(self, new_nonce, number):
|
||||||
|
@ -144,7 +144,7 @@ class MTProtoState:
|
|||||||
msg_key = msg_key_large[8:24]
|
msg_key = msg_key_large[8:24]
|
||||||
aes_key, aes_iv = self._calc_key(self.auth_key.key, msg_key, True)
|
aes_key, aes_iv = self._calc_key(self.auth_key.key, msg_key, True)
|
||||||
|
|
||||||
key_id = struct.pack('<Q', self.auth_key.key_id)
|
key_id = struct.pack('<q', self.auth_key.key_id)
|
||||||
return (key_id + msg_key +
|
return (key_id + msg_key +
|
||||||
AES.encrypt_ige(data + padding, aes_key, aes_iv))
|
AES.encrypt_ige(data + padding, aes_key, aes_iv))
|
||||||
|
|
||||||
@ -158,7 +158,7 @@ class MTProtoState:
|
|||||||
raise InvalidBufferError(body)
|
raise InvalidBufferError(body)
|
||||||
|
|
||||||
# TODO Check salt, session_id and sequence_number
|
# TODO Check salt, session_id and sequence_number
|
||||||
key_id = struct.unpack('<Q', body[:8])[0]
|
key_id = struct.unpack('<q', body[:8])[0]
|
||||||
if key_id != self.auth_key.key_id:
|
if key_id != self.auth_key.key_id:
|
||||||
raise SecurityError('Server replied with an invalid auth key')
|
raise SecurityError('Server replied with an invalid auth key')
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user