diff --git a/TLSharp.Core/Network/MtProtoSender.cs b/TLSharp.Core/Network/MtProtoSender.cs
index f7d9dc9..98dd95c 100644
--- a/TLSharp.Core/Network/MtProtoSender.cs
+++ b/TLSharp.Core/Network/MtProtoSender.cs
@@ -18,6 +18,8 @@ namespace TLSharp.Core.Network
{
//private ulong sessionId = GenerateRandomUlong();
+ private static NLog.Logger logger = NLog.LogManager.GetLogger("MTProto");
+
private readonly uint UpdatesTooLongID = (uint) new TeleSharp.TL.TLUpdatesTooLong ().Constructor;
private TcpTransport _transport;
@@ -88,7 +90,9 @@ namespace TLSharp.Core.Network
plaintextWriter.Write(packet.Length);
plaintextWriter.Write(packet);
- msgKey = Helpers.CalcMsgKey(plaintextPacket.GetBuffer());
+ var buffer = plaintextPacket.GetBuffer();
+ logger.Debug(Sniffer.MessageOut(buffer));
+ msgKey = Helpers.CalcMsgKey(buffer);
ciphertext = AES.EncryptAES(Helpers.CalcKey(_session.AuthKey.Data, msgKey, true), plaintextPacket.GetBuffer());
}
}
@@ -123,6 +127,7 @@ namespace TLSharp.Core.Network
AESKeyData keyData = Helpers.CalcKey(_session.AuthKey.Data, msgKey, false);
byte[] plaintext = AES.DecryptAES(keyData, inputReader.ReadBytes((int)(inputStream.Length - inputStream.Position)));
+ logger.Debug(Sniffer.MessageIn(plaintext));
using (MemoryStream plaintextStream = new MemoryStream(plaintext))
using (BinaryReader plaintextReader = new BinaryReader(plaintextStream))
diff --git a/TLSharp.Core/Network/Sniffer.cs b/TLSharp.Core/Network/Sniffer.cs
new file mode 100644
index 0000000..e80a105
--- /dev/null
+++ b/TLSharp.Core/Network/Sniffer.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Text;
+
+namespace TLSharp.Core.Network
+{
+ public static class Sniffer
+ {
+ public static string MessageOut(byte[] data)
+ {
+ return WriteMessage(new StringBuilder("[OUT]:"), data);
+ }
+
+ public static string MessageIn(byte[] data)
+ {
+ return WriteMessage(new StringBuilder("[IN]:"), data);
+ }
+
+ private static string WriteMessage(StringBuilder log, byte[] data)
+ {
+ foreach (var b in data)
+ log.AppendFormat(" {:x2}", b);
+ return log.ToString();
+ }
+ }
+}
diff --git a/TLSharp.Core/TLSharp.Core.csproj b/TLSharp.Core/TLSharp.Core.csproj
index fbef942..7cca179 100644
--- a/TLSharp.Core/TLSharp.Core.csproj
+++ b/TLSharp.Core/TLSharp.Core.csproj
@@ -42,6 +42,9 @@
+
+ ..\..\packages\NLog.4.4.12\lib\net45\NLog.dll
+
@@ -68,6 +71,7 @@
+
diff --git a/TLSharp.Core/packages.config b/TLSharp.Core/packages.config
index 204475c..518c7dc 100644
--- a/TLSharp.Core/packages.config
+++ b/TLSharp.Core/packages.config
@@ -1,4 +1,5 @@
+
\ No newline at end of file