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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-03-2023
CrazySoft CrazySoft is offline
Miembro
 
Registrado: abr 2005
Posts: 96
Poder: 20
CrazySoft Va por buen camino
Firma Electronica con OpenSSL

Buenas noches, tengo un un problema con la firma digital para la facturación electrónica en linea, no entiendo a que parte del XML se refiere en el punto 6 del proceso de firmado https://siatinfo.impuestos.gob.bo/in.../firma-digital, genero la factura en XML hago el proceso de canonicalización del XML (c14n), tengo la llave privada y publica generada con OpenSSL a partir del certificado que me otorgan, no se de donde o en que parte esta la sección de la firma o a que se refiere


Este es el error que me devuelve al enviar la factura


Código:
<mensajesList>
    <codigo>921</codigo>
       <descripcion>EL FIRMADO DEL XML ES INCORRECTO: Validacion Signature,  false,</descripcion>
</mensajesList>
Muchas gracias por su colaboración de antemano



Proceso de Firmado
A efectos de poder firmar un documento, es necesario disponer de una llave pública y una privada; tener implementado algoritmos de conversión a Base 64, canonicalización, SHA256 y RSA Sha256 V2 y seguir los siguientes pasos:
  • Aplicar el algoritmo de canonicalización al documento XML, es decir realizar un procesamiento que permita obtener su forma canónica o se normalice el documento original.
  • Aplicara al resultado el algoritmo sha256 a objeto de obtener el HASH.
  • Obtener una cadena aplicando al anterior HASH el algoritmo Base64.
  • Adicionar las etiquetas de signature al XML.
  • Agregar a la etiqueta Digest Value el valor obtenido en el paso 4.
  • Tomar la sección de la firma y obtener un HASH del mismo aplicando el algoritmo SHA256.
  • Encriptar el HASH obtenido utilizando el algoritmo RSA SHA256 con la llave privada.
  • Aplicar a la cadena resultante el algoritmo Base64 para obtener una cadena.
  • Adicionar a la etiqueta de Signature Value la cadena anterior.
  • Finalmente colocar en la etiqueta X509 Certificate la llave publica.
  • Devolver el XML firmado.
Responder Con Cita
  #2  
Antiguo 28-03-2023
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
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
Te diría que busques en los hilos de TicketBAI y Factura electrónica.
En ambos se firman XMLs y ahí puedes ver diferentes formas de firmarlos y diferentes componentes para hacerlo.
Creo recordar que en alguno he visto algo de OpenSSL.
También puedes encontrar algunos códigos de ejemplo, que te ayuden a empezar y aunque no sea exactamente lo que necesitas te pueden dar una guía.
__________________
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 28-03-2023
CrazySoft CrazySoft is offline
Miembro
 
Registrado: abr 2005
Posts: 96
Poder: 20
CrazySoft Va por buen camino
Muchas gracias, revisare TicketBAI y Factura electrónica, pero mi duda es más a que le llaman sección de la firma
Responder Con Cita
  #4  
Antiguo 28-03-2023
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
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 CrazySoft Ver Mensaje
Muchas gracias, revisare TicketBAI y Factura electrónica, pero mi duda es más a que le llaman sección de la firma
En TicketBAI seguro que encuentras algo parecido.
Debemos enviar un XML y ese mismo fichero tiene que tener una sección de firma. El algoritmo debe ser SHA256 (igual que el tuyo) y en cuanto a las etiquetas que debe rellenar en la firma deben ser muy similares a las que tenemos que rellenar nosotros.
__________________
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
  #5  
Antiguo 28-03-2023
JCz JCz is offline
Miembro
 
Registrado: oct 2021
Posts: 29
Poder: 0
JCz Va por buen camino
Cita:
Empezado por CrazySoft Ver Mensaje
Buenas noches, tengo un un problema con la firma digital para la facturación electrónica en linea, no entiendo a que parte del XML se refiere en el punto 6 del proceso de firmado https://siatinfo.impuestos.gob.bo/in.../firma-digital, genero la factura en XML hago el proceso de canonicalización del XML (c14n), tengo la llave privada y publica generada con OpenSSL a partir del certificado que me otorgan, no se de donde o en que parte esta la sección de la firma o a que se refiere


