From 472b10f1555e4966a25d5da6e0189440361afcc1 Mon Sep 17 00:00:00 2001
From: Wizou <11647984+wiz0u@users.noreply.github.com>
Date: Wed, 5 Jul 2023 05:03:08 +0200
Subject: [PATCH] Fix unencrypted padding length in Padded Intermediate
(official doc says 0..15 bytes, but server & Android app sends 0..256 bytes)
---
src/Client.cs | 4 ++--
src/WTelegramClient.csproj | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/Client.cs b/src/Client.cs
index dd3835e..a37705c 100644
--- a/src/Client.cs
+++ b/src/Client.cs
@@ -392,7 +392,7 @@ namespace WTelegram
if ((msgId & 1) == 0) throw new WTException($"Invalid server msgId {msgId}");
int length = reader.ReadInt32();
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}");
var obj = reader.ReadTLObject();
@@ -1283,7 +1283,7 @@ namespace WTelegram
}
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);
writer.Write(padding);
}
diff --git a/src/WTelegramClient.csproj b/src/WTelegramClient.csproj
index 0fade3e..2544f37 100644
--- a/src/WTelegramClient.csproj
+++ b/src/WTelegramClient.csproj
@@ -23,7 +23,7 @@
git
Telegram;MTProto;Client;Api;UserBot;TLSharp
README.md
- $(ReleaseNotes.Replace("\"", "%22").Replace("|", "%0D%0A").Replace(" - ","%0D%0A- ").Replace(" ", "%0D%0A%0D%0A"))
+ $(ReleaseNotes.Replace("\"", "''").Replace("|", "%0D%0A").Replace(" - ","%0D%0A- ").Replace(" ", "%0D%0A%0D%0A"))
0419;1573;1591;NETSDK1138
TRACE;OBFUSCATION