Ejemplo n.º 1
0
 /// <summary>
 ///     Converte o objeto retConsSitCTe para uma string no formato XML
 /// </summary>
 /// <param name="retConsSitCTe"></param>
 /// <returns>Retorna uma string no formato XML com os dados do objeto retConsSitCTe</returns>
 public static string ObterXmlString(this retConsSitCTe retConsSitCTe)
 {
     return(FuncoesXml.ClasseParaXmlString(retConsSitCTe));
 }
Ejemplo n.º 2
0
        /// <summary>
        ///     Obtém a assinatura de um objeto serializável
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="objeto"></param>
        /// <param name="id"></param>
        /// <param name="certificadoDigital">Informe o certificado digital</param>
        /// <param name="manterDadosEmCache">Validador para manter o certificado em cache</param>
        /// <param name="signatureMethod"></param>
        /// <param name="digestMethod"></param>
        /// <param name="cfgServicoRemoverAcentos"></param>
        /// <returns>Retorna um objeto do tipo Classes.Assinatura.Signature, contendo a assinatura do objeto passado como parâmetro</returns>
        public static Signature ObterAssinatura <T>(T objeto, string id, X509Certificate2 certificadoDigital,
                                                    bool manterDadosEmCache = false, string signatureMethod = "http://www.w3.org/2000/09/xmldsig#rsa-sha1",
                                                    string digestMethod     = "http://www.w3.org/2000/09/xmldsig#sha1", bool cfgServicoRemoverAcentos = false) where T : class
        {
            var objetoLocal = objeto;

            if (id == null)
            {
                throw new Exception("Não é possível assinar um objeto evento sem sua respectiva Id!");
            }

            try
            {
                var documento = new XmlDocument {
                    PreserveWhitespace = true
                };
                var xml = cfgServicoRemoverAcentos
                    ? FuncoesXml.ClasseParaXmlString(objetoLocal).RemoverAcentos()
                    : FuncoesXml.ClasseParaXmlString(objetoLocal);

                documento.LoadXml(xml);

                var docXml = new SignedXml(documento)
                {
                    SigningKey = certificadoDigital.PrivateKey
                };

                docXml.SignedInfo.SignatureMethod = signatureMethod;

                var reference = new Reference {
                    Uri = "#" + id, DigestMethod = digestMethod
                };

                // adicionando EnvelopedSignatureTransform a referencia
                var envelopedSigntature = new XmlDsigEnvelopedSignatureTransform();
                reference.AddTransform(envelopedSigntature);

                var c14Transform = new XmlDsigC14NTransform();
                reference.AddTransform(c14Transform);

                docXml.AddReference(reference);

                // carrega o certificado em KeyInfoX509Data para adicionar a KeyInfo
                var keyInfo = new KeyInfo();
                keyInfo.AddClause(new KeyInfoX509Data(certificadoDigital));

                docXml.KeyInfo = keyInfo;
                docXml.ComputeSignature();

                //// recuperando a representação do XML assinado
                var xmlDigitalSignature = docXml.GetXml();
                var assinatura          = FuncoesXml.XmlStringParaClasse <Signature>(xmlDigitalSignature.OuterXml);
                return(assinatura);
            }
            finally
            {
                //Marcos Gerene 04/08/2018 - o objeto certificadoDigital nunca será nulo, porque se ele for nulo nem as configs para criar ele teria.

                //Se não mantém os dados do certificado em cache libera o certificado, chamando o método reset.
                //if (!manterDadosEmCache & certificadoDigital == null)
                //     certificadoDigital.Reset();
            }
        }
 public static string XmlString(this MDFeConsSitMDFe consSitMdfe)
 {
     return(FuncoesXml.ClasseParaXmlString(consSitMdfe));
 }
Ejemplo n.º 4
0
 /// <summary>
 ///     Converte o objeto NFe para uma string no formato XML
 /// </summary>
 /// <param name="nfe"></param>
 /// <returns>Retorna uma string no formato XML com os dados da NFe</returns>
 public static string ObterXmlString(this Classes.NFe nfe)
 {
     return(FuncoesXml.ClasseParaXmlString(nfe));
 }