Este es el error que me devuelve al enviar la factura


Código:
<mensajesList>
    <codigo>921</codigo>
       <descripcion>EL FIRMADO DEL XML ES INCORRECTO: Validacion Signature,  false,</descripcion>
</mensajesList>
Muchas gracias por su colaboración de antemano



Proceso de Firmado
A efectos de poder firmar un documento, es necesario disponer de una llave pública y una privada; tener implementado algoritmos de conversión a Base 64, canonicalización, SHA256 y RSA Sha256 V2 y seguir los siguientes pasos:
  • Aplicar el algoritmo de canonicalización al documento XML, es decir realizar un procesamiento que permita obtener su forma canónica o se normalice el documento original.
  • Aplicara al resultado el algoritmo sha256 a objeto de obtener el HASH.
  • Obtener una cadena aplicando al anterior HASH el algoritmo Base64.
  • Adicionar las etiquetas de signature al XML.
  • Agregar a la etiqueta Digest Value el valor obtenido en el paso 4.
  • Tomar la sección de la firma y obtener un HASH del mismo aplicando el algoritmo SHA256.
  • Encriptar el HASH obtenido utilizando el algoritmo RSA SHA256 con la llave privada.
  • Aplicar a la cadena resultante el algoritmo Base64 para obtener una cadena.
  • Adicionar a la etiqueta de Signature Value la cadena anterior.
  • Finalmente colocar en la etiqueta X509 Certificate la llave publica.
  • Devolver el XML firmado.
Si deseas firmar si o si con OpenSSL puedes mirar el proyecto https://projetoacbr.com.br/, allí lo tienen implementado y es open source ; en todo caso puedes adquirir la la librería de Chilkat y te "ahorras" toda la codificación; en todo caso están también las Secure Black Box https://www.nsoftware.com/sbb/.

Saludos.

Última edición por Neftali [Germán.Estévez] fecha: 28-03-2023 a las 13:57:43. Razón: Corregidos los links.
Responder Con Cita
  #6  
Antiguo 28-03-2023
Avatar de pgranados
pgranados pgranados is offline
Miembro
 
Registrado: sep 2022
Ubicación: México
Posts: 264
Poder: 2
pgranados Va por buen camino
Cita:
Empezado por CrazySoft Ver Mensaje
Buenas noches, tengo un un problema con la firma digital para la facturación electrónica en linea, no entiendo a que parte del XML se refiere en el punto 6 del proceso de firmado https://siatinfo.impuestos.gob.bo/in.../firma-digital, genero la factura en XML hago el proceso de canonicalización del XML (c14n), tengo la llave privada y publica generada con OpenSSL a partir del certificado que me otorgan, no se de donde o en que parte esta la sección de la firma o a que se refiere


Este es el error que me devuelve al enviar la factura


Código:
<mensajesList>
    <codigo>921</codigo>
       <descripcion>EL FIRMADO DEL XML ES INCORRECTO: Validacion Signature,  false,</descripcion>
</mensajesList>
Muchas gracias por su colaboración de antemano



Proceso de Firmado
A efectos de poder firmar un documento, es necesario disponer de una llave pública y una privada; tener implementado algoritmos de conversión a Base 64, canonicalización, SHA256 y RSA Sha256 V2 y seguir los siguientes pasos:
  • Aplicar el algoritmo de canonicalización al documento XML, es decir realizar un procesamiento que permita obtener su forma canónica o se normalice el documento original.
  • Aplicara al resultado el algoritmo sha256 a objeto de obtener el HASH.
  • Obtener una cadena aplicando al anterior HASH el algoritmo Base64.
  • Adicionar las etiquetas de signature al XML.
  • Agregar a la etiqueta Digest Value el valor obtenido en el paso 4.
  • Tomar la sección de la firma y obtener un HASH del mismo aplicando el algoritmo SHA256.
  • Encriptar el HASH obtenido utilizando el algoritmo RSA SHA256 con la llave privada.
  • Aplicar a la cadena resultante el algoritmo Base64 para obtener una cadena.
  • Adicionar a la etiqueta de Signature Value la cadena anterior.
  • Finalmente colocar en la etiqueta X509 Certificate la llave publica.
  • Devolver el XML firmado.

