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