Exemple #1
0
        private bool conexionSegunda()
        {
            string msg, response;

            PostBox post = new PostBox(this._source, this._destination, Constants.MENSAJE_CONEXION_B, this._keyPair, this._publicKeyClient, this._symmetricKey);

            msg = post.ProcesarEnvioConexion();

            //Creo el cliente y le envio el mensaje
            Client c        = new Client();
            bool   conexion = c.comprobarConexion(Constants.GATEKEEPER);

            if (conexion)
            {
                response = c.StartClient(msg, Constants.GATEKEEPER);

                //Proceso la respuesta
                post.ProcesarRespuestaConexion(response);

                this._connection = new PipeMessage(this._auxiliarConexion.MessageRequest, this._auxiliarConexion.MessageResponse, post.MessageRequest, post.MessageResponse, post.PublicKeyClient, this._symmetricKey);
                return(true);
            }
            else
            {
                return(false);
            }
        }
Exemple #2
0
        private void AddValues()
        {
            foreach (var neigh in this._messages)
            {
                foreach (var tupla in neigh.Value)
                {
                    foreach (var dictMensaje in tupla.Item3)
                    {
                        PipeMessage p        = dictMensaje.Value;
                        Message     enviado  = p.MessageRequest;
                        Message     recibido = p.MessageResponse;
                        this._messagesView.AppendValues(enviado.Source, enviado.Destination,
                                                        enviado.MessageType, enviado.Db_type, enviado.Db_name);
                        this._messagesView.AppendValues(recibido.Source, recibido.Destination,
                                                        recibido.MessageType, recibido.Db_type, recibido.Db_name);

                        if (p.MessageRequestConexion != null)
                        {
                            Message enviadoConexion  = p.MessageRequestConexion;
                            Message recibidoConexion = p.MessageResponseConexion;
                            this._messagesView.AppendValues(enviadoConexion.Source, enviadoConexion.Destination, enviadoConexion.MessageType == null ? "" : enviadoConexion.MessageType, enviadoConexion.Db_type, enviadoConexion.Db_name);
                            this._messagesView.AppendValues(recibidoConexion.Source, recibidoConexion.Destination, recibidoConexion.MessageType == null ? "" : recibidoConexion.MessageType, recibidoConexion.Db_type, recibidoConexion.Db_name);
                        }
                    }
                }
            }
        }
Exemple #3
0
        /*
         * Constructor del diálogo de conexión
         * */
        public ConnectionDialog(string source, string destination, string db_type, string db_name, Cripto keyPair)
        {
            this.Build();

            this._source      = source;
            this._destination = destination;
            this._db_name     = db_name;
            this._db_type     = db_type;
            this._body        = new XmlDocument();
            this._typeOutPut  = Constants.CANCEL;
            this._keyPair     = keyPair;

            this._connection = new PipeMessage();
            this._schema     = new PipeMessage();
            this._select     = new PipeMessage();

            buttonEsquema.Sensitive = false;
            buttonSelect.Sensitive  = false;
        }
Exemple #4
0
        private Message BuscarMensaje(Tuple <string, string, string, string, string> tuplaBuscar)
        {
            Message m = null;

            foreach (var neigh in this._messages)
            {
                foreach (var tupla in neigh.Value)
                {
                    foreach (var dictMensaje in tupla.Item3)
                    {
                        PipeMessage p        = dictMensaje.Value;
                        Message     enviado  = p.MessageRequest;
                        Message     recibido = p.MessageResponse;
                        if (ComprobacionMensaje(tuplaBuscar, enviado))
                        {
                            return(enviado);
                        }
                        else if (ComprobacionMensaje(tuplaBuscar, recibido))
                        {
                            return(recibido);
                        }
                        if (p.MessageRequestConexion != null)
                        {
                            enviado  = p.MessageRequestConexion;
                            recibido = p.MessageResponseConexion;
                            if (ComprobacionMensaje(tuplaBuscar, enviado))
                            {
                                return(enviado);
                            }
                            else if (ComprobacionMensaje(tuplaBuscar, recibido))
                            {
                                return(recibido);
                            }
                        }
                    }
                }
            }

            return(m);
        }
