mirror of
https://github.com/sochix/TLSharp.git
synced 2026-01-04 15:59:58 +01:00
.
This commit is contained in:
parent
7bca8302a3
commit
b9101b46da
|
|
@ -83,6 +83,7 @@ namespace TlgListenerApplication
|
|||
uint responseCode = 0;
|
||||
const uint step1Constructor = 0x60469778;
|
||||
const uint step2Constructor = 0xd712e4be;
|
||||
const uint step3Constructor = 0xf5045f1f;
|
||||
|
||||
if (netStream.CanRead)
|
||||
{
|
||||
|
|
@ -122,7 +123,7 @@ namespace TlgListenerApplication
|
|||
|
||||
if (netStream.CanWrite)
|
||||
{
|
||||
|
||||
|
||||
var fingerprint = StringToByteArray("216be86c022bb4c3");
|
||||
|
||||
byte[] outputdata = null;
|
||||
|
|
@ -140,13 +141,13 @@ namespace TlgListenerApplication
|
|||
}
|
||||
else if (responseCode == step2Constructor)
|
||||
{
|
||||
var newnonce = new byte[32];
|
||||
var newnonce = new byte[16];
|
||||
new Random().NextBytes(newnonce);
|
||||
|
||||
byte[] answer;
|
||||
var hashsum = Encoding.UTF8.GetBytes("asdfghjklmnbvcxzasdf");
|
||||
const uint innerCode = 0xb5890dba;
|
||||
AESKeyData key = AES.GenerateKeyDataFromNonces(nonceFromClient, newnonce);
|
||||
AESKeyData key = AES.GenerateKeyDataFromNonces(newnonce, newnonce);
|
||||
using (var memoryStream = new MemoryStream())
|
||||
{
|
||||
using (var binaryWriter = new BinaryWriter(memoryStream))
|
||||
|
|
@ -170,6 +171,23 @@ namespace TlgListenerApplication
|
|||
EncryptedAnswer = AES.EncryptAES(key, answer)
|
||||
}.ToBytes();
|
||||
}
|
||||
else if (responseCode == step3Constructor)
|
||||
{
|
||||
var newnonce = new byte[16];
|
||||
new Random().NextBytes(newnonce);
|
||||
const uint innerCode = 0x3bcbf734;
|
||||
using (var memoryStream = new MemoryStream())
|
||||
{
|
||||
using (var binaryWriter = new BinaryWriter(memoryStream))
|
||||
{
|
||||
binaryWriter.Write(innerCode);
|
||||
binaryWriter.Write(newnonce);
|
||||
binaryWriter.Write(nonceFromClient);
|
||||
binaryWriter.Write(newnonce);
|
||||
outputdata = memoryStream.ToArray();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var bytes = PrepareToSend(outputdata);
|
||||
var datatosend = Encode(bytes, 11);
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@ namespace TLSharp.Core.Auth
|
|||
|
||||
public byte[] ToBytes()
|
||||
{
|
||||
new Random().NextBytes(Nonce);
|
||||
const uint constructorNumber = 0xd0e8075c;
|
||||
|
||||
using (var memoryStream = new MemoryStream())
|
||||
|
|
@ -25,7 +24,8 @@ namespace TLSharp.Core.Auth
|
|||
binaryWriter.Write(constructorNumber);
|
||||
binaryWriter.Write(ServerNonce);
|
||||
binaryWriter.Write(Nonce);
|
||||
binaryWriter.Write(EncryptedAnswer);
|
||||
//binaryWriter.Write(EncryptedAnswer);
|
||||
Serializers.Bytes.write(binaryWriter, EncryptedAnswer);
|
||||
|
||||
return memoryStream.ToArray();
|
||||
}
|
||||
|
|
@ -152,7 +152,7 @@ namespace TLSharp.Core.Auth
|
|||
EncryptedAnswer = encryptedAnswer,
|
||||
ServerNonce = serverNonceFromServer,
|
||||
Nonce = nonceFromServer,
|
||||
NewNonce = newNonce
|
||||
NewNonce = serverNonceFromServer
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using TLSharp.Core.MTProto;
|
||||
using TLSharp.Core.MTProto.Crypto;
|
||||
|
||||
|
|
@ -11,7 +12,6 @@ namespace TLSharp.Core.Auth
|
|||
{
|
||||
public AuthKey AuthKey { get; set; }
|
||||
public int TimeOffset { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class Step3_CompleteDHExchange
|
||||
|
|
@ -37,6 +37,7 @@ namespace TLSharp.Core.Auth
|
|||
using (BinaryReader dhInnerDataReader = new BinaryReader(dhInnerData))
|
||||
{
|
||||
byte[] hashsum = dhInnerDataReader.ReadBytes(20);
|
||||
var hashsumstr = Encoding.UTF8.GetString(hashsum);
|
||||
uint code = dhInnerDataReader.ReadUInt32();
|
||||
if (code != 0xb5890dba)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue