Beispiel #1
0
        private static async Task <int> Run(NewCertVerb arg)
        {
            var signingManager = new SigningManager();
            var console        = new ConsoleImpl(Console.Out, Console.Error);
            var executor       = new NewCertVerbExecutor(arg, signingManager, console);
            var exitCode       = await executor.Execute().ConfigureAwait(false);

            Environment.ExitCode = exitCode;
            return(exitCode);
        }
Beispiel #2
0
        public static void Main(string[] args)
        {
            try
            {
                if (args.Length > 0 && args[0] == "--selfElevate")
                {
                    Logger.Debug("Preparing to start the pipe server...");

                    IConfigurationService configurationService = new LocalConfigurationService();
                    ISigningManager       signingManager       = new SigningManager(MsixHeroGistTimeStampFeed.CreateCached());
                    IAppAttachManager     appAttachManager     = new AppAttachManager(signingManager, configurationService);
                    IAppxVolumeManager    appxVolumeManager    = new AppxVolumeManager();
                    IRegistryManager      registryManager      = new RegistryManager();
                    IAppxPackageManager   appxPackageManager   = new AppxPackageManager();
                    IAppxPackageQuery     appxPackageQuery     = new AppxPackageQuery(registryManager, configurationService);
                    IAppxPackageInstaller appxPackageInstaller = new AppxPackageInstaller();
                    IAppxPackageRunner    appxPackageRunner    = new AppxPackageRunner();
                    IAppxLogManager       appxLogManager       = new AppxLogManager();

                    var receivers = new ISelfElevationProxyReceiver[]
                    {
                        new AppAttachManagerProxyReceiver(appAttachManager),
                        new AppxPackageManagerProxyReceiver(appxPackageManager),
                        new AppxPackageQueryProxyReceiver(appxPackageQuery),
                        new AppxPackageInstallerProxyReceiver(appxPackageInstaller),
                        new AppxPackageRunnerProxyReceiver(appxPackageRunner),
                        new AppxLogManagerProxyReceiver(appxLogManager),
                        new AppxVolumeManagerProxyReceiver(appxVolumeManager),
                        new RegistryManagerProxyReceiver(registryManager),
                        new SigningManagerProxyReceiver(signingManager)
                    };

                    var server = new Server(receivers);
                    server.Start().GetAwaiter().GetResult();
                    Console.ReadKey();
                }
                else
                {
                    Logger.Fatal("Unsupported command line arguments, terminating...");
                    Environment.ExitCode = 1;
                }
            }
            catch (AggregateException e)
            {
                Logger.Fatal(e.GetBaseException(), "Fatal exception, the program will be closed.");
            }
            catch (Exception e)
            {
                Logger.Fatal(e, "Fatal exception, the program will be closed.");
            }

            Logger.Info("Waiting for the user to press a key...");
            Console.ReadKey();
        }