Exemple #5
0
        /*
         * Constructor del diálogo de conexión
         * */
        public ConnectionDialog(string source, string destination, string db_type, string db_name,
                                PipeMessage pipeConexion, PipeMessage pipeSchema, Cripto keyPair)
        {
            this.Build();

            this._source      = source;
            this._destination = destination;
            this._db_name     = db_name;
            this._db_type     = db_type;
            this._body        = new XmlDocument();
            this._typeOutPut  = Constants.CANCEL;
            this._keyPair     = keyPair;

            this._connection = pipeConexion;
            this._schema     = pipeSchema;
            this._select     = new PipeMessage();

            //Activar o desactivar los botones
            if (pipeConexion == null)
            {
                buttonEsquema.Sensitive = false;
                buttonSelect.Sensitive  = false;
            }
            else
            {
                buttonConexion.Sensitive = false;
                buttonEsquema.Sensitive  = true;
            }

            if (pipeSchema == null)
            {
                buttonSelect.Sensitive = false;
            }
            else
            {
                buttonConexion.Sensitive = false;
                buttonSelect.Sensitive   = true;
            }
        }
Exemple #6
0
        /*
         * Método evento para solicitar esquema BBDD. BOTON ESQUEMA
         * */
        protected void OnSchemaPngActionActivated(object sender, EventArgs e)
        {
            TreeIter t;
            TreePath p = treeviewDatabases.Selection.GetSelectedRows()[0];

            this._infoBBDDView.GetIter(out t, p);

            string usuarioDestino = (string)this._infoBBDDView.GetValue(t, 0);
            string tipoBBDD       = (string)this._infoBBDDView.GetValue(t, 1);
            string nombreBBDD     = (string)this._infoBBDDView.GetValue(t, 2);

            //Comprobamos que está el usuario y si la tupla que tiene es del mismo (tipoBBDD,nombreBBDD)
            if (this._messages.ContainsKey(usuarioDestino))
            {
                Tuple <string, string, Dictionary <string, PipeMessage> > tupla = DevuelveTupla(usuarioDestino, tipoBBDD, nombreBBDD);

                if (tupla == null)
                {
                    Tuple <string, string, Dictionary <string, PipeMessage> > firstTupla = DevuelvePrimeraTupla(usuarioDestino);
                    int index = this._messages[usuarioDestino].IndexOf(firstTupla);

                    PipeMessage pipeConexion = this._messages[usuarioDestino][index].Item3[Constants.CONNECTION];

                    this._connectionDialog = new ConnectionDialog(this._user.Nombre, usuarioDestino, tipoBBDD, nombreBBDD, pipeConexion, this._claves);
                }
                else
                {
                    int index = this._messages[usuarioDestino].IndexOf(tupla);

                    if (!ComprobarTuplaConSchema(usuarioDestino, tipoBBDD, nombreBBDD))
                    {
                        PipeMessage pipeConexion = this._messages[usuarioDestino][index].Item3[Constants.CONNECTION];

                        this._connectionDialog = new ConnectionDialog(this._user.Nombre, usuarioDestino, tipoBBDD, nombreBBDD, pipeConexion, this._claves);
                    }
                }
            }

            this._connectionDialog.Run();

            switch (this._connectionDialog.TypeOutPut)
            {
            case Constants.CANCEL:

                break;

            case Constants.MENSAJE_ESQUEMA:

                if (!ComprobarTuplaConSchema(usuarioDestino, tipoBBDD, nombreBBDD))
                {
                    Tuple <string, string, Dictionary <string, PipeMessage> > tuplaa = DevuelveTupla(usuarioDestino, tipoBBDD, nombreBBDD);

                    if (tuplaa != null)
                    {
                        //Añadimos un nuevo pipeMessage a la tupla existente
                        int indexx = this._messages[usuarioDestino].IndexOf(tuplaa);
                        this._messages[usuarioDestino][indexx].Item3.Add(Constants.SCHEMA, this._connectionDialog.Schema);
                    }
                    else
                    {
                        Tuple <string, string, Dictionary <string, PipeMessage> > tuplaDiferente = DevuelvePrimeraTupla(usuarioDestino);

                        //Añadimos una nueva tupla
                        Dictionary <string, PipeMessage> diccionarioNuevo = new Dictionary <string, PipeMessage>();
                        //diccionarioNuevo.Add(Constants.CONNECTION, tuplaDiferente.Item3[Constants.CONNECTION]);
                        diccionarioNuevo.Add(Constants.SCHEMA, this._connectionDialog.Schema);
                        Tuple <string, string, Dictionary <string, PipeMessage> > tuplaNueva = new Tuple <string, string, Dictionary <string, PipeMessage> >(tipoBBDD, nombreBBDD, diccionarioNuevo);
                        this._messages[usuarioDestino].Add(tuplaNueva);
                    }
                }

                MostrarSolicitudEsquema(this._connectionDialog.Schema.MessageRequest);
                MostrarEsquema(this._connectionDialog.Schema.MessageResponse);
                break;

            case Constants.ERROR_CONNECTION:
                MostrarError(this._connectionDialog.TypeOutPut);
                break;
            }
        }
