Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Envío de registros y sus respuestas (https://www.clubdelphi.com/foros/forumdisplay.php?f=66)
-   -   Firmar con AutoFirma y fichero PFX (https://www.clubdelphi.com/foros/showthread.php?t=97123)

razorxxx 15-01-2025 10:31:15

1 Archivos Adjunto(s)
Cita:

Empezado por delphiGar (Mensaje 561176)
El ejemplo me refiero al de la Aeat no al mio, veras que es sha1

Adjunto captura del PDF donde dicen que el algoritmo de política de firma debe ser SHA-256. Así mismo, pueden descargar el ejemplo de fichero firmado desde aquí: https://www.agenciatributaria.es/sta...rmaRegFact.zip

No veo rastro de SHA-1 en las especificaciones...

delphiGar 15-01-2025 11:43:09

Cita:

Empezado por razorxxx (Mensaje 561193)
Adjunto captura del PDF donde dicen que el algoritmo de política de firma debe ser SHA-256. Así mismo, pueden descargar el ejemplo de fichero firmado desde aquí: https://www.agenciatributaria.es/sta...rmaRegFact.zip

No veo rastro de SHA-1 en las especificaciones...

En las especificaciones pone eso, pero en la practica es SHA1 ( Supongo que lo corregiran ).
En el fichero de ejemplo fijate bien que viene SHA1, vuelve a descargatelo.
En la anterior descarga venia como ya te he dicho anteriormente SHA256, pero el DigestValue incluido no es correcto.

Por cierto el SHA1 es para la politica de firmas no para el documento que si es SHA256, veo que indicas en el documento los dos y no tiene nada que ver, una cosa es el hash de politica de firma y otra el documento que si tiene que ser minimo SHA256.

razorxxx 15-01-2025 14:00:50

Cita:

Empezado por delphiGar (Mensaje 561195)
En las especificaciones pone eso, pero en la practica es SHA1 ( Supongo que lo corregiran ).
En el fichero de ejemplo fijate bien que viene SHA1, vuelve a descargatelo.
En la anterior descarga venia como ya te he dicho anteriormente SHA256, pero el DigestValue incluido no es correcto.

Por cierto el SHA1 es para la politica de firmas no para el documento que si es SHA256, veo que indicas en el documento los dos y no tiene nada que ver, una cosa es el hash de politica de firma y otra el documento que si tiene que ser minimo SHA256.

Pues tiene usted razón, han cambiado el fichero firmado y ni siquiera avisaron. Les enviaré un mail a ver qué dicen, si nos quedamos en sha-1 o en sha-256.

delphiGar 15-01-2025 16:27:20

Cita:

Empezado por razorxxx (Mensaje 561209)
Pues tiene usted razón, han cambiado el fichero firmado y ni siquiera avisaron. Les enviaré un mail a ver qué dicen, si nos quedamos en sha-1 o en sha-256.

Para el SHA256 tienen que poner el DigestValue correcto, el que hay como ya te comente no es valido, por eso cuando lo validas te dice que no reconoce la firma.

Cualquier cosa que te comente nos dices, sino les hago yo la pregunta.

razorxxx 16-01-2025 09:27:56

Cita:

Empezado por delphiGar (Mensaje 561214)
Para el SHA256 tienen que poner el DigestValue correcto, el que hay como ya te comente no es valido, por eso cuando lo validas te dice que no reconoce la firma.

Cualquier cosa que te comente nos dices, sino les hago yo la pregunta.

Me han dicho que han pasado la pregunta al departamento correspondiente y desde que sepan me responden.

delphiGar 16-01-2025 10:21:06

ok, muchas gracias, ya cuentas.

bmfranky 16-01-2025 17:47:46

Cita:

Empezado por delphiGar (Mensaje 561182)
Aunque yo no utilizo Autofirma para firmar los ficheros.

El codigo correcto para autofrima seria este:

Código:

AutoFirmaCommandLine.exe sign -i "c:\envio_firmado.xml" -o "c:\envio_firmado_a.xsig" -format xades -config "format=XAdES Enveloped \nincludeOnlySignningCertificate=true \npolicyIdentifier=urn:oid:2.16.724.1.3.1.1.2.1.9 \npolicyIdentifierHash=G7roucf600+f03r/o0bAOQ6WAs0= \npolicyIdentifierHashAlgorithm=http://www.w3.org/2000/09/xmldsig#sha1 \npolicyQualifier=https://sede.administracion.gob.es/politica_de_firma_anexo_1.pdf" -store auto -certgui

Hola, con que firmas los ficheros??, alguna funcion en Delphi o asi?

delphiGar 16-01-2025 17:55:44

Cita:

Empezado por bmfranky (Mensaje 561247)
Hola, con que firmas los ficheros??, alguna funcion en Delphi o asi?

Yo utilizo SecureBlackBox.

Neftali [Germán.Estévez] 17-01-2025 09:16:50

Cita:

Empezado por delphiGar (Mensaje 561250)
Yo utilizo SecureBlackBox.


+1
Nosotros también.

razorxxx 17-01-2025 09:40:00

Cita:

Empezado por bmfranky (Mensaje 561247)
Hola, con que firmas los ficheros??, alguna funcion en Delphi o asi?

Yo creo que, si sirve, usaré AutoFirma, siendo una aplicación estatal supongo que la mantendrán compatible con los sistemas de la administración. Siempre soy reacio a usar componentes no nativos porque basta que un día actualices a un Delphi más moderno y dejan de funcionar.

Además, tengo una función que me devuelve la salida de un comando de consola sin mostrarla, no necesito abrir una ventana de msdos o terminal para obtener el resultado.

Neftali [Germán.Estévez] 17-01-2025 09:42:42

En otros proyectos hay compañeros que han comentado que es lento.
Supongo que si hay poco volumen de firma es suficiente. Pensad si en algún momento necesitáis un volumen grande (facturación automática) o más velocidad en ese paso.
Si no se necesita es una solución válida (y sobre todo gratuita).

bmfranky 17-01-2025 09:59:54

Cita:

Empezado por razorxxx (Mensaje 561257)
Yo creo que, si sirve, usaré AutoFirma, siendo una aplicación estatal supongo que la mantendrán compatible con los sistemas de la administración. Siempre soy reacio a usar componentes no nativos porque basta que un día actualices a un Delphi más moderno y dejan de funcionar.

Además, tengo una función que me devuelve la salida de un comando de consola sin mostrarla, no necesito abrir una ventana de msdos o terminal para obtener el resultado.


Hola, yo voy a empezar a probar este "FirmaXadesNet45", disponible en el portal de PAE https://administracionelectronica.go...=firmaxadesnet, mas estatal que este... ademas incluye ejemplos de facturae, aunque la verdad usare un port del mismo , actualizado hace 9 meses.
Por si a alguien le interesa https://github.com/didac-vallhonesta...master/Library, esta en c# .net , en cuanto tenga la funcion de firma testada y funcionando la pongo.

delphiGar 17-01-2025 10:01:44

Los sistemas de Firma Digital son Normas Internacionales, tanto Autofirma como cualquier otro componente o programa se adapta a estas Normas.

Lo bueno de utilizar SecureBlackBox es que puedes manejar todo el stream en memoria, no necesitas utilizar ficheros en disco. Y el codigo es bastante rapido.

bmfranky 17-01-2025 10:03:12

Cita:

Empezado por delphiGar (Mensaje 561261)
Los sistemas de Firma Digital son Normas Internacionales, tanto Autofirma como cualquier otro componente o programa se adapta a estas Normas.

Lo bueno de utilizar SecureBlackBox es que puedes manejar todo el stream en memoria, no necesitas utilizar ficheros en disco. Y el codigo es bastante rapido.

La libreria que os digo tambien.

Neftali [Germán.Estévez] 17-01-2025 10:20:33

Cita:

Empezado por bmfranky (Mensaje 561260)
Hola, yo voy a empezar a probar este "FirmaXadesNet45", disponible en el portal de PAE https://administracionelectronica.go...=firmaxadesnet, mas estatal que este... ademas incluye ejemplos de facturae, aunque la verdad usare un port del mismo , actualizado hace 9 meses.
Por si a alguien le interesa https://github.com/didac-vallhonesta...master/Library, esta en c# .net , en cuanto tenga la funcion de firma testada y funcionando la pongo.


Lo añado al mensaje de resumen (mensaje#2).

razorxxx 17-01-2025 11:12:23

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 561258)
En otros proyectos hay compañeros que han comentado que es lento.
Supongo que si hay poco volumen de firma es suficiente. Pensad si en algún momento necesitáis un volumen grande (facturación automática) o más velocidad en ese paso.
Si no se necesita es una solución válida (y sobre todo gratuita).

En mis pruebas, me tarda 1 segundo y algo en realizar la firma, y 3 segundos si previamente debo calcular el alias del certificado. Supongo que estos tiempos varían cuanto más grandes sean los ficheros a firmar.

razorxxx 17-01-2025 15:32:08

Cita:

Empezado por delphiGar (Mensaje 561230)
ok, muchas gracias, ya cuentas.

Me responden lo siguiente:

Código:

Hemos actualizado el documento de especificaciones y se publicará en breve.

Para la firma del registro de facturación se debe usar SHA-256.
SHA-1 únicamente es por necesidades de la política de firma de la AGE.
El DigestValue correcto, y mientras la política no cambie, es: G7roucf600+f03r/o0bAOQ6WAs0=


delphiGar 17-01-2025 16:10:48

Cita:

Empezado por razorxxx (Mensaje 561290)
Me responden lo siguiente:

Código:

Hemos actualizado el documento de especificaciones y se publicará en breve.

Para la firma del registro de facturación se debe usar SHA-256.
SHA-1 únicamente es por necesidades de la política de firma de la AGE.
El DigestValue correcto, y mientras la política no cambie, es: G7roucf600+f03r/o0bAOQ6WAs0=


ok, muchas gracias razorxxx

bmfranky 17-01-2025 17:17:35

Cita:

Empezado por razorxxx (Mensaje 561290)
Me responden lo siguiente:

Código:

Hemos actualizado el documento de especificaciones y se publicará en breve.

Para la firma del registro de facturación se debe usar SHA-256.
SHA-1 únicamente es por necesidades de la política de firma de la AGE.
El DigestValue correcto, y mientras la política no cambie, es: G7roucf600+f03r/o0bAOQ6WAs0=


Hola, ya se ha publicado...

bmfranky 17-01-2025 18:44:10

Hola, la dll, que uso me define estos parametros, no seran buenos verdad.
Código:

public static DigestMethod SHA1 = new DigestMethod("SHA1", "http://www.w3.org/2000/09/xmldsig#sha1", "1.3.14.3.2.26");
 public static DigestMethod SHA256 = new DigestMethod("SHA256", "http://www.w3.org/2001/04/xmlenc#sha256", "2.16.840.1.101.3.4.2.1");
 public static DigestMethod SHA512 = new DigestMethod("SHA512", "http://www.w3.org/2001/04/xmlenc#sha512", "2.16.840.1.101.3.4.2.3");



La franja horaria es GMT +2. Ahora son las 14:50:21.

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