Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Proyecto SIF/Veri*Factu/Ley Antifraude > Envío de registros y sus respuestas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-07-2025
jahlxx jahlxx is offline
Registrado
NULL
 
Registrado: ene 2016
Posts: 5
Poder: 0
jahlxx Va por buen camino
Firma de XML

Buenas.


Os cuento lo que estoy haciendo, y las dudas que tengo respecto a la firma de los XML que se envían a los WS.


Estoy generando ficheros XML, por el momento con una sola factura cada vez, y controlando la respuesta. Envio altas de registros, subsanaciones y borrados, y todo bien.


Genero los XML y los envio tal cual al entorno de pruebas, mediante TIdHTTP y TIdSSLIOHandlerSocketOpenSSL. Todo perfecto.


Ahora vienen las dudas.


Es obligatorio firmar los XML? Me explico, puedo generar el XML y firmarlo con openssl, eso ya lo tengo hecho, pero realmente es necesario? Ahora los envio sin firmar y va bien, y se me genera la duda.


Y otra cosa más. En las descripciones de los XML, viene un campo llamado "Signature". Yo no lo estoy poniendo y no me da problemas. Aun así, puedo generar una firma en Base64, aunque no lo estoy poniendo porque no sé si hay que ponerlo o no.


En fin, que tengo dudas con estas dos cosas, si hay que hacerlo o no, en qué orden, etc.


Os agradecería algo de luz en este tema.


Gracias.
Responder Con Cita
  #2  
Antiguo 01-08-2025
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.435
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por jahlxx Ver Mensaje
Es obligatorio firmar los XML? Me explico, puedo generar el XML y firmarlo con openssl, eso ya lo tengo hecho, pero realmente es necesario? Ahora los envio sin firmar y va bien, y se me genera la duda.
Si está implementando veri*factu (enviar los registros de facturación a la AEAT "inmediatamente" después de generarlos), NO es necesario firmar.
La firma de registros es obligatoria en el modo no-veri*factu (cuando no se envían los registros de firma voluntaria, sino bajo requerimiento).

Cita:
Empezado por jahlxx Ver Mensaje
En las descripciones de los XML, viene un campo llamado "Signature". Yo no lo estoy poniendo y no me da problemas. Aun así, puedo generar una firma en Base64, aunque no lo estoy poniendo porque no sé si hay que ponerlo o no.
El campo signature es el de la firma. En tus registros (si los vas a enviar) no debe aparecer.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 01-08-2025
jahlxx jahlxx is offline
Registrado
NULL
 
Registrado: ene 2016
Posts: 5
Poder: 0
jahlxx Va por buen camino
Ok, gracias.


El sistema deberá de funcionar en modo VeriFactu y NoVerifactu, por lo que necesito la posibilidad de firmar los XML, ya sea con algún componente, o llamando a alguna utilidad externa, o ...


Y en eso estoy atascado, buscando informacion pero no consigo dar con la tecla.


Esa es la ayuda que necesito del foro.


Gracias anticipadas.
Responder Con Cita
  #4  
Antiguo 04-08-2025
jahlxx jahlxx is offline
Registrado
NULL
 
Registrado: ene 2016
Posts: 5
Poder: 0
jahlxx Va por buen camino
generacion manual de la firma

Bueno, al final he optado por generar la firma de manera manual, siguiendo una serie de pasos, y he conseguido generar los XML firmados. Cuando consiga hacerlo de otra manera, ampliaré el hilo. Yo uso os componentes de Devart Securebridge, pero este caso concreto no lo he conseguido hacer, por eso opto por generación "artesana".


Os cuento los pasos que he seguido, por si a alguien le sirve, o si incluso se le ocurre alguna mejora. A mi, de esta manera, me funciona.


- Generamos valor para el elemento <dsigestValue>, hash SHA-256 del XML completo (lógicamente sin la firma)
- Con eso ya tenemos el nodo <ds:SignedInfo>
- Ese nodo <ds:SignedInfo>, lo firmamos. En mi caso, lo hago con openssl, utilizando el certificado (de momento el de pruebas proporcionado por la AEAT)
- El resultado lo paso a Base64 (1).
- Pasamos a Base64, el certificado, para tener el elemento <ds:X509Certificate> del nodo <ds:SignatureValue> (2).
- Para terminar, con la firma en base64 (1) y el certificado, montamos el nodo <ds:SignatureValue>
- Ya teniendo los nodos <ds:SignedInfo> y <ds:SignatureValue>, se monta el nodo <ds:Signature> que se incrusta en el XML inicial y ya está listo para el envio.


Un poco artesanal, pero a mi al menos me funciona perfectamente.

El nodo <ds:RSAKeyValue> que aparece en la documentación, no lo envío ya que parece que es opcional y no se suele usar.
Responder Con Cita
Respuesta



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
Firma app aab keystore Ricardo2010 Desarrollo en Delphi para Android 8 06-12-2020 00:01:52
Firma Digital Dado de baja Varios 5 30-11-2008 20:52:16
La firma de la semana, del mes, del año... kinobi Debates 3 23-05-2005 01:00:52
firma digital felixgo Varios 2 16-02-2005 15:36:00


La franja horaria es GMT +2. Ahora son las 11:22:32.


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