com.telventi.firmaweb
Interface FirmaWebMCA

All Superinterfaces:
javax.ejb.EJBObject, java.rmi.Remote

public interface FirmaWebMCA
extends javax.ejb.EJBObject

La interfaz FirmaWebMCA permite realizar un procedimiento de firma/multifirma de ficheros por usuario y servidor. Adicionalmente proporciona unos métodos frecuentes de consulta de información sobre transacciones de firma realizadas del tipo mencionado.

En el proceso de firma/multifirma de ficheros por usuario intervienen tres agentes:
- Usuario (cliente)
- Aplicación que utiliza la interfaz
- Plataforma de Firma (interfaz de firma).
Este proceso se puede describir como un procedimiento en 3 pasos:
1) La aplicación registra el documento a firmar en la plataforma de Firma. (método registrarDocumento)
2) La aplicación solicita a la plataforma de Firma la generación de los datos a firmar, que serán enviados a la máquina del usuario para ser firmados. (método generarDatosAFirmar)
3) El usuario firma los datos y la aplicación envía el resultado a la plataforma de Firma para terminar el proceso. (método generarFirma)
En un proceso de multifirma de ficheros por usuario, el documento ya fue registrado, así pues solamente se necesitan los pasos 2 y 3, pero en este caso los métodos de la interfaz son iniciarCoSignUsuario() y finalizarCoSignUsuario() para firma en paralelo y iniciarCounterSignUsuario() y finalizarCounterSignUsuario() para firma en cascada.

El proceso de firma/multifirma de ficheros por servidor se realiza en un solo paso. Mediante la interfaz se registra un documento en la plataforma firmándose con un Certificado Digital ubicado en el Servidor de Firma y configurado para ello mediante la herramienta de administración de la plataforma (método generarFirmaServidor). La multifirma del fichero por servidor se realiza sobre una firma de servidor ya realizada, esta vez no hay registro de documento (métodos coSignServidor y counterSignServidor).


Method Summary
 double coSignServidor(double idTransaccion, java.lang.String idAplicacion, java.lang.String firmante)
          Método que realiza el proceso de multifirma servidor tipo CoSign (firma en paralelo) de un documento usando un certificado de servidor.
 double counterSignServidor(double idTransaccion, java.lang.String idAplicacion, java.lang.String firmante)
          Método que realiza el proceso de multifirma servidor tipo CounterSign (firma en cascada) de un documento usando un certificado de servidor.
 void finalizarCoSignUsuario(double idTransaccionMultifirma, java.lang.String datosFirmados, java.lang.String anagrama)
          Método que finalizar el proceso de multifirma usuario tipo CoSign (firma en pararelo).
 void finalizarCounterSignUsuario(double idTransaccion, java.lang.String datosFirmados, java.lang.String anagrama)
          Método que finaliza el proceso de multifirma usuario tipo CounterSign (firma en cascada).
 java.lang.String generarDatosAFirmar(double idTransaccion)
          Método que genera los datos a pasar al applet para la firma de un documento registrado con el método registrarDocumento.
 void generarFirma(double idTransaccion, java.lang.String datosFirmados, java.lang.String idUsuario)
          Método que Finaliza el proceso de firma de un documento registrado y firmado en cliente.
 double generarFirmaServidor(java.lang.String nombreDoc, java.lang.String idAplicacion, byte[] datos, java.lang.String tipoDocumento, java.lang.String firmante)
          Método que realiza la firma de Servidor de un documento.
 DTODocumentoFirmado getDatosTransaccion(double idTransaccion)
          Método que devuelve los datos relativos a una transacción de firma almacenada en el sistema de custodia de la plataforma de firma.
 byte[] getDocumento(double odTransaccion)
          Método para la obtención del sistema de Custodia del documento asociado a una transacción de firma.
 java.util.Vector getFirmantesTransaccion(double idTransaccion)
          Método que devuelve los firmantes que han intervenido en una transacción de firma.
 DTOIniciarMultifirma iniciarCoSignUsuario(double idTransaccion, java.lang.String idAplicacion)
          Método que inicializa el proceso de multifirma usuario tipo CoSign (firma en pararelo).
 DTOIniciarMultifirma iniciarCounterSignUsuario(double idTransaccion, java.lang.String idAplicacion)
          Método que inicializa el proceso de multifirma usuario tipo CounterSign (firma en cascada).
 double registrarDocumento(java.lang.String idAplicacion, byte[] origen, java.lang.String nombreDoc, java.lang.String TipoDocumento)
          Método para registrar un documento en la plataforma para su posterior firma con un Certificado Digital de Usuario.
 
Methods inherited from interface javax.ejb.EJBObject
getEJBHome, getHandle, getPrimaryKey, isIdentical, remove
 

Method Detail

registrarDocumento

public double registrarDocumento(java.lang.String idAplicacion,
                                 byte[] origen,
                                 java.lang.String nombreDoc,
                                 java.lang.String TipoDocumento)
                          throws FirmaException,
                                 java.rmi.RemoteException
