ENCRIPTAR con el algoritmo RSA-SHA256.
Posted: Sat Mar 11, 2023 12:51 pm
Saludos Amigos.
En Bolivia se esta implementando el sistema de facturacion en linea hace mas de dos años
El SIN (Sistema de Impuestos Nacionales) definio dos tipos de facturacion en linea: Con y Sin Firma digital
Ahora me toco el tema de la firma digital
El proceso de firmado del XML de la factura es:
En xHarbour creo que solo se lo puede hacer hacer esto con OpenSSL
Ya tengo mi programa enlazado con: hbssl, libeay32, ssleay32 ,libssl, libcrypto
Alguien me puede dar una mano para hacer el proceso de encriptacion con RSA-SHA256.
- Como debo usar las funciones de OpenSSL
- Podria usar, tambien, OpenSSL.exe para hacer el proceso en forma externa con RunCMD()
De antemano, gracias por la respuesta
Atentamente
Rolando
Cochabamba, Bolivia
PD: trabajo con FWH, xHarbour, ADS
En Bolivia se esta implementando el sistema de facturacion en linea hace mas de dos años
El SIN (Sistema de Impuestos Nacionales) definio dos tipos de facturacion en linea: Con y Sin Firma digital
Ahora me toco el tema de la firma digital
El proceso de firmado del XML de la factura es:
Llegue al paso 7 donde al HASH de la firma la tengo que ENCRIPTAR con el algoritmo RSA-SHA256.1.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.
2.Aplicara al resultado el algoritmo sha256 a objeto de obtener el HASH.
3.Obtener una cadena aplicando al anterior HASH el algoritmo Base64.
4.Adicionar las etiquetas de signature al XML.
5.Agregar a la etiqueta Digest Value el valor obtenido en el paso 4.
6.Tomar la sección de la firma y obtener un HASH del mismo aplicando el algoritmo SHA256.
7.Encriptar el HASH obtenido utilizando el algoritmo RSA SHA256 con la llave privada.
8.Aplicar a la cadena resultante el algoritmo Base64 para obtener una cadena.
9.Adicionar a la etiqueta de Signature Value la cadena anterior.
10.Finalmente colocar en la etiqueta X509 Certificate la llave publica.
11.Devolver el XML firmado.
En xHarbour creo que solo se lo puede hacer hacer esto con OpenSSL
Ya tengo mi programa enlazado con: hbssl, libeay32, ssleay32 ,libssl, libcrypto
Alguien me puede dar una mano para hacer el proceso de encriptacion con RSA-SHA256.
- Como debo usar las funciones de OpenSSL
- Podria usar, tambien, OpenSSL.exe para hacer el proceso en forma externa con RunCMD()
De antemano, gracias por la respuesta
Atentamente
Rolando
Cochabamba, Bolivia
PD: trabajo con FWH, xHarbour, ADS