Ejemplo n.º 5
0
 /// <summary>
 ///     Recebe um objeto envEvento e devolve a string no formato XML
 /// </summary>
 /// <param name="pedEvento">Objeto do tipo envEvento</param>
 /// <returns>string com XML no do objeto envEvento</returns>
 public static string ObterXmlString(this envEvento pedEvento)
 {
     return(FuncoesXml.ClasseParaXmlString(pedEvento));
 }
Ejemplo n.º 6
0
 /// <summary>
 ///     Converte o objeto consSitNFe para uma string no formato XML
 /// </summary>
 /// <param name="pedConsulta"></param>
 /// <returns>Retorna uma string no formato XML com os dados do objeto consSitNFe</returns>
 public static string ObterXmlString(this consSitNFe pedConsulta)
 {
     return(FuncoesXml.ClasseParaXmlString(pedConsulta));
 }
Ejemplo n.º 7
0
 /// <summary>
 ///     Converte um objeto do tipo retEnvEvento para uma string no formato XML com os dados do objeto
 /// </summary>
 /// <param name="retEnvEvento"></param>
 /// <returns>Retorna uma string no formato XML com os dados do objeto retEnvEvento</returns>
 public static string ObterXmlString(this retEnvEvento retEnvEvento)
 {
     return(FuncoesXml.ClasseParaXmlString(retEnvEvento));
 }
Ejemplo n.º 8
0
 /// <summary>
 ///     Converte um objeto do tipo retDownloadNFe para uma string no formato XML com os dados do objeto
 /// </summary>
 /// <param name="retDownloadNFe"></param>
 /// <returns>Retorna uma string no formato XML com os dados do objeto retDownloadNFe</returns>
 public static string ObterXmlString(this retDownloadNFe retDownloadNFe)
 {
     return(FuncoesXml.ClasseParaXmlString(retDownloadNFe));
 }
Ejemplo n.º 9
0
 /// <summary>
 ///     Converte o objeto cteProc para uma string no formato XML
 /// </summary>
 /// <param name="cteProc"></param>
 /// <returns>Retorna uma string no formato XML com os dados do cteProc</returns>
 public static string ObterXmlString(this cteProc cteProc)
 {
     return(FuncoesXml.ClasseParaXmlString(cteProc));
 }
Ejemplo n.º 10
0
 /// <summary>
 ///     Converte o objeto enviNFe3 para uma string no formato XML
 /// </summary>
 /// <param name="pedEnvio"></param>
 /// <returns>Retorna uma string no formato XML com os dados do objeto enviNFe3</returns>
 public static string ObterXmlString(this enviNFe3 pedEnvio)
 {
     return(FuncoesXml.ClasseParaXmlString(pedEnvio));
 }
Ejemplo n.º 11
0
 public static string XmlString(this MDFeEvCancMDFe evCancMDFe)
 {
     return(FuncoesXml.ClasseParaXmlString(evCancMDFe));
 }
Ejemplo n.º 12
0
 /// <summary>
 ///     Converte o objeto retEnviCte para uma string no formato XML
 /// </summary>
 /// <param name="retEnviCte"></param>
 /// <returns>Retorna uma string no formato XML com os dados do objeto retEnviCte</returns>
 public static string ObterXmlString(this retEnviCte retEnviCte)
 {
     return(FuncoesXml.ClasseParaXmlString(retEnviCte));
 }
Ejemplo n.º 13
0
 /// <summary>
 ///     Converte o objeto consReciNFe para uma string no formato XML
 /// </summary>
 /// <param name="pedRecibo"></param>
 /// <returns>Retorna uma string no formato XML com os dados do objeto consReciNFe</returns>
 public static string ObterXmlString(this consReciNFe pedRecibo)
 {
     return(FuncoesXml.ClasseParaXmlString(pedRecibo));
 }