Método para registrar un documento en la plataforma para su posterior firma con un Certificado Digital de Usuario. Corresponde al paso 1 de un proceso de Firma de Ficheros por Usuario

Parameters:
idAplicacion - Identificador de la aplicación registrada en la plataforma.
origen - Contenido Fichero a firmar.
nombreDoc - Nombre del fichero o documento.
TipoDocumento - Tipo del documento. pej PDF (Extensión).
Returns:
Identificador de Transacción correspondiente al registro.
Throws:
FirmaException - Indica un error en el proceso de Firma.
java.rmi.RemoteException - Error de comunicación.

generarDatosAFirmar

public java.lang.String generarDatosAFirmar(double idTransaccion)
                                     throws FirmaException,
                                            java.rmi.RemoteException
Método que genera los datos a pasar al applet para la firma de un documento registrado con el método registrarDocumento. Corresponde al paso 2 de un proceso de Firma de Ficheros por Usuario.

Parameters:
idTransaccion - Identificador del documento a firmar. Obtenido de la Método registrarDocumento.
Returns:
Cadena a pasar al applet para realizar la firma en la máquina del usuario.
Throws:
FirmaException - Indica un error en el proceso de Firma.
java.rmi.RemoteException - Error de comunicación.

generarFirma

public void generarFirma(double idTransaccion,
                         java.lang.String datosFirmados,
                         java.lang.String idUsuario)
                  throws FirmaException,
                         java.rmi.RemoteException
Método que Finaliza el proceso de firma de un documento registrado y firmado en cliente. Corresponde al paso 3 de un proceso de Firma de Ficheros por Usuario.

Parameters:
idTransaccion - identificador de la transacción de firma.
datosFirmados - Datos devueltos por el applet de firma, es decir, la firma generada.
idUsuario - Identificador del usuario (nif+anagrama fiscal largo) del usuario que debió realizar el proceso de firma.
Throws:
FirmaException - Indica un error en el proceso de Firma.
java.rmi.RemoteException - Error de comunicación.

getDocumento

public byte[] getDocumento(double odTransaccion)
                    throws FirmaException,
                           java.rmi.RemoteException
Método para la obtención del sistema de Custodia del documento asociado a una transacción de firma.

Parameters:
odTransaccion - Identificador de la transacción.
Returns:
Documento asociado a una transacción de firma.
Throws:
FirmaException - Indica un error en el proceso de recuperación.
java.rmi.RemoteException - Error de comunicación.

generarFirmaServidor

public double generarFirmaServidor(java.lang.String nombreDoc,
                                   java.lang.String idAplicacion,
                                   byte[] datos,
                                   java.lang.String tipoDocumento,
                                   java.lang.String firmante)
                            throws FirmaException,
                                   java.rmi.RemoteException
Método que realiza la firma de Servidor de un documento. El Certificado Servidor utilizado se encuentra configurado en una aplicación en la herramienta de administración de la plataforma.

Parameters:
nombreDoc - Nombre del documento a firmar.
idAplicacion - Identificador de la aplicación que realiza el proceso de firma.
datos - Datos del documento a ser firmados.
tipoDocumento - Tipo de datos a firmar. Pej PDF (Extensión del documento).
firmante - Identificador del firmante servidor a utilizar. Si este vale null se utiliza el configurado para la aplicación en la herramienta de administración de la plataforma.
Returns:
Identificador de transacción de la firma realizada.
Throws:
FirmaException - Indica un error en el proceso de Firma.
java.rmi.RemoteException - Error de comunicación.

getDatosTransaccion

public DTODocumentoFirmado getDatosTransaccion(double idTransaccion)
                                        throws FirmaException,
                                               java.rmi.RemoteException
Método que devuelve los datos relativos a una transacción de firma almacenada en el sistema de custodia de la plataforma de firma.

Parameters:
idTransaccion - Identificador de la transacción.
Returns:
DTODocumentoFirmado con los datos de la transacción.
Throws:
FirmaException - Indica un error en el proceso de recuperación de los datos relativos a la transacción.
java.rmi.RemoteException - Error de comunicación.

iniciarCounterSignUsuario

public DTOIniciarMultifirma iniciarCounterSignUsuario(double idTransaccion,
                                                      java.lang.String idAplicacion)
                                               throws FirmaException,
                                                      java.rmi.RemoteException
Método que inicializa el proceso de multifirma usuario tipo CounterSign (firma en cascada). Esta Método requiere que ya exista una firma previa finalizada para que se pueda realizar la multifirma.

Parameters:
idTransaccion - Transacción de firma sobre la cual realizar la multifirma.
idAplicacion - Identificador de la aplicación desde la cual se realiza la multifirma.
Returns:
DTOIniciarMultifirma que contiene el identificador de la nueva sesión de firma y los datos a ser firmados desde el applet.
Throws:
FirmaException - Indica un error en el proceso de Firma.
java.rmi.RemoteException - Error de comunicación.

