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(); } }
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(); } }