miércoles, noviembre 16, 2005

Manipulación en Java de los CAF del SII

Cuando se desarrolla un sistema de emisión de DTEs en Java, uno de las primeras tareas es "procesar" el archivo XML de autorización de Folios que se descarga desde el SII, con la intención de recuperar la llave privada y llave pública del CAF. La llave privada se utiliza para firmar el timbre de todos los DTEs que utilizarán este rango de folios.
Para usar la llave privada que entrega el SII en Java, se debe hacer una transformacion sobre ella, dicha transformación se puede hacer con la herramienta OpenSSL:

http://gnuwin32.sourceforge.net/packages/openssl.htm (windows)
http://www.openssl.org (linux)

Se sugiere descargar e instalar la herramienta y utilizarla con el comando "pkcs8", que de acuerdo a la documentación:

http://www.openssl.org/docs/apps/pkcs8.html

Permite transformar una llave privada de formato tradicional a un formato pkcs8 que puede ser leido y manipulado con Java. A la ejecución del comando se debe dar como entrada la llave privada que entrega el SII (sólo la llave, la que se encuentra dentro de los tags ), aplicar la transformación y usar en Java la llave transformada. Esta transformación seria algo como:

openssl pkcs8 -in llaveSII.pem -topk8 -nocrypt -out llaveOK.pem

en donde llaveSII.pem es la llave que entrega el SII (lo que viene entre las lineas "-----BEGIN RSA PRIVATE KEY-----" y "-----END RSA PRIVATE KEY-----", incluidas estas lineas) y llaveOK.pem es el nombre del archivo que tendrá la llave transformada, y es la que debe usar con Java para crear el PrivateKey.

miércoles, octubre 26, 2005

Inauguración

Estimados Sres,

En este espacio pretendo ir publicando diversos articulos referentes a la implementación de un sistema de DTEs y las respuestas que me han tocado dar más de una vez a las personas encargadas de diseñar y desarrollar un sistema de este tipo.
La documentación del SII al respecto es bastante poca y no existen espacios para debatir entre los desarrolladores, el cual pretendo lograr con este blog.