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); }
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(); }
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); } }
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); }
/// <summary> /// Valida a assinatura do documento. /// </summary> /// <param name="gerarXml"></param> /// <returns></returns> protected bool ValidarAssinaturaDocumento(bool gerarXml) { return(SigningManager.ValidarAssinatura(this, gerarXml)); }
/// <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; }
public void TestReader() { ISigningManager signManager = new SigningManager(); var certs = signManager.GetCertificatesFromStore(CertificateStoreType.MachineUser).GetAwaiter().GetResult(); }
public void TestReader() { ISigningManager signManager = new SigningManager(MsixHeroGistTimeStampFeed.CreateCached()); var certs = signManager.GetCertificatesFromStore(CertificateStoreType.MachineUser).GetAwaiter().GetResult(); }