cauoc
Class Caops

java.lang.Object
  extended by cauoc.Caops

public class Caops
extends java.lang.Object

Classe que proporciona les funcions necessàries per realitzar operacions amb l'Autoritat de Certificació


Field Summary
(package private) static java.lang.String CA_ALIAS
           
(package private) static java.lang.String CA_KS
           
(package private) static java.lang.String CA_PATH
           
(package private) static char[] CA_PWD
           
(package private) static java.lang.String CERT_PATH
           
(package private) static java.lang.String CRL_PATH
           
(package private) static java.lang.String PRIV_PATH
           
(package private) static java.lang.String PUB_PATH
           
(package private) static java.lang.String SERIAL
           
 
Constructor Summary
Caops()
           
 
Method Summary
static java.lang.String adminCert(java.lang.String absPath, java.security.cert.X509Certificate adminCert)
          Mètode que valida un certificat com a Administrador.
static void esborraCa(java.lang.String absPath)
          Mètode que esborra tots els fitxers de la CA per tal de reiniciar-la manualment.
static boolean existeixCa(java.lang.String absPath)
          Mètode que comprova si existeix la CA.
static java.lang.String generapkcs12(java.lang.String subjectDN, java.lang.String password, java.lang.String absPath)
          Mètode que genera un fitxer PKCS#12 a partir de les dades de l'usuari.
private static byte[] istobytes(java.io.InputStream is)
          Mètode privat que transforma un InputStream en una cadena de bytes
private static X509CRLHolder loadCRL(java.lang.String absPath)
          Métode que carrega el fitxer de la llista de revocació de certificats (CRL).
private static java.security.KeyStore loadks(java.lang.String absPath)
          Métode que carrega el magatzem de claus de la CA per accedir al seu certificat.
private static java.security.PrivateKey loadpk(java.lang.String absPath)
          Métode que carrega la clau privada de la CA.
static boolean publicaCRL(java.lang.String absPath)
          Mètode que publica una nova llista de revocació de certificats (CRL).
static boolean revocaCert(java.lang.String absPath, java.math.BigInteger revSerial, int revMotiu)
          Mètode que revoca un certificat, afegint-lo a la CRL i publicant aquesta.
private static void saveCRL(java.lang.String absPath, X509CRLHolder crlHolder)
          Métode que guarda en un fitxer la llista de revocació de certificats (CRL) i en fa una còpia a la carpeta pública perquè es pugui descarregar.
static java.lang.String signapkcs10(java.lang.String absPath, java.io.InputStream is)
          Mètode que rep una petició de certificació que es signarà per la CA i generarà el certificat resultant.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CA_PATH

static final java.lang.String CA_PATH
See Also:
Constant Field Values

PRIV_PATH

static final java.lang.String PRIV_PATH
See Also:
Constant Field Values

CERT_PATH

static final java.lang.String CERT_PATH
See Also:
Constant Field Values

CRL_PATH

static final java.lang.String CRL_PATH
See Also:
Constant Field Values

PUB_PATH

static final java.lang.String PUB_PATH
See Also:
Constant Field Values

SERIAL

static final java.lang.String SERIAL
See Also:
Constant Field Values

CA_PWD

static final char[] CA_PWD

CA_KS

static final java.lang.String CA_KS
See Also:
Constant Field Values

CA_ALIAS

static final java.lang.String CA_ALIAS
See Also:
Constant Field Values
Constructor Detail

Caops

public Caops()
Method Detail

esborraCa

public static void esborraCa(java.lang.String absPath)
Mètode que esborra tots els fitxers de la CA per tal de reiniciar-la manualment.

Parameters:
absPath - Ruta de l'aplicació

existeixCa

public static boolean existeixCa(java.lang.String absPath)
Mètode que comprova si existeix la CA. Per fer-ho comprova que existeix el keystore i la clau privada de la CA.

Parameters:
absPath - Ruta de l'aplicació
Returns:
True si la CA existeix

signapkcs10

public static java.lang.String signapkcs10(java.lang.String absPath,
                                           java.io.InputStream is)
Mètode que rep una petició de certificació que es signarà per la CA i generarà el certificat resultant. Retornarà el path del fitxer del certificat o un missatge d'error en cas que hi hagi algun problema. Cal que la petició de certificació estigui en format DER.