No me carga el sitio web, pero con la serie de pasos que envías parece que debes de obtener en un string todo el nodo que contiene la firma y codificarlo en SHA256 y luego el nodo con el valor ya codificado en SHA256 debes de exportarlo a un .txt y luego hacer una digestión con OPENSSL y la llave privada en RSA SHA256 donde exportaras un archivo .bin y luego ese .bin codearlo a base 64

Algo así se hace en los webservice de hacienda en México y parece que es muy similar con ustedes.
Responder Con Cita
  #7  
Antiguo 29-03-2023
CrazySoft CrazySoft is offline
Miembro
 
Registrado: abr 2005
Posts: 96
Poder: 20
CrazySoft Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
En TicketBAI seguro que encuentras algo parecido.
Debemos enviar un XML y ese mismo fichero tiene que tener una sección de firma. El algoritmo debe ser SHA256 (igual que el tuyo) y en cuanto a las etiquetas que debe rellenar en la firma deben ser muy similares a las que tenemos que rellenar nosotros.

Gracias Neftali, se parece bastante similar, haré algunas pruebas con esa guia
Responder Con Cita
  #8  
Antiguo 29-03-2023
CrazySoft CrazySoft is offline
Miembro
 
Registrado: abr 2005
Posts: 96
Poder: 20
CrazySoft Va por buen camino
Cita:
Empezado por JCz Ver Mensaje
Si deseas firmar si o si con OpenSSL puedes mirar el proyecto https://projetoacbr.com.br/, allí lo tienen implementado y es open source ; en todo caso puedes adquirir la la librería de Chilkat y te "ahorras" toda la codificación; en todo caso están también las Secure Black Box https://www.nsoftware.com/sbb/.

Saludos.

Muchas gracias JCz, no es obligatorio lo del OpenSSL pero me parece la mejor opción, baje el ejemplo de proyectoacbr, y esta bien tiene toda la implementación de OpenSSL, también intente con las librerías DLL de Chilkat, pero no logre firmar o me falta implementar algunas cosas más en el envió, aun no provee Secure Black Box
Responder Con Cita
  #9  
Antiguo 29-03-2023
CrazySoft CrazySoft is offline
Miembro
 
Registrado: abr 2005
Posts: 96
Poder: 20
CrazySoft Va por buen camino
Cita:
Empezado por pgranados Ver Mensaje
No me carga el sitio web, pero con la serie de pasos que envías parece que debes de obtener en un string todo el nodo que contiene la firma y codificarlo en SHA256 y luego el nodo con el valor ya codificado en SHA256 debes de exportarlo a un .txt y luego hacer una digestión con OPENSSL y la llave privada en RSA SHA256 donde exportaras un archivo .bin y luego ese .bin codearlo a base 64

Algo así se hace en los webservice de hacienda en México y parece que es muy similar con ustedes.



Muchas gracias pgranados, si hice lo que me sugieres tengo la parte de la factura que le saco el has256 y lo convierto en base64, el resultado obtenido lo pongo en la etiqueta DigestValue que genero el XML de signature con la configuración a ese le saco el SHA256 y lo encripto con RSA mediante el OpenSSL con la llave privada obteniendo el resultado lo codifico con base64 y lo pongo en la etiqueta SignatureValue y para finalizar relleno el X590Certificate con la llave publica, combino los 2 archivo XML de la factura con signature, verificando con XSD que no devuelve y procedo al envió dando el error "EL FIRMADO DEL XML ES INCORRECTO: Validacion Signature, false,"



de este XML obtengo el RSA+SHA256+Base64 para ponerla en SignatureValue, creo que el error esta en esta parte, no se si obtine de todo este fragmento o solo de la etiqueta "DigestValue" o de otra


Código PHP:
<SignedInfo>
            <
CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod>
            <
SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"></SignatureMethod>
            <
