Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-10-2018
wilcg wilcg is offline
Miembro
 
Registrado: abr 2014
Posts: 107
Poder: 11
wilcg Va por buen camino
Traducir código de C# a Delphi (para firmar un documento XML)

Amigos del foro necesito su ayuda,
esta funcion sirve para firmar un XML con certificado digital, pero esta en lenguaje C#, no soy bueno en este lenguaje quisiera su ayuda para convertirlo a Delphi. Espero su ayuda es muy importante para mi proyecto.

Código Delphi [-]
public static void firmar(string path_cert, string pass_cert, string path_xml,string path_guardar)
        {
            System.Security.Cryptography.X509Certificates.X509Certificate2 certificado 
                = new System.Security.Cryptography.X509Certificates.X509Certificate2(path_cert,pass_cert,
                    System.Security.Cryptography.X509Certificates.X509KeyStorageFlags.Exportable);
            
            var xmlDoc = new XmlDocument();
            xmlDoc.PreserveWhitespace = true;
            xmlDoc.Load(path_xml);

            var nodoExtension = 
                xmlDoc.GetElementsByTagName(
                    "ExtensionContent", 
                    "urnasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2").Item(0);
            
            var signedXml = new SignedXml(xmlDoc) { SigningKey = certificado.PrivateKey };
            var xmlSignature = signedXml.Signature;

            var env = new XmlDsigEnvelopedSignatureTransform();

            var reference = new Reference(string.Empty);
            reference.AddTransform(env);
            xmlSignature.SignedInfo.AddReference(reference);

            var keyInfo = new KeyInfo();
            var x509Data = new KeyInfoX509Data(certificado);

            x509Data.AddSubjectName(certificado.Subject);

            keyInfo.AddClause(x509Data);
            xmlSignature.KeyInfo = keyInfo;
            xmlSignature.Id = "Sunat";
            signedXml.ComputeSignature();

            nodoExtension.AppendChild(signedXml.GetXml());

            using (var memDoc = new System.IO.MemoryStream())
            {

                using (var writer = XmlWriter.Create(memDoc,
                    new XmlWriterSettings { Encoding = Encoding.GetEncoding("UTF-8") }))
                {
                    xmlDoc.WriteTo(writer);
                }
            }
            xmlDoc.Save(path_guardar);
        }
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Conseguir un certificado digital para firmar código dec Varios 148 14-04-2023 09:18:38
Traducir código C++ a Delphi angelp4492 C++ Builder 0 04-06-2015 18:01:23
Ayuda para traducir código delphi a c++ builder mordaz C++ Builder 0 07-05-2014 10:51:50
Ayuda para traducir código PHP a Delphi FideRosado Varios 2 19-10-2013 15:28:51
Traducir código delphi a vb monaguillo Varios 2 08-12-2007 11:32:42


La franja horaria es GMT +2. Ahora son las 21:33:01.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi