Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Firmar xml (https://www.clubdelphi.com/foros/showthread.php?t=87958)

frankizzio 24-03-2015 22:26:43

Firmar xml
 
Tengo un archivo XML basado en el estandar UBL la cual contiene las siguientes etiquetas.

Código:

<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionContent>
<ds:Signature Id="signatureKG">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="h t tp : /  / w ww .w3. or g/TR/ 2001/REC-xml-c14n -20010315#WithComments"/> <ds:SignatureMethod Algorithm="ht tp  : / /w ww  . w3 . org/2000/09/xmldsig#dsa-sha1"/>
<ds:Reference URI="">
<ds:Transforms>
<ds:Transform Algorithm="ht tp ://ww w . w3. org/ 2000/09/xmldsig#enveloped-signature"/>
</ds:Transforms>
<ds:DigestMethod Algorithm="ht t p : // www .w 3 . or g/2000/09/ xmldsig#sha1"/>
<ds:DigestValue>/* valor hash codificado en Base64 */</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>/* firma codificada en Base64 */</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>/* estructura que contiene información del certificado firmante */</ds:X509Certificate>
</ds:X509Data> </ds:KeyInfo>
</ds:Signature>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>

Buscando en la web, y en el mismo Club Delphi encontre información sobre el tema pero que no me daban un punto claro por donde empezar.

Encontre una alternativa con CAPICOM que me parece la más acertada, por intuición, he instalado y registrado su dll pero aun no he tenido resultados.

Utilizo Delphi en plataforma de escritorio y el esquema que tenia pensado era el siguiente.

Buscar certificado digital .cer - buscar archivo xml - agregar clave privada -> firmar documento

Gracias de antemano.

newtron 25-03-2015 10:10:01

Hola.

El tema se ha tratado en este hilo. Ahí podrás encontrar un link que puse para descargar un programa en Java que puedes ejecutar desde tu programa delphi y que te firma el documento que le digas. Yo lo he implementado sin problemas en mi programa, lo único es que tienes que tener Java instalado.

Yo en su día estuve echandole un vistazo a la dll que comentas pero no conseguí nada con ella, es más, el sitio de descarga de la web del ministerio ya ni existe así que me temo que esté obsoleta.

Saludos

frankizzio 25-03-2015 17:31:17

Hola Newtron, gracias por responder.
He utilizado la aplicación en java pero me aparece una ventana para que escoja el certificado digital que voy a utilizar, estaba pensando en una solución más transparente para el usuario final.
Además utilizo un archivo .cer al que pienso ingresarle la clave antes de firmar el documento.

He buscado información y parece ser que importando DLL's de .NET que te realizan la firma es la solución más aceptable, voy a seguir buscando información del tema.


La franja horaria es GMT +2. Ahora son las 12:38:32.

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