Linea de comandos

Sello de tiempo

Si queremos generar un sello de tiempo para nuestro fichero debemos llamar a la clase GetTimeStamp y pasarle el fichero y la URL de la TSA (Time Stamp Authority):

java -cp "%CLASSPATH%" GetTimeStamp \ 
    Hello.txt http://timestamping.edelweb.fr/service/tsp

Se generará automáticamente el fichero Hello.txt.stamp con el sello de tiempo.

Si queremos verificar el sello de tiempo hacemos:

java -cp "%CLASSPATH%" VerifyTimeStamp Hello.txt Hello.txt.stamp

ClickSign para desarrolladores

Clicksign dispone de una interfaz gráfica sencilla e intuitiva pero, ¿qué pasa si queremos integrar la funcionalidad de firma electrónica de Clicksign en nuestra propia aplicación? Si nuestro lenguaje de programación permite ejecutar subprocesos debemos lanzar una llamada a la clase (binario ejecutable de Java) que deseemos. Esto lo podemos probar desde una terminal de comandos.

Java y el Class-Path

Para ejecutar una clase solo tenemos que utilizar el comando java y a continuación la clase que queremos ejecutar.

java <nombre de clase>

Clicksign empaqueta todas las clases en en diferentes ficheros .jar los cuales se encuentran en el subdirectorio lib  del directorio de instalación de Clicksign.

De esta manera ¿como sabe Java donde estan las clases cuando llamo a una de estas?

Muy sencillo, solo tenemos que indicarle al comando donde se encuentran las clases, es lo que se conoce como Class-Path. Supongamos que el directorio de instalación es el de defecto, para llamar una clase solo tenemos que ejecutar:

java -cp "ruta de las clases e ism.properties" <nombre de clase>

Para que la llamada quede mas limpia configuraremos la ruta con variables de entorno:

set CSHOME=\Archivos de programa\isigma\clicksign\
set CLASSPATH=%CSHOME%;%CSHOME%lib\*

Ahora que tenemos la variable CLASSPATH configurada la utilizaremos en la llamada a java:

java -cp "%CLASSPATH%" <nombre de clase>

SDK para desarrolladores

Clicksign dispone de una interfaz gráfica sencilla e intuitiva pero, ¿qué pasa si queremos integrar la funcionalidad de firma electrónica de Clicksign en nuestra propia aplicación? Si nuestro lenguaje de programación permite ejecutar subprocesos debemos lanzar una llamada a la clase (binario ejecutable de Java) que deseemos. Esto lo podemos probar desde una terminal de comandos.

Busca los métodos que quieras aplicar a través de las opciones de menú de la izquierda.

Función firmar

Si queremos firmar un documento PDF debemos llamar a la clase SignFile, la llamada será la siguiente:



java -cp "%CLASSPATH%" SignFile Hello.pdf Hello.signed.pdf

Donde Hello.pdf es el fichero PDF de entrada que queremos firmar y Hello.pdf.signed el fichero de salida que se generará con la firma.

Por otro lado puede ser que nos interese firmar otro tipo de fichero, por ejemplo un .txt. Para ello ejecutamos la siguiente orden:



java -cp "%CLASSPATH%" SignFile Hello.txt Hello.txt.p7d

De esta manera generamos una firma detached, por otro lado, si deseamos llevar acabo una firma atached debemos ejecutar el comando de la siguiente manera



java -cp "%CLASSPATH%" SignFile -a Hello.txt Hello.txt.p7a

Para automatizar el proceso seleccionando el certificado y pasando el PIN, debemos usasr el siguiente comando:



java -cp "%CLASSPATH%" es.isigma.ism.winmenu.SignFiles --certificate ".*CN=Nombre cert.*" 
--pin clave --out-file ruta_fichero_salida -no-gui ruta_fichero_a_firmar
Aplicando las rutas de documento y PIN correctos.

Si quieres puedes firmar varios de golpe en una sola orden, la única regla es que tengas un flag --certificate con el certificado a continuación y otro flag --pin con la clave. Por ejemplo:


java -cp "%CLASSPATH%" es.isigma.ism.winmenu.SignFiles documento1.pdf documento2.pdf 
--certificate ".*CN=EMPRESA-X .*" 
--pin clave 

 

SignLoop

Para ejecutar una instancia de SignLoop  completa debemos llevar a cabo la siguiente llamada:


java -cp "%CLASSPATH%" es.isigma.ism.autosign.AutoSign inbox outbox [ selector ]

inbox y outbox son nombres de carpetas en tu ordenador. SignLoop recogerá todos los archivos a

firmar de inbox, los firmará electrónicamente y guardará en outbox.

El parámetro opcional selector es una expresión regular que se usará para seleccionar un certificado entre los disponibles. El primer certificado cuyo Distinguished Name (DN) del sujeto coincida con la expresión regular será seleccionado. Si el parámetro no está presente, se usará una selección manual interactiva.

Ejemplos de expresiones regulares:

• .*CN=Peter Frampton.* - selecciona el primer certificado cuyo Common Name (CN) empiece con Peter Frampton •

.*C=ES,.* - selecciona un certificado cuyo país (C) sea ES (España)

Ejemplos:


java -cp "%CLASSPATH%" es.isigma.ism.autosign.AutoSign \
        C:\inbox C:\outbox ".*CN=Mariano.*"

Si tienes dudas acerca de cual es el DN del sujeto para el certificado que quieres seleccionar, puedes arrancar AutoSign sin parámetros, y seleccionar uno manualmente. La salida estándar te dará entre otros el DN del sujeto del certificado seleccionado, p.e.:

 

Certificado Seleccionado: CN=Paula Davies, OU=Development, O=Big Co Inc.,L=Canberra, C=AU

Ejecutando SignLoop de este modo, puedes arrancar instancias múltiples, cada una de ellas firmando archivos de una carpeta de entrada distinta, con un certificado distinto.

CUIDADO: No pongas el caracter \ al final de una ruta ya que puede escapar las comillas que hayan a continuación y no reconocer el siguiente parámetro.

 

Si queremos evitar el diálogo de entrada de PIN, también podemos añadirlo como parámetro al final, tal como muestra el siguiente ejemplo:


java -cp "%CLASSPATH%" es.isigma.ism.autosign.AutoSign inbox/ outbox/ '.*CN=Demo.*' ismdemo

Función verificar

Para verificar una firma electrónica disponemos de la clase VerifySignature:

java -cp "%CLASSPATH%" VerifySignature Hello.signed.pdf
java -cp "%CLASSPATH%" VerifySignature Hello.txt.p7a

En el caso de la firma detached debemos pasar el fichero original y la firma:

java -cp "%CLASSPATH%" VerifySignature Hello.txt Hello.txt.p7d

Ejemplos de nuestros clientes

CatCert
apdcat
Mitsubishi Electric
Firmaprofesional
Barnatrans
Cambra de Comerç de Barcelona
Seur
Osborne
Chevrolet
Universitat Rovira i Virgili
Esade
Ajuntament de Manresa
Universitat Ramon Llull
Ordesa
AIDIMA
CCCB
Verificaciones Industriales de Andalucía
Ajuntament de Cornellà de Llobregat
FundeSalud
Caixa d'Enginyers
DigiSign
Professional staff
Consejo Andaluz de Veterinarios de Andalucía
Il·lustre Col·legi de Veterinaris de Barcelona