static void Main(string[] args) { Console.WriteLine("Exemplo de Assinatura Digital XML\r\r"); Console.Write("Arquivo xml a ser assinado :"); string _arquivo = Console.ReadLine(); if (_arquivo == null) { Console.WriteLine("\rNome de arquivo não informado..."); } else if (!File.Exists(_arquivo)) { Console.WriteLine("\rArquivo {0} inexistente...", _arquivo); } else { Console.Write("URI a ser assinada (Ex.: infCanc, infNFe, infInut, etc.) :"); string _uri = Console.ReadLine(); if (_uri == null) { Console.WriteLine("\rURI não informada..."); } else { // // le o arquivo xml // StreamReader SR; string _stringXml; SR = File.OpenText(_arquivo); _stringXml = SR.ReadToEnd(); SR.Close(); // // realiza assinatura // AssinaturaDigital AD = new AssinaturaDigital(); // // cria cert // X509Certificate2 cert = new X509Certificate2(); // // seleciona certificado do repositório MY do windows // Certificado certificado = new Certificado(); cert = certificado.BuscaNome(""); int resultado = AD.Assinar(_stringXml, _uri, cert); if (resultado == 0) { // // grava arquivo assinado // StreamWriter SW; SW = File.CreateText(_arquivo.Trim() + "_assinado"); SW.Write(AD.XMLStringAssinado); SW.Close(); } Console.WriteLine(AD.mensagemResultado); } } }
static void Main(string[] args) { string msgLog = ""; string _arquivo = args[0]; if (_arquivo == null) { msgLog += "\rNome de arquivo não informado..."; } else if (!File.Exists(_arquivo)) { msgLog += "\rArquivo {0} inexistente..." + _arquivo; } else { //Console.Write("URI a ser assinada (Ex.: infCanc, infNFe, infInut, etc.) :"); //string _uri = Console.ReadLine(); string _uri = args[1]; //"LoteRps"; if (_uri == null) { msgLog += "\rURI não informada..."; } else { // // le o arquivo xml // StreamReader SR; string _stringXml; SR = File.OpenText(_arquivo); _stringXml = RemoverCaracteresEspeciais(RemoverAcentos(SR.ReadToEnd())); //_stringXml = SR.ReadToEnd(); SR.Close(); // // realiza assinatura // AssinaturaDigital AD = new AssinaturaDigital(); // // cria cert // X509Certificate2 cert = new X509Certificate2(); // // seleciona certificado do repositório MY do windows // //Certificado certificado = new Certificado(); //string nroSerieCertificado = Convert.ToString(ConfigurationManager.AppSettings["nroSerieCertificado"]); //cert = certificado.BuscaNroSerie(nroSerieCertificado); int resultado = AD.Assinar(_stringXml, _uri, args[2], args[3]); if (resultado == 0) { // // grava arquivo assinado // StreamWriter SW; SW = File.CreateText(_arquivo.Replace(".xml", "_ass.xml").Trim()); SW.Write(AD.XMLStringAssinado); SW.Close(); /* * XmlTextWriter writer = new XmlTextWriter(_arquivo.Replace(".xml", "_ass.xml").Trim(), null); * writer.Formatting = Formatting.Indented; * AD.XMLDocAssinado.Save(writer); */ } msgLog += AD.mensagemResultado; // // grava arquivo de log // StreamWriter Log; Log = File.CreateText(_arquivo.Replace(".xml", "_log.txt").Trim()); Log.Write(msgLog); Log.Close(); } } }