Esempio n. 1
0
        public override void ModuleMessage(IRpcController controller, ModuleMessageRequest request, Action <NoData> done)
        {
            var moduleId = request.ModuleId;

            var message = request.Message.ToByteArray();
            var command = message[0];

            done(new NoData.Builder().Build());

            if (moduleId == 0 && command == 2)
            {
                byte[] A    = message.Skip(1).Take(128).ToArray();
                byte[] M1   = message.Skip(1 + 128).Take(32).ToArray();
                byte[] seed = message.Skip(1 + 32 + 128).Take(128).ToArray();

                if (srp.Verify(A, M1, seed))
                {
                    var moduleMessagedRequest = new ModuleMessageRequest.Builder
                    {
                        ModuleId = moduleId,
                        Message  = ByteString.CopyFrom(srp.LogonProof)
                    }.Build();

                    AuthenticationClient.CreateStub(client).ModuleMessage(controller, moduleMessagedRequest, ClientServiceCallback);
                }
                else
                {
                    client.ListenerId = 0;
                    client.ErrorCode  = AuthError.InvalidCredentials;
                }

                wait.Set();
            }
        }
Esempio n. 2
0
        public override void ModuleMessage(IRpcController controller, ModuleMessageRequest request, Action<NoData> done)
        {
            var moduleId = request.ModuleId;

            var message = request.Message.ToByteArray();
            var command = message[0];

            done(new NoData.Builder().Build());

            if (moduleId == 0 && command == 2)
            {
                byte[] A = message.Skip(1).Take(128).ToArray();
                byte[] M1 = message.Skip(1 + 128).Take(32).ToArray();
                byte[] seed = message.Skip(1 + 32 + 128).Take(128).ToArray();

                if (srp.Verify(A, M1, seed))
                {
                    var moduleMessagedRequest = new ModuleMessageRequest.Builder
                    {
                        ModuleId = moduleId,
                        Message = ByteString.CopyFrom(srp.LogonProof)
                    }.Build();

                    AuthenticationClient.CreateStub(client).ModuleMessage(controller, moduleMessagedRequest, ClientServiceCallback);
                }
                else
                {
                    client.ListenerId = 0;
                    client.ErrorCode = AuthError.InvalidCredentials;
                }

                wait.Set();
            }
        }