3232from pyrogram .api .core import Message , Object , MsgContainer , Long , FutureSalt
3333from pyrogram .api .errors import Error
3434from pyrogram .connection import Connection
35- from pyrogram .crypto import IGE , KDF , KDF2
35+ from pyrogram .crypto import IGE , KDF2
3636from .internals import MsgId , MsgFactory , DataCenter
3737
3838log = logging .getLogger (__name__ )
@@ -174,13 +174,13 @@ def restart(self):
174174 self .stop ()
175175 self .start ()
176176
177- def pack (self , message : Message ) -> bytes :
178- data = Long (self .current_salt .salt ) + self .session_id + message .write ()
179- msg_key = sha1 (data ).digest ()[- 16 :]
180- aes_key , aes_iv = KDF (self .auth_key , msg_key , True )
181- padding = urandom (- len (data ) % 16 )
182-
183- return self .auth_key_id + msg_key + IGE .encrypt (data + padding , aes_key , aes_iv )
177+ # def pack(self, message: Message) -> bytes:
178+ # data = Long(self.current_salt.salt) + self.session_id + message.write()
179+ # msg_key = sha1(data).digest()[-16:]
180+ # aes_key, aes_iv = KDF(self.auth_key, msg_key, True)
181+ # padding = urandom(-len(data) % 16)
182+ #
183+ # return self.auth_key_id + msg_key + IGE.encrypt(data + padding, aes_key, aes_iv)
184184
185185 def pack2 (self , message : Message ):
186186 data = Long (self .current_salt .salt ) + self .session_id + message .write ()
@@ -197,29 +197,29 @@ def pack2(self, message: Message):
197197
198198 return self .auth_key_id + msg_key + IGE .encrypt (data + padding , aes_key , aes_iv )
199199
200- def unpack (self , b : BytesIO ) -> Message :
201- assert b .read (8 ) == self .auth_key_id , b .getvalue ()
202-
203- msg_key = b .read (16 )
204- aes_key , aes_iv = KDF (self .auth_key , msg_key , False )
205- data = BytesIO (IGE .decrypt (b .read (), aes_key , aes_iv ))
206- data .read (8 ) # Server salt
207-
208- # https://core.telegram.org/mtproto/security_guidelines#checking-session-id
209- assert data .read (8 ) == self .session_id
210-
211- message = Message .read (data )
212-
213- # https://core.telegram.org/mtproto/security_guidelines#checking-sha1-hash-value-of-msg-key
214- # https://core.telegram.org/mtproto/security_guidelines#checking-message-length
215- # 32 = salt (8) + session_id (8) + msg_id (8) + seq_no (4) + length (4)
216- assert msg_key == sha1 (data .getvalue ()[:32 + message .length ]).digest ()[- 16 :]
217-
218- # https://core.telegram.org/mtproto/security_guidelines#checking-msg-id
219- # TODO: check for lower msg_ids
220- assert message .msg_id % 2 != 0
221-
222- return message
200+ # def unpack(self, b: BytesIO) -> Message:
201+ # assert b.read(8) == self.auth_key_id, b.getvalue()
202+ #
203+ # msg_key = b.read(16)
204+ # aes_key, aes_iv = KDF(self.auth_key, msg_key, False)
205+ # data = BytesIO(IGE.decrypt(b.read(), aes_key, aes_iv))
206+ # data.read(8) # Server salt
207+ #
208+ # # https://core.telegram.org/mtproto/security_guidelines#checking-session-id
209+ # assert data.read(8) == self.session_id
210+ #
211+ # message = Message.read(data)
212+ #
213+ # # https://core.telegram.org/mtproto/security_guidelines#checking-sha1-hash-value-of-msg-key
214+ # # https://core.telegram.org/mtproto/security_guidelines#checking-message-length
215+ # # 32 = salt (8) + session_id (8) + msg_id (8) + seq_no (4) + length (4)
216+ # assert msg_key == sha1(data.getvalue()[:32 + message.length]).digest()[-16:]
217+ #
218+ # # https://core.telegram.org/mtproto/security_guidelines#checking-msg-id
219+ # # TODO: check for lower msg_ids
220+ # assert message.msg_id % 2 != 0
221+ #
222+ # return message
223223
224224 def unpack2 (self , b : BytesIO ) -> Message :
225225 assert b .read (8 ) == self .auth_key_id , b .getvalue ()
0 commit comments