Beispiel #3
0
        public NFeInutilizacaoResposta Inutilizar(string cnpj, string justificativa, NFeModelo modelo, int serie, int numeroInicial, int numeroFinal)
        {
            cnpj = cnpj.OnlyNumbers();

            var ano = DateTime.Now.Year.ToString();

            ano = ano.Substring(ano.Length - 2);

            Guard.Against <ArgumentNullException>(cnpj.IsNullOrEmpty(), "ERRO: CNPJ não informado");
            Guard.Against <ArgumentNullException>(justificativa.IsNullOrEmpty(), "ERRO: Justificativa para Inutilização de numeração não informada");
            Guard.Against <ArgumentException>(justificativa.Length < 15, "ERRO: A Justificativa para Inutilização de numeração deve ter no minimo 15 caracteres.");

            lock (serviceLock)
            {
                var idInutilizacao = $"ID{Configuracoes.Webservices.UF.GetDFeValue()}{ano:D2}{cnpj.OnlyNumbers()}{modelo.GetDFeValue()}{serie.ZeroFill(3)}{numeroInicial.ZeroFill(9)}{numeroFinal.ZeroFill(9)}";

                var request = new StringBuilder();
                request.Append($"<inutNFe xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"{Configuracoes.Versao.GetDescription()}\">");
                request.Append($"<infInut Id=\"{idInutilizacao}\">");
                request.Append($"<tpAmb>{Configuracoes.Ambiente.GetDFeValue()}</tpAmb>");
                request.Append("<xServ>INUTILIZAR</xServ>");
                request.Append($"<cUF>{Configuracoes.Webservices.UF.GetDFeValue()}</cUF>");
                request.Append($"<ano>{ano}</ano>");
                request.Append($"<CNPJ>{cnpj}</CNPJ>");
                request.Append($"<mod>{modelo.GetDFeValue()}</mod>");
                request.Append($"<serie>{serie}</serie>");
                request.Append($"<nNFIni>{numeroInicial}</nNFIni>");
                request.Append($"<nNFFin>{numeroFinal}</nNFFin>");
                request.Append($"<xJust>{justificativa.TrimVip().RemoveAccent()}</xJust>");
                request.Append("</infInut>");
                request.Append("</inutNFe>");

                var dadosMsg = request.ToString();
                dadosMsg = SigningManager.AssinarXml(dadosMsg, "inutNFe", "infInut", ClientCredentials.ClientCertificate.Certificate);
                ValidateMessage(dadosMsg);
                GravarXmlAssinado(dadosMsg, $"{idInutilizacao.OnlyNumbers()}-inu-nfe.xml");

                var xml = new XmlDocument();
                xml.LoadXml(dadosMsg);

                var value       = new InutilizacaoRequest(xml);
                var returnValue = Channel.Inutilizar(value);
                var resposta    = new NFeInutilizacaoResposta(dadosMsg, returnValue.Mensagem.OuterXml, EnvelopeSoap, RetornoWS);

                if (resposta.Resultado.InfInut.CStat == 102)
                {
                    GravarXmlInutilizacao(resposta.XmlRetorno, $"{idInutilizacao.OnlyNumbers()}-inu-nfe.xml");
                }

                return(resposta);
            }
        }
Beispiel #4
0
        public void TestCertValidator()
        {
            var fileSignedButUntrusted = new FileInfo(Path.Combine("Resources", "ConEmuPack-O2004-M1220.603-P380-F_19.1.8.0_x64__xwfzvwzp69w2e.msix"));
            var fileUnsigned           = new FileInfo(Path.Combine("Resources", "nsis.exe"));
            var fileSignedAndTrusted   = new FileInfo(Path.Combine("Resources", "inno.exe"));
            var fileNotSignable        = new FileInfo(Path.Combine("Resources", "wintrust.dll.ini"));

            var manager = new SigningManager();

            var check1 = manager.IsTrusted(fileSignedButUntrusted.FullName, CancellationToken.None).GetAwaiter().GetResult();
            var check2 = manager.IsTrusted(fileSignedAndTrusted.FullName, CancellationToken.None).GetAwaiter().GetResult();
            var check3 = manager.IsTrusted(fileUnsigned.FullName, CancellationToken.None).GetAwaiter().GetResult();
            var check4 = manager.IsTrusted(fileNotSignable.FullName, CancellationToken.None).GetAwaiter().GetResult();

            Assert.IsFalse(check1.IsTrusted);
            Assert.IsTrue(check2.IsTrusted);
            Assert.IsFalse(check3.IsTrusted);
            Assert.IsFalse(check4.IsTrusted);
        }
Beispiel #5
0
 /// <summary>
 ///     Valida a assinatura do documento.
 /// </summary>
 /// <param name="gerarXml"></param>
 /// <returns></returns>
 protected bool ValidarAssinaturaDocumento(bool gerarXml)
 {
     return(SigningManager.ValidarAssinatura(this, gerarXml));
 }
Beispiel #6
0
 /// <summary>
 ///     Assina o xml.
 /// </summary>
 /// <param name="certificado">Certificado digital</param>
 /// <param name="options">Options.</param>
 /// <param name="comments">if set to <c>true</c> [comments].</param>
 /// <param name="digest">Digest.</param>
 protected void AssinarDocumento(X509Certificate2 certificado, SaveOptions options, bool comments, SignDigest digest)
 {
     Signature = SigningManager.AssinarDocumento(this, certificado, comments, digest, options, out var xml);
     Xml       = xml;
 }
Beispiel #7
0
 public void TestReader()
 {
     ISigningManager signManager = new SigningManager();
     var             certs       = signManager.GetCertificatesFromStore(CertificateStoreType.MachineUser).GetAwaiter().GetResult();
 }
Beispiel #8
0
 public void TestReader()
 {
     ISigningManager signManager = new SigningManager(MsixHeroGistTimeStampFeed.CreateCached());
     var             certs       = signManager.GetCertificatesFromStore(CertificateStoreType.MachineUser).GetAwaiter().GetResult();
 }