mirror of
https://github.com/sochix/TLSharp.git
synced 2025-12-06 08:02:00 +01:00
38 lines
969 B
C#
38 lines
969 B
C#
using System.Threading.Tasks;
|
|
using TLSharp.Core.Network;
|
|
|
|
namespace TLSharp.Core.Auth
|
|
{
|
|
public static class Authenticator
|
|
{
|
|
public static async Task<Step3_Response> DoAuthentication(TcpTransport transport)
|
|
{
|
|
var sender = new MtProtoPlainSender(transport);
|
|
var step1 = new Step1_PQRequest();
|
|
|
|
await sender.Send(step1.ToBytes());
|
|
var step1Response = step1.FromBytes(await sender.Recieve());
|
|
|
|
var step2 = new Step2_DHExchange();
|
|
await sender.Send(step2.ToBytes(
|
|
step1Response.Nonce,
|
|
step1Response.ServerNonce,
|
|
step1Response.Fingerprints,
|
|
step1Response.Pq));
|
|
|
|
var step2Response = step2.FromBytes(await sender.Recieve());
|
|
|
|
var step3 = new Step3_CompleteDHExchange();
|
|
await sender.Send(step3.ToBytes(
|
|
step2Response.Nonce,
|
|
step2Response.ServerNonce,
|
|
step2Response.NewNonce,
|
|
step2Response.EncryptedAnswer));
|
|
|
|
var step3Response = step3.FromBytes(await sender.Recieve());
|
|
|
|
return step3Response;
|
|
}
|
|
}
|
|
}
|