Parameters:
absPath - Path absolut del Servlet
is - InputStream amb la petició de certificació
Returns:
El Path complert del fitxer del certificat o un missatge d'error si no s'ha pogut generar el certificat

generapkcs12

public static java.lang.String generapkcs12(java.lang.String subjectDN,
                                            java.lang.String password,
                                            java.lang.String absPath)
Mètode que genera un fitxer PKCS#12 a partir de les dades de l'usuari. Aquest fitxer contindrà una cadena de certificats amb el certificat de la CA, el certificat de l'usuari signat per la CA i la clau privada de l'usuari. Retornarà el path del fitxer PKCS#12 o un missatge d'error en cas que hi hagi algun problema.

Parameters:
absPath - Path absolut del Servlet
is - InputStream amb la petició de certificació
Returns:
El Path complert del fitxer del certificat o un missatge d'error si no s'ha pogut generar el certificat

revocaCert

public static boolean revocaCert(java.lang.String absPath,
                                 java.math.BigInteger revSerial,
                                 int revMotiu)
Mètode que revoca un certificat, afegint-lo a la CRL i publicant aquesta.

Parameters:
absPath - absPath Path absolut del Servlet
revSerial - Objecte BigInteger que conté el número del certificat a revocar
revMotiu - Objecte int que conté el codi del motiu de revocació segons el RFC5280
Returns:
True si s'ha pogut dur a terme la revocació

publicaCRL

public static boolean publicaCRL(java.lang.String absPath)
Mètode que publica una nova llista de revocació de certificats (CRL).

Parameters:
absPath - absPath Path absolut del Servlet
Returns:
True si s'ha pogut dur a terme la publicació de la nova CRL

adminCert

public static java.lang.String adminCert(java.lang.String absPath,
                                         java.security.cert.X509Certificate adminCert)
Mètode que valida un certificat com a Administrador. Per fer-ho comprova que està signat per la CA, que no està caducat, que no està revocat i que té drets d'administrador. Cal que el certificat estigui en format DER.

Parameters:
absPath - absPath Path absolut del Servlet
is - InputStream amb el certificat de l'usuari en format DER
Returns:
String que conté un error o la cadena "Login ok" si s'ha pogut verificar el certificat

istobytes

private static byte[] istobytes(java.io.InputStream is)
Mètode privat que transforma un InputStream en una cadena de bytes

Parameters:
is - InputStream a transformar
Returns:
Una cadena de bytes amb la informació de l'InputStream

loadks

private static java.security.KeyStore loadks(java.lang.String absPath)
Métode que carrega el magatzem de claus de la CA per accedir al seu certificat. Retornarà null en cas que no es pugui carregar el magatzem. Els métodes que el cridin hauran d'encarregar-se de notificar l'error.

Parameters:
absPath - Ruta de l'aplicació
Returns:
Objecte KeyStore que conté el magatzem de claus de la CA o null si no s'aconssegueix

loadpk

private static java.security.PrivateKey loadpk(java.lang.String absPath)
Métode que carrega la clau privada de la CA. Retornarà null en cas que no es pugui carregar la clau. Els métodes que el cridin hauran d'encarregar-se de notificar l'error.

Parameters:
absPath - Ruta de l'aplicació
Returns:
Objecte PrivateKey que conté la clau privada de la CA o null si no s'aconssegueix

loadCRL

private static X509CRLHolder loadCRL(java.lang.String absPath)
Métode que carrega el fitxer de la llista de revocació de certificats (CRL). Retornarà null en cas que no es pugui carregar la llista. Els métodes que el cridin hauran d'encarregar-se de notificar l'error.

Parameters:
absPath - Ruta de l'aplicació
Returns:
Objecte X509CRLHolder que conté la llista de revocació de certificats (CRL) o null si no s'aconssegueix

saveCRL

private static void saveCRL(java.lang.String absPath,
                            X509CRLHolder crlHolder)
Métode que guarda en un fitxer la llista de revocació de certificats (CRL) i en fa una còpia a la carpeta pública perquè es pugui descarregar.

Parameters:
absPath - Ruta de l'aplicació
crlHolder - Llista de revocació a guardar