Repository navigation
Refatorar a recuperação da chave de assinatura em Assinador.cs - #126
lucasmoraes804 wants to merge 1 commit into
Conversation
O processo de assinatura foi atualizado para usar a chave RSA do certificado digital.
|
@danilobreda se poder analisar. Esse é um problema que está ocorrendo com certificados novos A3 principalmente. Como o provedores são os mais novos, não compatível com certificadoDigital.PrivateKey e ocasionava o erro System.Security.Cryptography.CryptographicException: Tipo de provedor inválido especificado. |
|
@lucasmoraes804 tive este mesmo problema que você relatou com A3 Meu medo nesse tipo de mudança é quebrar o legado. Neste tipo de cenário tendo a ser mais "defensivo". Analise, por favor, esta solução: |
|
@marcosgerene essa alteração foi testado com a versão do .Net 4.6.2 em uma aplicação WPF. Mas caso queira posso testar essa alternativa que mencionou |
|
Fiz um PR no seu fork @lucasmoraes804 adicionando o using que é obrigatório para compilação.
Acho que não seria o problema, pois o Entrando o meu PR com o using que está faltando, creio que seja importante a implementação, pois muitos certificados estão com este problema. |
|
vou verificar junto ao #42 em breve |
|
feito em #193 agradeço |
Atualiza para .NET 8/10, remove APIs obsoletas e corrige A3 CNG - TFMs: libs net462;netstandard2.0;net8.0;net10.0 e impressão net8.0;net10.0 (sai o net9.0; apps .NET 9 usam o build net8.0) - Certificado: no .NET Framework mantém o PrivateKey do master e só usa GetRSAPrivateKey quando ele falha com "Tipo de provedor inválido" (chave CNG, PR Hercules-NET#126); no .NET 8/10 usa APIs modernas - Assinatura XML de NF-e, CT-e e MDF-e unificada em AssinaturaDigital.AssinaXml; PIN do A3 e IsA3 com suporte a CNG - X509CertificateLoader no .NET 9+ (SYSLIB0057, issue Hercules-NET#42) e SHA1.Create no lugar de SHA1CryptoServiceProvider - Remove o "+=" acumulado no callback global de validação do RequestSefazHttpClientHandler - System.Security.Cryptography.Xml 10.0.12 (vulnerabilidades altas), ImageSharp 2.1.13 no Danfe.Html, pacotes de teste atualizados - nuspecs publicam net8.0/net10.0 e declaram dependências; pacote QuestPdf corrigido (lib\ em vez de src\); CI com SDK 10 e 8 - Testes de assinatura/certificado em net10.0 e net48 - API pública: 0 membros removidos/alterados, 2 adicionados Baseado no PR Hercules-NET#126 de @lucasmoraes804.
O processo de assinatura foi atualizado para usar a chave RSA do certificado digital. Alterar para forma "moderna", compatível com provedores CNG e CSP