From a3c348100dfe77d1c07328c6f17a4b5cea56e202 Mon Sep 17 00:00:00 2001 From: wdvxdr Date: Sun, 28 Aug 2022 17:01:50 +0800 Subject: [PATCH] client/internal/oicq: clean up --- client/internal/oicq/oicq.go | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/client/internal/oicq/oicq.go b/client/internal/oicq/oicq.go index 54f3eed8..a08dde78 100644 --- a/client/internal/oicq/oicq.go +++ b/client/internal/oicq/oicq.go @@ -111,16 +111,13 @@ func (c *Codec) Unmarshal(data []byte) (*Message, error) { reader.ReadByte() switch encryptType { case 0: - m.Body = func() (decrypted []byte) { - d := reader.ReadBytes(reader.Len() - 1) - defer func() { - if pan := recover(); pan != nil { - tea := binary.NewTeaCipher(c.randomKey) - decrypted = tea.Decrypt(d) - } - }() - return binary.NewTeaCipher(c.ecdh.ShareKey).Decrypt(d) + d := reader.ReadBytes(reader.Len() - 1) + defer func() { + if pan := recover(); pan != nil { + m.Body = binary.NewTeaCipher(c.randomKey).Decrypt(d) + } }() + m.Body = binary.NewTeaCipher(c.ecdh.ShareKey).Decrypt(d) case 3: d := reader.ReadBytes(reader.Len() - 1) m.Body = binary.NewTeaCipher(c.WtSessionTicketKey).Decrypt(d)