Utilidades

CosSignFile

La dll CosSignFile (cossigfile.dll) permite firmar digitalmente desde Cosmos archivos en formato PDF, XML y binario, así como ficheros de factura electrónica XML en formato FacturaE versiones 3.2.1 y 3.2.2, utilizando para ello un certificado digital que deberá estar instalado en el sistema en un almacén de certificados (fichero).

CosSignFile utiliza las librerías JAVA presentes en el software FacturaE, que es un software de libre distribución desarrollado en Java. Por esta razón, es necesario que en el sistema esté instalada una máquina virtual de Java de 32 bits, y que en el path de búsqueda se incluya el directorio donde se encuentre el fichero JVM.DLL.

Esta utilidad está disponible a partir de la versión 7.2 de Cosmos.

Funciones de la dll CosSignFileIr al principio de la página

Los pasos a seguir para firmar un documento desde Cosmos son los siguientes:

  1. Ejecutar la función CosSignFileCreateSigner para obtener un manejador que nos permita la ejecución de las funciones necesarias para realizar el proceso de firma.
  2. Obtención de los literales correspondientes a los valores de las propiedades del documento a firmar (formato del almacén de certificados, algoritmo de firma, formato de firma, modo de firma). Los valores de estas propiedades se podrán obtener invocando las funciones:
    1. CosSignFileGetKeystoreFormats
    2. CosSignFileGetSignAlgorithms
    3. CosSignFileGetPAdESSignFormats
    4. CosSignFileGetCAdESSignFormats
    5. CosSignFileGetXAdESSignFormats
    6. CosSignFileGetSignModes
  3. Ejecución del proceso de firma con la llamada a la función correspondiente (CosSignFileSignFacturaE, CosSignFileSignPDF, CosSignFileSignPAdES, CosSignFileSignXAdES, CosSignFileSignCAdES).
  4. Liberación de los recursos utilizados durante el proceso de firma con la ejecución de la función CosSigFileFreeSigner.

CosSignFileCreateSigner

Esta función retorna un identificador numérico único que será necesario para la ejecución de las funciones de asignación de propiedades de firma y para el proceso de firma en sí.

CosSignFileFreeSigner

En esta función se indicará que se liberen los recursos del manejador de firma pasado como parámetro.

Después de ejecutar esta función, el identificador pasado como parámetro no podrá volver a utilizarse para firmar un documento. Se deberá crear un nuevo identificador ejecutando la función CosSignFileCreateSigner.

CosSignFileSignFacturaE

Esta función firmará en formato FacturaE el fichero XML pasado como parámetro.

CosSignFileSignPDF

Esta función firmará el fichero PDF pasado como parámetro.

CosSignFileSignPAdES

Esta función firmará el fichero PDF pasado como parámetro utilizando el formato PAdES (PDF Advanced Electronic Signatures).

CosSignFileSignXAdES

Esta función firmará el fichero XML pasado como parámetro utilizando el formato XAdES (XML Advanced Electronic Signatures).

CosSignFileSignCAdES

Esta función firmará el fichero pasado como parámetro utilizando el formato CAdES (CMS Advanced Electronic Signatures).

CosSignFileGetKeystoreFormats

Esta función permite consultar la lista de posibles tipos de almacenes de certificados soportados por la API.

CosSignFileGetSignAlgorithms

Esta función permite consultar la lista de posibles algoritmos de cifrado soportados por la API.

CosSignFileGetPAdESSignFormats

Esta función permite consultar la lista de posibles formatos de firma PAdES soportados por la API.

CosSignFileGetCAdESSignFormats

Esta función permite consultar la lista de posibles formatos de firma CAdES soportados por la API.

CosSignFileGetXAdESSignFormats

Esta función permite consultar la lista de posibles formatos de firma XAdES soportados por la API.

CosSignFileGetSignModes

Esta función permite consultar la lista de posibles modos de firma soportados por la API.

Fichero de logIr al principio de la página

La DLL CosSignFile.dll permite la creación de un log de operaciones en formato Log4Java definiendo el fichero log4j.properties en el directorio donde se encuentre el archivo CosSignFile.dll.

Ejemplo:

# Root logger option
log4j.rootLogger=INFO, stdout, file

# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# Redirect log messages to a log file, support file rolling.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=c:/tmp/log4j-cosmoSigner.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

En el atributo “log4j.rootLogger” se indica el nivel de log. Los valores posibles son ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE y WARN.

El atributo “log4j.appeder.file.File” indicará la ruta del fichero de log.

Para más información, consulte la documentación de Log4j en la siguiente dirección: https://logging.apache.org/log4j.

Consideraciones sobre las rutas de los ficherosIr al principio de la página

La DLL CosSignFile.dll hace uso de una serie de clases programadas en lenguaje Java para realizar el proceso de firma de archivos XML, PDF y binarios. Por esta razón, las rutas de los archivos de almacén de firmas, ficheros XML, ficheros PDF y ficheros binarios deben tener como separador de directorio el carácter “/”, en lugar del “\” propio de Microsoft Windows.

EjemplosIr al principio de la página

En el documento PDF puede consultar los siguientes ejemplos: