Ejemplo n.º 1
0
        ///<summary>
        ///
        /// Método para buscar a mensagem do usuario
        ///
        ///</summary>
        public static preMensagem buscaMensagem(int id, string caminhoChavePrivada)
        {
            string      xml = WService.buscaMensagem(id);
            mensagem    msg = serial.Deserializar(xml, typeof(mensagem)) as mensagem;
            preMensagem pmsg;

            HashSet <string> cripto = new HashSet <string>();
            HashSet <string> plain  = new HashSet <string>();

            foreach (anexo a in msg.anexos)
            {
                if (a.getCripto())
                {
                    cripto.Add(a.getNome());
                }
                else
                {
                    plain.Add(a.getNome());
                }
            }

            if (msg.getCriptografar())
            {
                string conteudoCifrado = simetrica.convertToString(msg.getTexto());
                string conteudo        = simetrica.decifraMensagem(conteudoCifrado, caminhoChavePrivada);
                msg.setTexto(conteudo);
            }

            if (msg.getAssinar())
            {
                string conteudoChave = WService.retornaChavePublica(msg.getDe());
                string caminhoChave  = CAMINHO_TEMP + msg.getDe() + EXTENSAO;
                manipulaArquivo.criaArquivoTexto(caminhoChave, conteudoChave);
                bool textoOk = assimetrica.verificaAssinatura(caminhoChave, msg.getAssinatura(), msg.getTexto());

                if (textoOk)
                {
                    pmsg = new preMensagem(msg.getDe(), msg.getPara(), msg.getAssunto(), msg.getTexto(), msg.getCriptografar(), msg.getAssinar(), cripto, plain);
                    return(pmsg);
                }
                else
                {
                    throw new excecao(MSG_ERRO_ABRIR);
                }
            }

            pmsg = new preMensagem(msg.getDe(), msg.getPara(), msg.getAssunto(), msg.getTexto(), msg.getCriptografar(), msg.getAssinar(), cripto, plain);
            return(pmsg);
        }
Ejemplo n.º 2
0
        public bool enviaMensagem(string xml)
        {
            try{
                mensagem mensagem = serial.Deserializar(xml, typeof(mensagem)) as mensagem;

                string caminhoDestinatario  = CAMINHO_SERVER + mensagem.getPara() + ENTRADA + "\\";
                string caminhoRemetente     = CAMINHO_SERVER + mensagem.getDe() + ENVIADOS + "\\";
                string caminhoRemetenteErro = CAMINHO_SERVER + mensagem.getDe() + ENTRADA + "\\";
                string INSERT = "INSERT INTO mensagem(id, loginusuario, assunto, lida, logremdest, tipo, data, tamanho, listadestinatarios)VALUES";

                MySqlConnection conecta = conectaMysql.conectaMSQL();
                conecta.Open();

                string       sql   = "select id from seq_mensagem;";
                MySqlCommand exec  = new MySqlCommand(sql, conecta);
                string       maxId = exec.ExecuteScalar().ToString();
                int          id    = Convert.ToInt16(maxId) + 1;

                sql = "Update seq_mensagem set id = " + id + ";";
                new MySqlCommand(sql, conecta).ExecuteNonQuery();

                if (mensagem.getDe() == mensagem.getPara())
                {
                    sql = INSERT + "(" + id + ",'" + mensagem.getDe() + "','" + mensagem.getAssunto() + "'," + 1 + ",'" + mensagem.getPara() + "','ENVIADOS', now()," + xml.Length + ",'" + mensagem.getListaDestinatarios() + "');";
                    manipulaArquivo.criaArquivoTexto(caminhoRemetente + id + ".msg", xml);
                }
                else
                {
                    sql = INSERT + "(" + id + ",'" + mensagem.getPara() + "','" + mensagem.getAssunto() + "', 0 ,'" + mensagem.getDe() + "','ENTRADA', now()," + xml.Length + ",'" + mensagem.getListaDestinatarios() + "');";
                    manipulaArquivo.criaArquivoTexto(caminhoDestinatario + id + ".msg", xml);
                }

                new MySqlCommand(sql, conecta).ExecuteNonQuery();

                conectaMysql.desconectaMSQL();
                return(true);
            }catch (excecao.excecao except)
            {
                throw except;
            }
        }