コード例 #1
0
ファイル: gerenciaServlet.cs プロジェクト: burnermanx/sacis
        ///<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);
        }
コード例 #2
0
        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;
            }
        }