Update mtproto_sender.py

#453
This commit is contained in:
Maxim Smirnov 2017-11-24 21:28:48 +03:00 committed by GitHub
parent 74ec6391d9
commit 7a63c1ba58
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -6,7 +6,7 @@ from .. import helpers as utils
from ..crypto import AES from ..crypto import AES
from ..errors import ( from ..errors import (
BadMessageError, InvalidChecksumError, BrokenAuthKeyError, BadMessageError, InvalidChecksumError, BrokenAuthKeyError,
rpc_message_to_error rpc_message_to_error, SecurityError
) )
from ..extensions import BinaryReader from ..extensions import BinaryReader
from ..tl import TLMessage, MessageContainer, GzipPacked from ..tl import TLMessage, MessageContainer, GzipPacked
@ -158,6 +158,8 @@ class MtProtoSender:
msg_key = reader.read(16) msg_key = reader.read(16)
key, iv = utils.calc_key(self.session.auth_key.key, msg_key, False) key, iv = utils.calc_key(self.session.auth_key.key, msg_key, False)
if reader.read(len(body) - reader.tell_position()) % 16 != 0:
raise SecurityError('AES block size missmatch')
plain_text = AES.decrypt_ige( plain_text = AES.decrypt_ige(
reader.read(len(body) - reader.tell_position()), key, iv) reader.read(len(body) - reader.tell_position()), key, iv)