Fix unencrypted padding length in Padded Intermediate

(official doc says 0..15 bytes, but server & Android app sends 0..256 bytes)
This commit is contained in:
Wizou 2023-07-05 05:03:08 +02:00
parent d50ac0ba51
commit 472b10f155
2 changed files with 3 additions and 3 deletions

View file

@ -392,7 +392,7 @@ namespace WTelegram
if ((msgId & 1) == 0) throw new WTException($"Invalid server msgId {msgId}"); if ((msgId & 1) == 0) throw new WTException($"Invalid server msgId {msgId}");
int length = reader.ReadInt32(); int length = reader.ReadInt32();
dataLen -= 20; dataLen -= 20;
if (length > dataLen || length < dataLen - (_paddedMode ? 15 : 0)) if (length > dataLen || dataLen - length > (_paddedMode ? 256 : 0))
throw new WTException($"Unexpected unencrypted/padding length {dataLen} - {length}"); throw new WTException($"Unexpected unencrypted/padding length {dataLen} - {length}");
var obj = reader.ReadTLObject(); var obj = reader.ReadTLObject();
@ -1283,7 +1283,7 @@ namespace WTelegram
} }
if (_paddedMode) // Padded intermediate mode => append random padding if (_paddedMode) // Padded intermediate mode => append random padding
{ {
var padding = new byte[_random.Next(16)]; var padding = new byte[_random.Next(_dcSession.AuthKeyID == 0 ? 257 : 16)];
RNG.GetBytes(padding); RNG.GetBytes(padding);
writer.Write(padding); writer.Write(padding);
} }

View file

@ -23,7 +23,7 @@
<RepositoryType>git</RepositoryType> <RepositoryType>git</RepositoryType>
<PackageTags>Telegram;MTProto;Client;Api;UserBot;TLSharp</PackageTags> <PackageTags>Telegram;MTProto;Client;Api;UserBot;TLSharp</PackageTags>
<PackageReadmeFile>README.md</PackageReadmeFile> <PackageReadmeFile>README.md</PackageReadmeFile>
<PackageReleaseNotes>$(ReleaseNotes.Replace("\"", "%22").Replace("|", "%0D%0A").Replace(" - ","%0D%0A- ").Replace(" ", "%0D%0A%0D%0A"))</PackageReleaseNotes> <PackageReleaseNotes>$(ReleaseNotes.Replace("\"", "''").Replace("|", "%0D%0A").Replace(" - ","%0D%0A- ").Replace(" ", "%0D%0A%0D%0A"))</PackageReleaseNotes>
<NoWarn>0419;1573;1591;NETSDK1138</NoWarn> <NoWarn>0419;1573;1591;NETSDK1138</NoWarn>
<DefineConstants>TRACE;OBFUSCATION</DefineConstants> <DefineConstants>TRACE;OBFUSCATION</DefineConstants>
</PropertyGroup> </PropertyGroup>