finalizarCounterSignUsuario

public void finalizarCounterSignUsuario(double idTransaccion,
                                        java.lang.String datosFirmados,
                                        java.lang.String anagrama)
                                 throws FirmaException,
                                        java.rmi.RemoteException
Método que finaliza el proceso de multifirma usuario tipo CounterSign (firma en cascada).

Parameters:
idTransaccion - Identificador de la sesión de firma. Este parámetro se obtiene del objeto DTOIniciarMultifirma devuelto de la Método iniciarCounterSignUsuario.
datosFirmados - Datos firmados generados por el applet.
anagrama - Identificador del usuario que se espera firmó el documento en el formato Nif+Anagrama Fiscal Largo.
Throws:
FirmaException - Indica un error en el proceso de Firma.
java.rmi.RemoteException - Error de comunicación.

counterSignServidor

public double counterSignServidor(double idTransaccion,
                                  java.lang.String idAplicacion,
                                  java.lang.String firmante)
                           throws FirmaException,
                                  java.rmi.RemoteException
Método que realiza el proceso de multifirma servidor tipo CounterSign (firma en cascada) de un documento usando un certificado de servidor.

Parameters:
idTransaccion - Transacción de firma a multifirmar.
idAplicacion - Identificador de la aplicación sobre la cual se realiza la multifirma
firmante - Identificador del certificado a utilizar en el proceso de firma de servidor. Si este parámetro es null se utiliza el configurado para la aplicación en la herramienta de administración de la plataforma.
Returns:
Nuevo Identificador de la sesión de multifirma realizada.
Throws:
FirmaException - Indica un error en el proceso de Firma.
java.rmi.RemoteException - Error de comunicación.

getFirmantesTransaccion

public java.util.Vector getFirmantesTransaccion(double idTransaccion)
                                         throws FirmaException,
                                                java.rmi.RemoteException
Método que devuelve los firmantes que han intervenido en una transacción de firma.

Parameters:
idTransaccion - Identificador de la transacción de firma.
Returns:
Vector de objetos DTOFirmante que contiene el árbol de todos los firmantes de la transacción recibida como parámetro.
Throws:
FirmaException - Indica un error en el proceso de Firma.
java.rmi.RemoteException - Error de comunicación.

iniciarCoSignUsuario

public DTOIniciarMultifirma iniciarCoSignUsuario(double idTransaccion,
                                                 java.lang.String idAplicacion)
                                          throws FirmaException,
                                                 java.rmi.RemoteException
Método que inicializa el proceso de multifirma usuario tipo CoSign (firma en pararelo). Esta Método requiere que ya exista una firma previa finalizada para que se pueda realizar la multifirma.

Parameters:
idTransaccion - Transacción de firma sobre la cual realizar la multifirma.
idAplicacion - Identificador de la aplicación desde la cual se realiza la multifirma.
Returns:
DTOIniciarMultifirma que contiene el identificador de la nueva sesión de firma y los datos a ser firmados desde el applet.
Throws:
FirmaException - Indica un error en el proceso de Firma.
java.rmi.RemoteException - Error de comunicación.

finalizarCoSignUsuario

public void finalizarCoSignUsuario(double idTransaccionMultifirma,
                                   java.lang.String datosFirmados,
                                   java.lang.String anagrama)
                            throws FirmaException,
                                   java.rmi.RemoteException
Método que finalizar el proceso de multifirma usuario tipo CoSign (firma en pararelo).

Parameters:
idTransaccionMultifirma - Identificador de la sesión de firma. Este parámetro se obtiene del objeto DTOIniciarMultifirma devuelto de la Método iniciar correspondiente.
datosFirmados - Datos firmados generados por devueltos por el applet.
anagrama - Identificador del usuario que se espera firmó el documento en el formato Nif+Anagrama Fiscal Largo.
Throws:
FirmaException - Indica un error en el proceso de Firma.
java.rmi.RemoteException - Error de comunicación.

coSignServidor

public double coSignServidor(double idTransaccion,
                             java.lang.String idAplicacion,
                             java.lang.String firmante)
                      throws FirmaException,
                             java.rmi.RemoteException
Método que realiza el proceso de multifirma servidor tipo CoSign (firma en paralelo) de un documento usando un certificado de servidor.

Parameters:
idTransaccion - Transacción de firma a multifirmar.
idAplicacion - Identificador de la aplicación sobre la cual se realiza la multifirma.
firmante - Identificador del certificado a utilizar en el proceso de firma de servidor. Si este parámetro es null se utiliza el configurado para la aplicación en la herramienta de administración de la plataforma.
Returns:
Identificador de la sesión de multifirma realizada.
Throws:
FirmaException - Indica un error en el proceso de Firma.
java.rmi.RemoteException - Error de comunicación.