Reference URI="">
                <
Transforms>
                    <
Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></Transform>
                    <
Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"></Transform>
                </
Transforms>
                <
DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
                <
DigestValue>HWk2FfKj94wnmeowdvxzv1hR3g2LDNd9C5hAAJFnG40=</DigestValue>
            </
Reference>
        </
SignedInfo
</div>

este es el XML unido, validado con XSD y enviado a grandes rasgos

Código PHP:
<facturaElectronicaCompraVenta xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="facturaElectronicaCompraVenta.xsd">
    <
cabecera>
         
Datos de la factura 
        
.        .
        .
     </
cabecera>
    <
detalle>
        
Detalle de la factura
        
.        .
        .
     </
detalle>

    <
Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
        <
SignedInfo>
            <
CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod>
            <
SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"></SignatureMethod>
            <
Reference URI="">
                <
Transforms>
                    <
Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></Transform>
                    <
Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"></Transform>
                </
Transforms>
                <
DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
                <
DigestValue>HWk2FfKj94wnmeowdvxzv1hR3g2LDNd9C5hAAJFnG40=</DigestValue>
            </
Reference>
        </
SignedInfo>
        <
SignatureValue>Spf1ElB6bhHov5WtxXO633cDKmYBFAWrVedQgtet0fWAp........</SignatureValue>
        <
KeyInfo>
            <
X509Data>
                <
X509Certificate>
                
MIIErjCCA5agAwIBAgIIKiSbJT8MhAAwDQYJKoZIhvcNAQEFBQAwgbUxCzAJBgNV
       BAYTAkJPMQ8wDQYDVQQIDAZMQSBQQVoxDzANBgNVBAcMBkxBIFBBWjEeMBwGA1UE
       
.......
</
X509Certificate>
            </
X509Data>
        </
KeyInfo>
    </
Signature>
</
facturaElectronicaCompraVenta
</div>
Responder Con Cita
  #10  
Antiguo 29-03-2023
JCz JCz is offline
Miembro
 
Registrado: oct 2021
Posts: 29
Poder: 0
JCz Va por buen camino
Cita:
Empezado por CrazySoft Ver Mensaje
Muchas gracias JCz, no es obligatorio lo del OpenSSL pero me parece la mejor opción, baje el ejemplo de proyectoacbr, y esta bien tiene toda la implementación de OpenSSL, también intente con las librerías DLL de Chilkat, pero no logre firmar o me falta implementar algunas cosas más en el envió, aun no provee Secure Black Box
La web de Chilkat tiene incluso un generador de código, https://tools.chilkat.io/xmlDsigGen, allí puedes colocar un XML válido y te genera la codificación en el lenguaje que elijas usando claro su librería.

Espero te sirva de ayuda.
Responder Con Cita
  #11  
Antiguo 29-03-2023
CrazySoft CrazySoft is offline
Miembro
 
Registrado: abr 2005
Posts: 96
Poder: 20
CrazySoft Va por buen camino
Cita:
Empezado por JCz Ver Mensaje
La web de Chilkat tiene incluso un generador de código, https://tools.chilkat.io/xmlDsigGen, allí puedes colocar un XML válido y te genera la codificación en el lenguaje que elijas usando claro su librería.

Espero te sirva de ayuda.
Muchas gracias lo estoy probando en este momento
Responder Con Cita
  #12  
Antiguo 29-03-2023
CrazySoft CrazySoft is offline
Miembro
 
Registrado: abr 2005
Posts: 96
Poder: 20
CrazySoft Va por buen camino
Estimado JCz, no dio, genere el código con Chilkat, todo va bien mando mi factura generada en XML, comienza el proceso hasta el momento que realiza la firma, hay sale "Failed" y termina no hay más información, tampoco encuentro soporte
Responder Con Cita
  #13  
Antiguo 29-03-2023
CrazySoft CrazySoft is offline
Miembro
 
