Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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);
        }