CALCULO DE TIMBRE ELECTRÓNICO OPENSSL

Ejemplo del SII

El SII en su documento Manual de Certificación

Titulo : TIMBRE ELECTRONICO DE EJEMPLO

pagina: 25

Descargar Manual Certificación SII

Del XML indicado se arma el string que será firmado (Mensaje)


Mensaje=

<DD><RE>97975000-5</RE><TD>33</TD><F>27</F><FE>2003-09-08</FE> <RR>8414240-9</RR><RSR>JORGE GONZALEZ LTDA</RSR><MNT>502946</M NT><IT1>Cajon AFECTO</IT1><CAF version="1.0"><DA><RE>97975000- 5</RE><RS>RUT DE PRUEBA</RS><TD>33</TD><RNG><D>1</D><H>200</H> </RNG><FA>2003-09-04</FA><RSAPK><M>0a4O6Kbx8Qj3K4iWSP4w7KneZYe J+g/prihYtIEolKt3cykSxl1zO8vSXu397QhTmsX7SBEudTUx++2zDXBhZw==< /M><E>Aw==</E></RSAPK><IDK>100</IDK></DA><FRMA algoritmo="SHA1 withRSA">g1AQX0sy8NJugX52k2hTJEZAE9Cuul6pqYBdFxj1N17umW7zG/hAa vCALKByHzdYAfZ3LhGTXCai5zNxOo4lDQ==</FRMA></CAF><TSTED>2003-09 -08T12:28:31</TSTED></DD>


Archivo: mensaje.txt
Desde el Código de Autorización de Folios (CAF) el SII entrega la llave privada en
formato PEM con la cual se firmará el Mensaje.

-----BEGIN RSA PRIVATE KEY-----
MIIBOwIBAAJBANGuDuim8fEI9yuIlkj+MOyp3mWHifoP6a4oWLSBKJSrd3MpEsZd
czvL0l7t/e0IU5rF+0gRLnU1Mfvtsw1wYWcCAQMCQQCLyV9FxKFLW09yWw7bVCCd
xpRDr7FRX/EexZB4VhsNxm/vtJfDZyYle0Lfy42LlcsXxPm1w6Q6NnjuW+AeBy67
AiEA7iMi5q5xjswqq+49RP55o//jqdZL/pC9rdnUKxsNRMMCIQDhaHdIctErN2hC
IP9knS3+9zra4R+5jSXOvI+3xVhWjQIhAJ7CF0R0S7SIHHKe04NUURf/7RvkMqm1
08k74sdnXi3XAiEAlkWk2vc2HM+a1sCqQxNz/098ketqe7NuidMKeoOQObMCIQCk
FAMS9IcPcMjk7zI2r/4EEW63PSXyN7MFAX7TYe25mw==
-----END RSA PRIVATE KEY-----


El resultado obtenido de la firma RSA-SHA1, utilizado la llave privada sobre el

mensaje es:

pqjXHHQLJmyFPMRvxScN7tYHvIsty0pqL2LLYaG43jMmnfiZfllLA0wb32lP+HBJ/tf8nziSeorvjlx410ZImw==

CALCULO DE TIMBRE ELECTRÓNICO OPENSSL

Pasos:

1. Quitar el retorno de carro y saltos de linea del archivo mensaje.txt con la siguiente secuencia de

comandos

tr -d "\n\r" < mensaje.txt > mensaje2.txt

2. Con el archivo de texto mensaje2.txt y la clave privada, contenida en el archivo clave.pem

calcular la firma RSA-SHA1 con openssl, mediante la siguiente secuencia.

openssl dgst -sha1 -sign clave.pem -out sha1.sign mensaje2.txt

3. El resultado de la firma RSA-SHA1 se guardará en el archivo sha1.sign, generado en el paso 2,

el cual deberá ser convertido a base 64 de la siguiente forma:

base64 sha1.sign > resultado.txt

4. Con el comando cat se visualizará la respuesta.

cat resultado.txt


pqjXHHQLJmyFPMRvxScN7tYHvIsty0pqL2LLYaG43jMmnfiZfllLA0wb32lP+HBJ/ tf8nziSeorvjlx410ZImw==

Comentarios

Entradas populares de este blog

Creación de un DTE de boleta electrónica usando AppDTE Api:

Guía de Consulta de DTE

USANDO XMLSEC PARA FIRMAR ARCHIVOS XML