Ver Mensaje Individual
  #5  
Antiguo 28-03-2023
JCz JCz is offline
Miembro
 
Registrado: oct 2021
Posts: 29
Reputación: 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