![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
#1
|
|||
|
|||
|
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. |
|
#2
|
||||
|
||||
|
Cita:
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). 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. |
|
#3
|
|||
|
|||
|
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. |
|
#4
|
|||
|
|||
|
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 <ds igestValue>, 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. |
![]() |
|
|
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 |
|