From 774e5c576262c9909b6eb7e8bcc5840959fd2c70 Mon Sep 17 00:00:00 2001 From: lucasmoraes804 Date: Tue, 18 Nov 2025 15:59:22 -0300 Subject: [PATCH] =?UTF-8?q?Refatorar=20a=20recupera=C3=A7=C3=A3o=20da=20ch?= =?UTF-8?q?ave=20de=20assinatura=20em=20Assinador.cs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit O processo de assinatura foi atualizado para usar a chave RSA do certificado digital. --- NFe.Utils/Assinatura/Assinador.cs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/NFe.Utils/Assinatura/Assinador.cs b/NFe.Utils/Assinatura/Assinador.cs index 53032fba0..4cd0db01b 100644 --- a/NFe.Utils/Assinatura/Assinador.cs +++ b/NFe.Utils/Assinatura/Assinador.cs @@ -65,7 +65,14 @@ public static Signature ObterAssinatura(T objeto, string id, X509Certificate2 documento.LoadXml(xml); - var docXml = new SignedXml(documento) { SigningKey = certificadoDigital.PrivateKey }; + SignedXml docXml = new SignedXml(documento); + + // Pega a chave RSA de forma "moderna", compatível com CNG e CSP + RSA rsa = certificadoDigital.GetRSAPrivateKey(); + if (rsa == null) + throw new Exception("O certificado não possui chave privada RSA."); + + docXml.SigningKey = rsa; docXml.SignedInfo.SignatureMethod = signatureMethod; @@ -103,4 +110,4 @@ public static Signature ObterAssinatura(T objeto, string id, X509Certificate2 } } -} \ No newline at end of file +}