public override async void ChannelActive(IChannelHandlerContext context) { base.ChannelActive(context); if (ClientSettings.ClientSession.AuthKey == null) { Log.Info($"#{ClientSettings.ClientSession.SessionId}: Try do authentication"); var step1 = Step1ClientHelper.GetRequest(); _nonce = step1.Nonce; await context.WriteAndFlushAsync(step1); } }
public void SimpleTest() { var request = Step1ClientHelper.GetRequest(); var publicKeyFingerPrint = RSAHelper.GetFingerprint(PublicKey); var resPq = Step1ServerHelper.GetResponse(request.Nonce, publicKeyFingerPrint, out var p, out var q, out var serverNonce); var reqDhParams = Step2ClientHelper.GetRequest(resPq, PublicKey, out var newNonceFromClient); var serverDhParams = Step2ServerHelper.GetResponse(reqDhParams, PrivateKey, out var parameters, out var newNonceFromServer); Assert.Equal(newNonceFromClient, newNonceFromServer); var setClientDhParams = Step3ClientHelper.GetRequest((TServerDHParamsOk)serverDhParams, newNonceFromClient, out var clientAgree, out var serverTime); var setClientDhParamsAnswer = Step3ServerHelper.GetResponse(setClientDhParams, newNonceFromClient, parameters, out var serverAgree, out var serverSalt); Assert.Equal(serverAgree.ToByteArray(), clientAgree); }