///<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 verificaMensagemCriptografada(int id) { try { bool verifica = false; string sql = "select loginusuario, tipo from mensagem where id = " + id + ";"; DataTable data = retornaDataTableSql(sql); if (data.Rows.Count > 0) { string login = data.Rows[0][data.Columns[0]].ToString(); string tipo = data.Rows[0][data.Columns[1]].ToString(); string caminho = CAMINHO_SERVER + "\\" + login + "\\" + tipo + "\\" + id + ".msg"; string xml = manipulaArquivo.leArquivoTexto(caminho); mensagem msg = serial.Deserializar(xml, typeof(mensagem)) as mensagem; if (msg.getCriptografar()) { verifica = true; } else { verifica = false; } } return(verifica); } catch (excecao.excecao except) { throw except; } }