
Además del código del proyecto se puede encontrar una extensa documentación así como diversos ejemplos de uso de las librerías.
Además de la implementación de un provider JCE para usar en Java también contiene otras utilidades que pueden ser de interés a la hora de hacer una aplicación basada en el DNI electrónico, especialmente si se quieren implementar servicios de valor añadido. Las más relevantes son:
- Librería para leer y escribir objetos codificados en ASN.1
- API para comunicaciones TLS de cliente
- Generador de Certificados X.509, CRLs y ficheros PKCS#12
- Generación de Certificados de Atributos
- Generación y procesado de objetos S/MIME y CMS (PKCS#7/RFC 3852)
- Generación y procesado de consultas OCSP (RFC 2560)
- Generación y procesado de sellos de tiempo TSP (RFC 3161)
- Generación y procesado de objetos OpenPGP (RFC 2440).
Señores, no dispongo de tiempo por l momento, aí pes, dejo este tema a mitad, para abordr cuando sepa más.
SALUDOS :P
______________________
A continuación se muestra un ejemplo de aplicación realizada en Java usando los servicios criptográficos del provider Bouncy Castle en lugar del provider por defecto que viene en el sistema.
La aplicación en cuestión realiza el Hash (resumen criptográfico) de un fichero de texto en claro.
EJEMPLO de código:
/* Cargar "provider" */
Security.addProvider(new BouncyCastleProvider());
/* Crear función resumen, SHA-1 en el ejemplo */
MessageDigest messageDigest = MessageDigest.getInstance("SHA");
/* Leer fichero de 1k en 1k y resumir*/
byte[] buffer = new byte[1000];
FileInputStream in = new FileInputStream(
int leidos = in.read(buffer, 0, 1000);
while (leidos != -1)
{
// Pasa texto claro a la función resumen
messageDigest.update(buffer);
leidos = in.read(buffer, 0, 1000);
}
in.close();
// Completar el resumen
byte[] resumen = messageDigest.digest();
// Mostrar resumen
System.out.println("RESUMEN:");
mostrarBytes(resumen);
System.out.println();