Example #1
0
        public string abreAnexo(string nomeArq, int id)
        {
            try
            {
                string sql = "select loginusuario, tipo from mensagem where id = " + id + ";";

                DataTable data = retornaDataTableSql(sql);

                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;

                anexo anexoFinal = new anexo();

                foreach (anexo a in msg.anexos)
                {
                    if (a.getNome().Equals(nomeArq))
                    {
                        anexoFinal = a;
                    }
                }

                return serial.serializarObjeto(anexoFinal);
            }
            catch (excecao.excecao except)
            {
                throw except;
            }
        }
Example #2
0
        /*
        ///<summary>
        ///
        /// Método que retorna a assinatura da mensagem
        ///
        ///</summary>
        private static String assinaMensagem(string caminho, string mensagem) {

            return assimetrica.assinaTexto(caminho, mensagem);

        }
        */
        ///<summary>
        ///
        /// Método que retorna o conteudo do anexo da mensagem cifrado ou não
        ///
        ///</summary>
        private static anexo retornaConteudoAnexo(string s, bool cripto, string destinatario)
        {
            byte[] conteudoByte = manipulaArquivo.arquivoLeOriginal(s);
            string conteudo = serial.serializarObjeto(conteudoByte);
            string nome = manipulaString.retornaNomeArquivo(s).Trim();
            string nomeCodificado;
            string chave = "";
            anexo next;
            string caminhoChave = CAMINHO_TEMP + destinatario + EXTENSAO;
            nome = uniformizaAnexos(nome);

            if (cripto)
            {
                nomeCodificado = manipulaString.mudaExtensaoArquivo(nome);
                string conteudocifrado = simetrica.cifraAnexos(conteudo);
                string conteudoHexa = simetrica.convertToHexa(conteudocifrado);

                chave = simetrica.getChave();

                string chaveDestinatario = WService.retornaChavePublica(destinatario);
                manipulaArquivo.criaArquivoTexto(caminhoChave, chaveDestinatario);

                string conteudoChaveCifrada = assimetrica.cifraAssimetrica(caminhoChave, chave);
                string chaveHexa = simetrica.convertToHexa(conteudoChaveCifrada);
                next = new anexo(nomeCodificado, cripto, chaveHexa, conteudoHexa);
            }
            else
            {
                string conteudoHexa = simetrica.convertToHexa(conteudo);
                next = new anexo(nome, cripto, chave, conteudoHexa);
            }

            return next;
        }