Librería base de Arangí

Las librerías Arangí sustituyen a la librería IDEAS, que durante muchos años ha sido un referente dentro del mundo de la programación criptográfica. Arangí no es una reescritura de los viejos métodos de IDEAS, sino una librería completamente nueva que ofrece todas las funcionalidades criptográficas que un desarrollador puede necesitar en estos momentos. El equipo de desarollo de Arangí espera que a partir de ahora todos los desarrollos que hubiesen utilizado IDEAS utilicen Arangí. Del mismo modo, y en la medida de lo posible, sería razonable que algunas aplicaciones que ahora utilizan IDEAS se reescriban haciendo uso de la nueva librería.

Funcionalidades de Arangí

Estas son las funcionalidades de Arangí:

  • Acceso a dispositivos criptográficos: por un lado se ha diseñado una interfaz para hacer transparente al desarrollador las particularidades de cada tipo de dispositivo y por otro lado se han implementado métodos que permiten tanto realizar firmas como actualizar el contenido de un dispositivo criptográfico.
  • Firma digital: al igual que ocurre con dispositivos también se ha creado una interfaz que cumplen todos los tipos de firma. Entre los nuevos tipos se incluyen varios de firma longeva: XAdES-X-L y PADES-LTV.
  • Certificados digitales: una clase base de certificados ofrece métodos que permiten obtener toda la información de certificados digitales. Una ampliación de dicha clase permite de una forma fácil validar el estado del certificado mediante OCSP o CRL. También se han creado clases que permiten hacer llamadas a OCSPs y tratar con lo que estos responden.
  • Sellos de tiempo: se incluye un cliente de TSA que permite obtener sellos de tiempos. Del mismo modo se ha desarrollado una clase que permite obtener información de una respuesta TSA.
  • Funciones varias: se incluye un cliente LDAP, un cliente de servidores SNTP y múltiples funciones para leer y escribir ficheros, codificar y descodificar base64 o unicode, etc.

Dependencias

Como se puede comprobar en el informe de dependencias, son muchas las librerías necesarias para compilar todo el proyecto de Arangí. En tiempo de ejecución no será necesario incluirlas todas, ya que muchas de ellas sólo sirven para propósitos muy concretos y pueden ser obviadas si dicha funcionalidad no va a ser requerida.

A continuación se muestra una tabla que relaciona funcionalidades con librerías:

Funcionalidades
Obligatorias log4j, bcmail-jdk15on, bcprov-jdk15on, bcpkix-jdk15on
Firma XAdES MITyCLibAPI, MITyCLibTSA, MITyCLibXADES, xmlsec-1.4.2-ADSI, xalan
Firma PDF (PAdES) itextpdf
PKCS#11 (tarjetas) iaikPkcs11Wrapper
LDAP jldap
Gestionar ficheros PKCS#10 o CRMF ejbca-util