Registrado: abr 2005
Posts: 96
Poder: 20
CrazySoft Va por buen camino
Volviendo con lo que estoy realizando, no se que parte es la "sección de la firma" si es todo lo que esta en Signature, solo DigestValue o que fragmento es el que debo utilizar para hacer el firmado RSA+SHA26+Base64 con la llave privada y poner en SignatureValue o que es lo que tengo que procesar




Código PHP:
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<
SignedInfo>
<
CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod>
<
SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"></SignatureMethod>
<
Reference URI="">
<
Transforms>
<
Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></Transform>
<
Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"></Transform>
</
Transforms>
<
DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
<
DigestValue>HUKJKaSHPI3NV2HqiiL1Ws1bkqQ/sCBbdz1LSlw+q04=</DigestValue>
</
Reference>
</
SignedInfo>
<
SignatureValue>k6bvvmXOR....</SignatureValue>
<
KeyInfo>
<
X509Data>
<
X509Certificate>
 
MIIHlDCCBXygAwIBAgIIUqZ2b6ju ...</X509Certificate> </X509Data>
</
KeyInfo>
</
Signature
Responder Con Cita
  #14  
Antiguo 31-03-2023
oloconer oloconer is offline
Registrado
 
Registrado: mar 2023
Posts: 1
Poder: 0
oloconer Va por buen camino
Queriendo colaborar

Vamos paso a paso: ¿Como obtuviste este valor?
Cita:
<DigestValue>HUKJKaSHPI3NV2HqiiL1Ws1bkqQ/sCBbdz1LSlw+q04=</DigestValue>
Relata para ver si te sigo el paso y avanzar

Última edición por Casimiro Notevi fecha: 01-04-2023 a las 10:59:50.
Responder Con Cita
  #15  
Antiguo 03-04-2023
CrazySoft CrazySoft is offline
Miembro
 
Registrado: abr 2005
Posts: 96
Poder: 20
CrazySoft Va por buen camino
Cita:
Empezado por oloconer Ver Mensaje
Vamos paso a paso: ¿Como obtuviste este valor?

Relata para ver si te sigo el paso y avanzar
Oloconer, muchas gracias por tu colaboración de antemano, esto es lo que realizo:

Para obtener el <DigestValue>, primero hago la canonicalización de la factura.xml y de este archivo en C14N saco el sha256 con el openssl y lo transformo a base 64

openssl dgst -sha256 -binary -out factura.256 factura.xml
openssl base64 -in factura.256 -out factura.b64

para el valor de <SignatureValue> lo obtengo aplicando el algoritmo RAS-SHA26 de la factura.xml y trasformo a base 64 el resultado

openssl dgst -sha256 -sign clave_privada.pem -out firma.key factura.xml
openssl base64 -in firma.key -out firma.b64

para el valor <X509Certificate> lo tomo directamente del certificado, quitando el encabezado y final del archivo

posteriormente complemento la factura.xml con las etiquetas de <Signature> ..... y lo anteriormente generado

para finalizar verifico la factura.xml con el xsd de la misma y envío


Gracias
Responder Con Cita
  #16  
Antiguo 03-04-2023
CrazySoft CrazySoft is offline
Miembro
 
Registrado: abr 2005
Posts: 96
Poder: 20
CrazySoft Va por buen camino
Cita:
Empezado por JCz Ver Mensaje
La web de Chilkat tiene incluso un generador de código, https://tools.chilkat.io/xmlDsigGen, allí puedes colocar un XML válido y te genera la codificación en el lenguaje que elijas usando claro su librería.

Espero te sirva de ayuda.
Gracias JCz, logre generar el XML de la factura firmada con Chilkat, pero me rechaza al momento que la envió "EL FIRMADO DEL XML ES INCORRECTO: Validación Signature, false"

es el mismo error que me da cuando genero manualmente la firma con el openssl


saludos
Responder Con Cita
  #17  
Antiguo 03-04-2023
JCz JCz is offline
Miembro
 
Registrado: oct 2021
Posts: 29
Poder: 0
JCz Va por buen camino
Cita:
Empezado por CrazySoft Ver Mensaje
Gracias JCz, logre generar el XML de la factura firmada con Chilkat, pero me rechaza al momento que la envió "EL FIRMADO DEL XML ES INCORRECTO: Validación Signature, false"