Exemple #7
0
        /*
         * Método evento para solicitar consulta BBDD. BOTON SELECT
         * */
        protected void OnSelectPngActionActivated(object sender, EventArgs e)
        {
            TreeIter t;
            TreePath p = treeviewDatabases.Selection.GetSelectedRows()[0];

            this._infoBBDDView.GetIter(out t, p);


            string usuarioDestino = (string)this._infoBBDDView.GetValue(t, 0);
            string tipoBBDD       = (string)this._infoBBDDView.GetValue(t, 1);
            string nombreBBDD     = (string)this._infoBBDDView.GetValue(t, 2);

            //Comprobamos que está el usuario y si la tupla que tiene es del mismo (tipoBBDD,nombreBBDD)
            if (this._messages.ContainsKey(usuarioDestino))
            {
                Tuple <string, string, Dictionary <string, PipeMessage> > tupla = DevuelveTupla(usuarioDestino, tipoBBDD, nombreBBDD);

                if (tupla != null)
                {
                    int index = this._messages[usuarioDestino].IndexOf(tupla);

                    if (ComprobarTuplaConSchema(usuarioDestino, tipoBBDD, nombreBBDD))
                    {
                        PipeMessage pipeConexion = null;
                        if (this._messages[usuarioDestino][index].Item3.ContainsKey(Constants.CONNECTION))
                        {
                            pipeConexion = this._messages[usuarioDestino][index].Item3[Constants.CONNECTION];
                        }
                        else
                        {
                            Tuple <string, string, Dictionary <string, PipeMessage> > tuplaAuxiliar = DevuelveTupla(usuarioDestino, null, null);

                            int indexAuxiliar = this._messages[usuarioDestino].IndexOf(tuplaAuxiliar);
                            pipeConexion = this._messages[usuarioDestino][indexAuxiliar].Item3[Constants.CONNECTION];
                        }
                        PipeMessage pipeSchema = this._messages[usuarioDestino][index].Item3[Constants.SCHEMA];

                        this._connectionDialog = new ConnectionDialog(this._user.Nombre,
                                                                      usuarioDestino, tipoBBDD, nombreBBDD, pipeConexion, pipeSchema, this._claves);
                    }
                }
            }

            this._connectionDialog.Run();

            switch (this._connectionDialog.TypeOutPut)
            {
            case Constants.CANCEL:

                break;

            case Constants.MENSAJE_CONSULTA:
                Tuple <string, string, Dictionary <string, PipeMessage> > tupla = DevuelveTupla(usuarioDestino, tipoBBDD, nombreBBDD);

                int index = this._messages[usuarioDestino].IndexOf(tupla);
                if (this._messages[usuarioDestino][index].Item3.ContainsKey(Constants.SELECT))
                {
                    this._messages[usuarioDestino][index].Item3[Constants.SELECT] = this._connectionDialog.Select;
                }
                else
                {
                    this._messages[usuarioDestino][index].Item3.Add(Constants.SELECT, this._connectionDialog.Select);
                }

                MostrarSolicitudConsulta(this._connectionDialog.Select.MessageRequest);
                MostrarResultadoConsulta(this._connectionDialog.Select.MessageRequest, this._connectionDialog.Select.MessageResponse);

                break;

            case Constants.ERROR_CONNECTION:
                MostrarError(this._connectionDialog.TypeOutPut);
                break;
            }
        }