es el mismo error que me da cuando genero manualmente la firma con el openssl


saludos
Es posible que puedas pasar un XML válido, que haya sido aprobado por el SIAT? También el xml que lo generas.
Responder Con Cita
  #18  
Antiguo 04-04-2023
CrazySoft CrazySoft is offline
Miembro
 
Registrado: abr 2005
Posts: 96
Poder: 20
CrazySoft Va por buen camino
Cita:
Empezado por JCz Ver Mensaje
Es posible que puedas pasar un XML válido, que haya sido aprobado por el SIAT? También el xml que lo generas.

Gracias JCz, al final logre firmar con Chilkat aumentado unos parámetros en CkXmlDSigGen_putBehaviors(gen, 'IndentedSignature,AttributeSortingBug,EnvelopedTransformFirst'), pero no se porque tenga que ponerlos así, pero al final funciono, sin eso no daba


de todos modos adjunto los 2 archivos uno valido y el otro con error antes del cambio, pero debería poderse firmar con openssl o tal vez mi error este en la canonicalización, porque la factura en XML la canonicalizo a C14N con otra herramienta libxml2 que tal vez deba poner algún parámetro
Archivos Adjuntos
Tipo de Archivo: zip xml.zip (6,7 KB, 29 visitas)
Responder Con Cita
  #19  
Antiguo 04-04-2023
JCz JCz is offline
Miembro
 
Registrado: oct 2021
Posts: 29
Poder: 0
JCz Va por buen camino
Cita:
Empezado por CrazySoft Ver Mensaje
Gracias JCz, al final logre firmar con Chilkat aumentado unos parámetros en CkXmlDSigGen_putBehaviors(gen, 'IndentedSignature,AttributeSortingBug,EnvelopedTransformFirst'), pero no se porque tenga que ponerlos así, pero al final funciono, sin eso no daba


de todos modos adjunto los 2 archivos uno valido y el otro con error antes del cambio, pero debería poderse firmar con openssl o tal vez mi error este en la canonicalización, porque la factura en XML la canonicalizo a C14N con otra herramienta libxml2 que tal vez deba poner algún parámetro
Segun la documentación del Chilkat el parámetro agregado EnvelopedTransformFirst (Obliga a la http://www.w3.org/2000/09/xmldsig#enveloped-signature a aparecer en primer lugar cuando hay varias transformaciones para una referencia.)

En la que rechaza lo tienes
Código PHP:
<Transforms>
        <
Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/>
        <
Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
      </
Transforms
Responder Con Cita
  #20  
Antiguo 05-04-2023
CrazySoft CrazySoft is offline
Miembro
 
Registrado: abr 2005
Posts: 96
Poder: 20
CrazySoft Va por buen camino
Cita:
Empezado por JCz Ver Mensaje
Segun la documentación del Chilkat el parámetro agregado EnvelopedTransformFirst (Obliga a la http://www.w3.org/2000/09/xmldsig#enveloped-signature a aparecer en primer lugar cuando hay varias transformaciones para una referencia.)

En la que rechaza lo tienes
Código PHP:
<Transforms>
        <
Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/>
        <
Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
      </
Transforms



Gracias por responder, no se de firmas digitales, pero me parece que eso no interesaría ya que la firma se la obtiene o se realiza de la parte de la factura nada más y el resto me parece no interesa o no interviene por que es información complementaria y el calculo solo se realiza del XML de la factura, para mi es el fragmento de texto de la factura por el algoritmo RSA+HAS256, sin tomar en consideración lo que se le va aumentando
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
Alguien con experiencia en firma electrónica de PDF? starlet Varios 9 05-06-2017 18:52:30
Firma en factura electrónica facturaE Galahad Varios 8 19-06-2016 00:45:14
Validar firma de factura electrónica (formato Facturae) maro Varios 79 22-09-2015 09:45:17
problema con openssl expertis Varios 1 11-10-2012 22:53:54
capturador firma electronica elguille Varios 2 26-04-2011 08:16:10


La franja horaria es GMT +2. Ahora son las 18:03:22.


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