es.accv.arangi.client
Class ArangiClient

java.lang.Object
  extended by es.accv.arangi.client.ArangiClient

public class ArangiClient
extends java.lang.Object

Cliente de Arangí

Author:
José M Gutiérrez

Field Summary
static java.text.SimpleDateFormat DATE_FORMAT
          Constante para formatear fechas
static java.lang.String OPCION_DESCRIPTION
          Opción que se debe pasar a las clases XAdES para que se añada la descripción del documento
static java.lang.String OPCION_ENCODING
          Opción que se debe pasar a las clases XAdES para que se añada la codificación del documento
static java.lang.String OPCION_FIRMAR_SIN_SELLO
          Opción que se debe pasar a esta clase para que se firme sin sello de tiempos
static java.lang.String OPCION_IMAGE_PATH
          Opción que se debe pasar a las clases PDF o PAdES para pasar una imagen como firma visible
static java.lang.String OPCION_MIME
          Opción que se debe pasar a las clases XAdES para que se añada el tipo MIME del documento
static java.lang.String OPCION_PAGE
          Opción que se debe pasar a las clases PDF o PAdES para indicar la página de la firma visible
static java.lang.String OPCION_X_BOTTOM_LEFT
          Opción que se debe pasar a las clases PDF o PAdES para describir la ubicación de una imagen en una firma visible
static java.lang.String OPCION_X_TOP_RIGHT
           
static java.lang.String OPCION_Y_BOTTOM_LEFT
           
static java.lang.String OPCION_Y_TOP_RIGHT
           
static long serialVersionUID
          Serial Version UID
 
Constructor Summary
ArangiClient(java.lang.String language, java.lang.String country)
          Constructor
 
Method Summary
 java.lang.String coSign(ArangiClientFilter filter, java.lang.String reference, java.lang.String signatureType)
          El usuario elige un fichero con la firma y el documento que la originó y con ellos se realiza una cofirma.
 java.lang.String coSign(byte[] signatureContent, byte[] documentContent, ArangiClientFilter filter, java.lang.String reference, java.lang.String signatureType)
          Realiza la cofirma del documento en la firma pasada como parámetro.
 java.lang.String coSign(byte[] signatureContent, byte[] documentContent, DeviceAndAlias signCertificate, java.lang.String reference, java.lang.String signatureType)
          Realiza la cofirma del documento en la firma pasada como parámetro.
 java.lang.String coSign(byte[] signatureContent, byte[] documentContent, es.accv.arangi.base.device.DeviceManager manager, java.lang.String alias, java.lang.String reference, java.lang.String signatureType)
          Realiza la cofirma del documento en la firma pasada como parámetro con el alias contenido en el manager que se pasa como parámetro.
 java.lang.String coSign(byte[] signature, java.io.File document, ArangiClientFilter filter, java.lang.String reference, java.lang.String signatureType)
          Realiza la cofirma del documento en la firma pasada como parámetro.
 java.lang.String coSign(java.io.File signature, byte[] document, ArangiClientFilter filter, java.lang.String reference, java.lang.String signatureType)
          Realiza la cofirma del documento en la firma pasada como parámetro.
 java.lang.String coSign(java.io.File signature, java.io.File document, ArangiClientFilter filter, java.lang.String reference, java.lang.String signatureType)
          Realiza la cofirma del documento en la firma pasada como parámetro.
 java.lang.String coSign(java.io.File signature, java.io.File document, DeviceAndAlias signCertificate, java.lang.String reference, java.lang.String signatureType)
          Realiza la cofirma del documento en la firma pasada como parámetro.
 java.lang.String coSign(java.io.File signature, java.io.File document, es.accv.arangi.base.device.DeviceManager manager, java.lang.String alias, java.lang.String reference, java.lang.String signatureType)
          Realiza la cofirma del documento en la firma pasada como parámetro.
 java.lang.String counterSign(byte[] signature, ArangiClientFilter filter, java.lang.String signatureType)
          Sólo realiza contrafirma para los tipos XAdES.
 java.lang.String counterSign(java.io.File signatureFile, ArangiClientFilter filter, java.lang.String signatureType)
          Sólo realiza contrafirma para los tipos XAdES.
 ArangiClientSignatureFactory getClientSignatureFactory(java.lang.String signatureType)
          Obtiene el objeto que construirá la firma
 ArangiClientValidationFactory getClientValidationFactory(java.lang.String signatureType)
          Obtiene el objeto que validará un tipo de firma
 java.lang.String getSignatureValidationResultXML(ValidationObject validationObject)
          A partir de los resultados de una validación obtiene un xml
 void setMostrarSeleccionSiSoloUno(boolean mostrarSeleccionSiSoloUno)
          Carga la variable que indica si se muestra la selección si sólo hay un elemento a seleccionar
 void setOpciones(java.util.Map<java.lang.String,java.lang.Object> options)
          Carga las opciones que se utilizarán durante la firma
 void setUrlTSA(java.lang.String urlTSA)
          Cambia el valor de la TSA a utilizar
 java.lang.String signContent(byte[] contentToSign, ArangiClientFilter filter, java.lang.String reference, java.lang.String signatureType)
          Firma el contenido que se pasa como parámetro.
 java.lang.String signContent(byte[] contentToSign, DeviceAndAlias signCertificate, java.lang.String reference, java.lang.String signatureType)
          Firma el contenido que se pasa como parámetro con el elemento.
 java.lang.String signContent(byte[] contentToSign, es.accv.arangi.base.device.DeviceManager manager, java.lang.String alias, java.lang.String reference, java.lang.String signatureType)
          Firma el contenido con el alias contenido en el manager que se pasa como parámetro.
 java.lang.String signFile(ArangiClientFilter filter, java.lang.String reference, java.lang.String signatureType)
          Firma un fichero que será elegido por el usuario.
 java.lang.String signFile(java.io.File file, ArangiClientFilter filter, java.lang.String reference, java.lang.String signatureType)
          Firma el fichero que se pasa como parámetro.
 java.lang.String signFile(java.io.File file, DeviceAndAlias signCertificate, java.lang.String reference, java.lang.String signatureType)
          Firma el fichero que se pasa como parámetro con el elemento.
 java.lang.String signFile(java.io.File file, es.accv.arangi.base.device.DeviceManager manager, java.lang.String alias, java.lang.String reference, java.lang.String signatureType)
          Firma el fichero con el alias contenido en el manager que se pasa como parámetro.
 java.lang.String validateCertificate(java.io.InputStream isCertificate)
          Valida un certificado y devuelve un XML con la respuesta
 ValidationObject validateSignature(byte[] signature, byte[] detachedContent, java.lang.String signatureType)
          Valida una firma.
 ValidationObject validateSignature(byte[] signature, java.io.File detachedFile, java.lang.String signatureType)
          Valida una firma.
 ValidationObject validateSignature(byte[] signature, java.lang.String signatureType)
          Valida una firma attached: CMS, PKCS#7, PDF, PADES-LTV, XAdES-BES attached, XAdES-T attached y XAdES-X-L attached.
 ValidationObject validateSignature(java.io.File signature, byte[] detachedContent, java.lang.String signatureType)
          Valida una firma.
 ValidationObject validateSignature(java.io.File signature, java.io.File detachedFile, java.lang.String signatureType)
          Valida una firma.
 ValidationObject validateSignature(java.io.File signature, java.lang.String signatureType)
          Valida una firma attached: CMS, PKCS#7, PDF, PADES-LTV, XAdES-BES attached, XAdES-T attached y XAdES-X-L attached.
 ValidationObject validateSignature(java.io.InputStream isSignature, java.io.InputStream detachedContent, java.lang.String signatureType)
          Valida una firma.
 ValidationObject validateSignature(java.io.InputStream isSignature, java.lang.String signatureType)
          Valida una firma attached: CMS, PKCS#7, PDF, PADES-LTV, XAdES-BES attached, XAdES-T attached y XAdES-X-L attached.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

serialVersionUID

public static final long serialVersionUID
Serial Version UID

See Also:
Constant Field Values

DATE_FORMAT

public static final java.text.SimpleDateFormat DATE_FORMAT
Constante para formatear fechas


OPCION_FIRMAR_SIN_SELLO

public static final java.lang.String OPCION_FIRMAR_SIN_SELLO
Opción que se debe pasar a esta clase para que se firme sin sello de tiempos

See Also:
Constant Field Values

OPCION_DESCRIPTION

public static final java.lang.String OPCION_DESCRIPTION
Opción que se debe pasar a las clases XAdES para que se añada la descripción del documento

See Also:
Constant Field Values

OPCION_MIME

public static final java.lang.String OPCION_MIME
Opción que se debe pasar a las clases XAdES para que se añada el tipo MIME del documento

See Also:
Constant Field Values

OPCION_ENCODING

public static final java.lang.String OPCION_ENCODING
Opción que se debe pasar a las clases XAdES para que se añada la codificación del documento

See Also:
Constant Field Values

OPCION_IMAGE_PATH

public static final java.lang.String OPCION_IMAGE_PATH
Opción que se debe pasar a las clases PDF o PAdES para pasar una imagen como firma visible

See Also:
Constant Field Values

OPCION_X_BOTTOM_LEFT

public static final java.lang.String OPCION_X_BOTTOM_LEFT
Opción que se debe pasar a las clases PDF o PAdES para describir la ubicación de una imagen en una firma visible

See Also:
Constant Field Values

OPCION_Y_BOTTOM_LEFT

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

OPCION_X_TOP_RIGHT

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

OPCION_Y_TOP_RIGHT

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

OPCION_PAGE

public static final java.lang.String OPCION_PAGE
Opción que se debe pasar a las clases PDF o PAdES para indicar la página de la firma visible

See Also:
Constant Field Values
Constructor Detail

ArangiClient

public ArangiClient(java.lang.String language,
                    java.lang.String country)
Constructor

Method Detail

setOpciones

public void setOpciones(java.util.Map<java.lang.String,java.lang.Object> options)
Carga las opciones que se utilizarán durante la firma


setMostrarSeleccionSiSoloUno

public void setMostrarSeleccionSiSoloUno(boolean mostrarSeleccionSiSoloUno)
Carga la variable que indica si se muestra la selección si sólo hay un elemento a seleccionar


setUrlTSA

public void setUrlTSA(java.lang.String urlTSA)
Cambia el valor de la TSA a utilizar


signFile

public java.lang.String signFile(ArangiClientFilter filter,
                                 java.lang.String reference,
                                 java.lang.String signatureType)
                          throws es.accv.arangi.base.exception.signature.NoDocumentToSignException,
                                 es.accv.arangi.base.exception.device.OpeningDeviceException,
                                 SignatureTypeUnknownException,
                                 es.accv.arangi.base.exception.signature.SignatureException,
                                 SignatureCancelledByUserException,
                                 NoCertificateToSignException
Firma un fichero que será elegido por el usuario.

Parameters:
filter - Filtro para elegir los certificados
reference - Referencia incluida en las firmas XAdES detached o motivo de firma para los PDFs. Si se deja a null en una firma XAdES detached la referencia de la firma será el path del fichero elegido.
signatureType - Tipo de firma según las constantes definidas en la clase Constants
Returns:
Firma en base64
Throws:
es.accv.arangi.base.exception.signature.NoDocumentToSignException - El usuario no desea elegir un documento para firmar
es.accv.arangi.base.exception.device.OpeningDeviceException - No se ha podido abrir el dispositivo con el certificado de firma
SignatureTypeUnknownException - No se ha encontrado una clase capaz de realizar la firma demandada
es.accv.arangi.base.exception.signature.SignatureException - Error creando la firma
SignatureCancelledByUserException - El usuario no ha querido elegir un certificado de la lista
NoCertificateToSignException - Tras aplicar los filtros no hay ningún certificado para firmar

signFile

public java.lang.String signFile(java.io.File file,
                                 ArangiClientFilter filter,
                                 java.lang.String reference,
                                 java.lang.String signatureType)
                          throws es.accv.arangi.base.exception.device.OpeningDeviceException,
                                 es.accv.arangi.base.exception.signature.NoDocumentToSignException,
                                 SignatureTypeUnknownException,
                                 es.accv.arangi.base.exception.signature.SignatureException,
                                 SignatureCancelledByUserException,
                                 NoCertificateToSignException
Firma el fichero que se pasa como parámetro.

Parameters:
file - Fichero que hay que firmar
filter - Filtro para elegir los certificados
reference - Referencia incluida en las firmas XAdES detached o motivo de firma para los PDFs. Si se deja a null en una firma XAdES detached la referencia de la firma será el path del fichero.
signatureType - Tipo de firma según las constantes definidas en la clase Constants
Returns:
Firma en base64
Throws:
es.accv.arangi.base.exception.device.OpeningDeviceException - No se ha podido abrir el dispositivo con el certificado de firma
es.accv.arangi.base.exception.signature.NoDocumentToSignException - El fichero no existe o no se puede leer
SignatureTypeUnknownException - No se ha encontrado una clase capaz de realizar la firma demandada
es.accv.arangi.base.exception.signature.SignatureException - Error creando la firma
SignatureCancelledByUserException - El usuario no ha querido elegir un certificado de la lista
NoCertificateToSignException - Tras aplicar los filtros no hay ningún certificado para firmar

signFile

public java.lang.String signFile(java.io.File file,
                                 DeviceAndAlias signCertificate,
                                 java.lang.String reference,
                                 java.lang.String signatureType)
                          throws es.accv.arangi.base.exception.device.OpeningDeviceException,
                                 es.accv.arangi.base.exception.signature.NoDocumentToSignException,
                                 SignatureTypeUnknownException,
                                 es.accv.arangi.base.exception.signature.SignatureException
Firma el fichero que se pasa como parámetro con el elemento.

Parameters:
file - Fichero que hay que firmar
signCertificate - Información del keystore y su certificado para poder firmar
reference - Referencia incluida en las firmas XAdES detached o motivo de firma para los PDFs. Si se deja a null en una firma XAdES detached la referencia de la firma será el path del fichero.
signatureType - Tipo de firma según las constantes definidas en la clase Constants
Returns:
Throws:
es.accv.arangi.base.exception.device.OpeningDeviceException - No se ha podido abrir el dispositivo con el certificado de firma
es.accv.arangi.base.exception.signature.NoDocumentToSignException - El fichero no existe o no se puede leer
SignatureTypeUnknownException - No se ha encontrado una clase capaz de realizar la firma demandada
es.accv.arangi.base.exception.signature.SignatureException - Error creando la firma

signFile

public java.lang.String signFile(java.io.File file,
                                 es.accv.arangi.base.device.DeviceManager manager,
                                 java.lang.String alias,
                                 java.lang.String reference,
                                 java.lang.String signatureType)
                          throws es.accv.arangi.base.exception.signature.NoDocumentToSignException,
                                 SignatureTypeUnknownException,
                                 es.accv.arangi.base.exception.signature.SignatureException
Firma el fichero con el alias contenido en el manager que se pasa como parámetro.

Parameters:
file - Fichero que hay que firmar
manager - Dispositivo abierto
alias - Alias del certificado dentro del dispositivo
reference - Referencia incluida en las firmas XAdES detached o motivo de firma para los PDFs. Si se deja a null en una firma XAdES detached la referencia de la firma será el path del fichero.
signatureType - Tipo de firma según las constantes definidas en la clase Constants
Returns:
Firma en base64
Throws:
es.accv.arangi.base.exception.signature.NoDocumentToSignException - El fichero no existe o no se puede leer
SignatureTypeUnknownException - No se ha encontrado una clase capaz de realizar la firma demandada
es.accv.arangi.base.exception.signature.SignatureException - Error creando la firma

signContent

public java.lang.String signContent(byte[] contentToSign,
                                    ArangiClientFilter filter,
                                    java.lang.String reference,
                                    java.lang.String signatureType)
                             throws es.accv.arangi.base.exception.device.OpeningDeviceException,
                                    es.accv.arangi.base.exception.signature.NoDocumentToSignException,
                                    SignatureTypeUnknownException,
                                    es.accv.arangi.base.exception.signature.SignatureException,
                                    SignatureCancelledByUserException,
                                    NoCertificateToSignException
Firma el contenido que se pasa como parámetro.

Parameters:
contentToSign - Contenido a firmar
filter - Filtro para elegir los certificados
signatureType - Tipo de firma según las constantes definidas en la clase Constants
reference - Referencia incluida en las firmas XAdES detached o motivo de firma para los PDFs
Returns:
Firma en base64
Throws:
es.accv.arangi.base.exception.device.OpeningDeviceException - No se ha podido abrir el dispositivo con el certificado de firma
es.accv.arangi.base.exception.signature.NoDocumentToSignException - El fichero no existe o no se puede leer
SignatureTypeUnknownException - No se ha encontrado una clase capaz de realizar la firma demandada
es.accv.arangi.base.exception.signature.SignatureException - Error creando la firma
SignatureCancelledByUserException - El usuario no ha querido elegir un certificado de la lista
NoCertificateToSignException - Tras aplicar los filtros no hay ningún certificado para firmar

signContent

public java.lang.String signContent(byte[] contentToSign,
                                    DeviceAndAlias signCertificate,
                                    java.lang.String reference,
                                    java.lang.String signatureType)
                             throws es.accv.arangi.base.exception.device.OpeningDeviceException,
                                    es.accv.arangi.base.exception.signature.NoDocumentToSignException,
                                    SignatureTypeUnknownException,
                                    es.accv.arangi.base.exception.signature.SignatureException
Firma el contenido que se pasa como parámetro con el elemento.

Parameters:
contentToSign - Contenido a firmar
signCertificate - Información del keystore y su certificado para poder firmar
reference - Referencia incluida en las firmas XAdES detached o motivo de firma para los PDFs
signatureType - Tipo de firma según las constantes definidas en la clase Constants
Returns:
Throws:
es.accv.arangi.base.exception.device.OpeningDeviceException - No se ha podido abrir el dispositivo con el certificado de firma
es.accv.arangi.base.exception.signature.NoDocumentToSignException - El fichero no existe o no se puede leer
SignatureTypeUnknownException - No se ha encontrado una clase capaz de realizar la firma demandada
es.accv.arangi.base.exception.signature.SignatureException - Error creando la firma

signContent

public java.lang.String signContent(byte[] contentToSign,
                                    es.accv.arangi.base.device.DeviceManager manager,
                                    java.lang.String alias,
                                    java.lang.String reference,
                                    java.lang.String signatureType)
                             throws es.accv.arangi.base.exception.signature.NoDocumentToSignException,
                                    SignatureTypeUnknownException,
                                    es.accv.arangi.base.exception.signature.SignatureException
Firma el contenido con el alias contenido en el manager que se pasa como parámetro.

Parameters:
contentToSign - Contenido a firmar
manager - Dispositivo abierto
alias - Alias del certificado dentro del dispositivo
reference - Referencia incluida en las firmas XAdES detached o motivo de firma para los PDFs
signatureType - Tipo de firma según las constantes definidas en la clase Constants
Returns:
Firma en base64
Throws:
es.accv.arangi.base.exception.signature.NoDocumentToSignException - El fichero no existe o no se puede leer
SignatureTypeUnknownException - No se ha encontrado una clase capaz de realizar la firma demandada
es.accv.arangi.base.exception.signature.SignatureException - Error creando la firma

coSign

public java.lang.String coSign(ArangiClientFilter filter,
                               java.lang.String reference,
                               java.lang.String signatureType)
                        throws es.accv.arangi.base.exception.signature.SignatureException,
                               es.accv.arangi.base.exception.signature.SignatureNotFoundException,
                               SignatureTypeUnknownException,
                               es.accv.arangi.base.exception.device.OpeningDeviceException,
                               SignatureCancelledByUserException,
                               NoCertificateToSignException
El usuario elige un fichero con la firma y el documento que la originó y con ellos se realiza una cofirma.

Si el documento pasado no es el mismo que originó la primera firma se producirá una excepción.

Parameters:
filter - Filtro para elegir los certificados
reference - Referencia incluida en las firmas XAdES detached o motivo de firma para los PDFs. Si se deja a null en una firma XAdES detached la referencia de la firma será el path del fichero elegido.
signatureType - Tipo de firma según las constantes definidas en la clase Constants
Returns:
Firma en base64
Throws:
es.accv.arangi.base.exception.signature.SignatureNotFoundException - El fichero de firma no existe o no puede ser leído
es.accv.arangi.base.exception.signature.SignatureException - Error creando la cofirma
SignatureTypeUnknownException - No se ha encontrado una clase capaz de realizar la firma demandada
es.accv.arangi.base.exception.device.OpeningDeviceException - No se ha podido abrir el dispositivo con el certificado para cofirmar
NoCertificateToSignException - Tras aplicar los filtros no hay ningún certificado para firmar
SignatureCancelledByUserException - El usuario no ha querido elegir un certificado de la lista

coSign

public java.lang.String coSign(java.io.File signature,
                               java.io.File document,
                               ArangiClientFilter filter,
                               java.lang.String reference,
                               java.lang.String signatureType)
                        throws es.accv.arangi.base.exception.signature.SignatureException,
                               es.accv.arangi.base.exception.signature.SignatureNotFoundException,
                               SignatureTypeUnknownException,
                               es.accv.arangi.base.exception.device.OpeningDeviceException,
                               SignatureCancelledByUserException,
                               NoCertificateToSignException
Realiza la cofirma del documento en la firma pasada como parámetro.

Si el documento pasado no es el mismo que originó la primera firma se producirá una excepción.

Parameters:
signature - Fichero con la firma
document - Documento que originó la firma
filter - Filtro para elegir los certificados
reference - Referencia incluida en las firmas XAdES detached o motivo de firma para los PDFs. Si se deja a null en una firma XAdES detached la referencia de la firma será el path del fichero.
signatureType - Tipo de firma según las constantes definidas en la clase Constants
Returns:
Firma en base64
Throws:
es.accv.arangi.base.exception.signature.SignatureNotFoundException - El fichero de firma no existe o no puede ser leído
es.accv.arangi.base.exception.signature.SignatureException - Error creando la cofirma
SignatureTypeUnknownException - No se ha encontrado una clase capaz de realizar la firma demandada
es.accv.arangi.base.exception.device.OpeningDeviceException - No se ha podido abrir el dispositivo con el certificado para cofirmar
NoCertificateToSignException - Tras aplicar los filtros no hay ningún certificado para firmar
SignatureCancelledByUserException - El usuario no ha querido elegir un certificado de la lista

coSign

public java.lang.String coSign(java.io.File signature,
                               byte[] document,
                               ArangiClientFilter filter,
                               java.lang.String reference,
                               java.lang.String signatureType)
                        throws es.accv.arangi.base.exception.signature.SignatureException,
                               es.accv.arangi.base.exception.signature.SignatureNotFoundException,
                               SignatureTypeUnknownException,
                               es.accv.arangi.base.exception.device.OpeningDeviceException,
                               SignatureCancelledByUserException,
                               NoCertificateToSignException
Realiza la cofirma del documento en la firma pasada como parámetro.

Si el documento pasado no es el mismo que originó la primera firma se producirá una excepción.

Parameters:
signature - Fichero con la firma
document - Contenido del documento que originó la firma
filter - Filtro para elegir los certificados
reference - Referencia incluida en las firmas XAdES detached o motivo de firma para los PDFs. Si se deja a null en una firma XAdES detached la referencia de la firma será el path del fichero.
signatureType - Tipo de firma según las constantes definidas en la clase Constants
Returns:
Firma en base64
Throws:
es.accv.arangi.base.exception.signature.SignatureNotFoundException - El fichero de firma no existe o no puede ser leído
es.accv.arangi.base.exception.signature.SignatureException - Error creando la cofirma
SignatureTypeUnknownException - No se ha encontrado una clase capaz de realizar la firma demandada
es.accv.arangi.base.exception.device.OpeningDeviceException - No se ha podido abrir el dispositivo con el certificado para cofirmar
NoCertificateToSignException - Tras aplicar los filtros no hay ningún certificado para firmar
SignatureCancelledByUserException - El usuario no ha querido elegir un certificado de la lista

coSign

public java.lang.String coSign(byte[] signature,
                               java.io.File document,
                               ArangiClientFilter filter,
                               java.lang.String reference,
                               java.lang.String signatureType)
                        throws es.accv.arangi.base.exception.signature.SignatureException,
                               es.accv.arangi.base.exception.signature.SignatureNotFoundException,
                               SignatureTypeUnknownException,
                               es.accv.arangi.base.exception.device.OpeningDeviceException,
                               SignatureCancelledByUserException,
                               NoCertificateToSignException
Realiza la cofirma del documento en la firma pasada como parámetro.

Si el documento pasado no es el mismo que originó la primera firma se producirá una excepción.

Parameters:
signature - Contenido del fichero con la firma
document - Documento que originó la firma
filter - Filtro para elegir los certificados
reference - Referencia incluida en las firmas XAdES detached o motivo de firma para los PDFs. Si se deja a null en una firma XAdES detached la referencia de la firma será el path del fichero.
signatureType - Tipo de firma según las constantes definidas en la clase Constants
Returns:
Firma en base64
Throws:
es.accv.arangi.base.exception.signature.SignatureNotFoundException - El fichero de firma no existe o no puede ser leído
es.accv.arangi.base.exception.signature.SignatureException - Error creando la cofirma
SignatureTypeUnknownException - No se ha encontrado una clase capaz de realizar la firma demandada
es.accv.arangi.base.exception.device.OpeningDeviceException - No se ha podido abrir el dispositivo con el certificado para cofirmar
NoCertificateToSignException - Tras aplicar los filtros no hay ningún certificado para firmar
SignatureCancelledByUserException - El usuario no ha querido elegir un certificado de la lista

coSign

public java.lang.String coSign(java.io.File signature,
                               java.io.File document,
                               DeviceAndAlias signCertificate,
                               java.lang.String reference,
                               java.lang.String signatureType)
                        throws es.accv.arangi.base.exception.signature.SignatureException,
                               es.accv.arangi.base.exception.signature.SignatureNotFoundException,
                               SignatureTypeUnknownException,
                               es.accv.arangi.base.exception.device.OpeningDeviceException
Realiza la cofirma del documento en la firma pasada como parámetro. La cofirma se lleva a cabo con el certificado pasado como parámetro.

Si el documento pasado no es el mismo que originó la primera firma se producirá una excepción.

Parameters:
signature - Fichero con la firma
document - Documento que originó la firma
signCertificate - Información del keystore y su certificado para poder firmar
reference - Referencia incluida en las firmas XAdES detached o motivo de firma para los PDFs. Si se deja a null en una firma XAdES detached la referencia de la firma será el path del fichero.
signatureType - Tipo de firma según las constantes definidas en la clase Constants
Returns:
Firma en base64
Throws:
es.accv.arangi.base.exception.signature.SignatureNotFoundException - El fichero de firma no existe o no puede ser leído
es.accv.arangi.base.exception.signature.SignatureException - Error creando la cofirma
SignatureTypeUnknownException - No se ha encontrado una clase capaz de realizar la firma demandada
es.accv.arangi.base.exception.device.OpeningDeviceException - No se ha podido abrir el dispositivo con el certificado para cofirmar

coSign

public java.lang.String coSign(java.io.File signature,
                               java.io.File document,
                               es.accv.arangi.base.device.DeviceManager manager,
                               java.lang.String alias,
                               java.lang.String reference,
                               java.lang.String signatureType)
                        throws es.accv.arangi.base.exception.signature.SignatureException,
                               es.accv.arangi.base.exception.signature.SignatureNotFoundException,
                               SignatureTypeUnknownException
Realiza la cofirma del documento en la firma pasada como parámetro. La cofirma se lleva a cabo con el alias contenido en el manager que se pasa como parámetro.

Si el documento pasado no es el mismo que originó la primera firma se producirá una excepción.

Parameters:
signature - Fichero con la firma
document - Documento que originó la firma
manager - Dispositivo abierto
alias - Alias del certificado dentro del dispositivo
reference - Referencia incluida en las firmas XAdES detached o motivo de firma para los PDFs. Si se deja a null en una firma XAdES detached la referencia de la firma será el path del fichero.
signatureType - Tipo de firma según las constantes definidas en la clase Constants
Returns:
Firma en base64
Throws:
es.accv.arangi.base.exception.signature.SignatureNotFoundException - El fichero de firma no existe o no puede ser leído
es.accv.arangi.base.exception.signature.SignatureException - Error creando la cofirma
SignatureTypeUnknownException - No se ha encontrado una clase capaz de realizar la firma demandada

coSign

public java.lang.String coSign(byte[] signatureContent,
                               byte[] documentContent,
                               ArangiClientFilter filter,
                               java.lang.String reference,
                               java.lang.String signatureType)
                        throws SignatureTypeUnknownException,
                               es.accv.arangi.base.exception.signature.SignatureException,
                               es.accv.arangi.base.exception.device.OpeningDeviceException,
                               SignatureCancelledByUserException,
                               NoCertificateToSignException
Realiza la cofirma del documento en la firma pasada como parámetro.

Si el documento pasado no es el mismo que originó la primera firma se producirá una excepción.

Parameters:
signatureContent - Contenido de la firma
documentContent - Contenido del documento que originó la firma
filter - Filtro para elegir los certificados
signatureType - Tipo de firma según las constantes definidas en la clase Constants
reference - Referencia incluida en las firmas XAdES detached o motivo de firma para los PDFs
Returns:
Firma en base64
Throws:
SignatureTypeUnknownException - No se ha encontrado una clase capaz de realizar la firma demandada
es.accv.arangi.base.exception.signature.SignatureException - Error creando la cofirma
es.accv.arangi.base.exception.device.OpeningDeviceException - No se ha podido abrir el dispositivo con el certificado para cofirmar
NoCertificateToSignException - Tras aplicar los filtros no hay ningún certificado para firmar
SignatureCancelledByUserException - El usuario no ha querido elegir un certificado de la lista

coSign

public java.lang.String coSign(byte[] signatureContent,
                               byte[] documentContent,
                               DeviceAndAlias signCertificate,
                               java.lang.String reference,
                               java.lang.String signatureType)
                        throws SignatureTypeUnknownException,
                               es.accv.arangi.base.exception.signature.SignatureException,
                               es.accv.arangi.base.exception.device.OpeningDeviceException
Realiza la cofirma del documento en la firma pasada como parámetro.

Si el documento pasado no es el mismo que originó la primera firma se producirá una excepción.

Parameters:
signatureContent - Contenido de la firma
documentContent - Contenido del documento que originó la firma
signCertificate - Información del keystore y su certificado para poder firmar
reference - Referencia incluida en las firmas XAdES detached o motivo de firma para los PDFs
signatureType - Tipo de firma según las constantes definidas en la clase Constants
Returns:
Firma en base64
Throws:
SignatureTypeUnknownException - No se ha encontrado una clase capaz de realizar la firma demandada
es.accv.arangi.base.exception.signature.SignatureException - Error creando la cofirma
es.accv.arangi.base.exception.device.OpeningDeviceException - No se ha podido abrir el dispositivo con el certificado para cofirmar

coSign

public java.lang.String coSign(byte[] signatureContent,
                               byte[] documentContent,
                               es.accv.arangi.base.device.DeviceManager manager,
                               java.lang.String alias,
                               java.lang.String reference,
                               java.lang.String signatureType)
                        throws SignatureTypeUnknownException,
                               es.accv.arangi.base.exception.signature.SignatureException
Realiza la cofirma del documento en la firma pasada como parámetro con el alias contenido en el manager que se pasa como parámetro.

Si el documento pasado no es el mismo que originó la primera firma se producirá una excepción.

Parameters:
signatureContent - Contenido de la firma
documentContent - Contenido del documento que originó la firma
manager - Dispositivo abierto
alias - Alias del certificado dentro del dispositivo
reference - Referencia incluida en las firmas XAdES detached o motivo de firma para los PDFs
signatureType - Tipo de firma según las constantes definidas en la clase Constants
Returns:
Firma en base64
Throws:
SignatureTypeUnknownException - No se ha encontrado una clase capaz de realizar la firma demandada
es.accv.arangi.base.exception.signature.SignatureException - Error creando la cofirma

counterSign

public java.lang.String counterSign(byte[] signature,
                                    ArangiClientFilter filter,
                                    java.lang.String signatureType)
                             throws SignatureTypeUnknownException,
                                    es.accv.arangi.base.exception.signature.SignatureException,
                                    SignatureCancelledByUserException,
                                    NoCertificateToSignException,
                                    es.accv.arangi.base.exception.device.OpeningDeviceException,
                                    SignatureFormatException
Sólo realiza contrafirma para los tipos XAdES.

La definición de las contrafirmas en XAdES puede observarse en el punto 7.2.4 del estándar de la ETSI.

Este método realiza una contrafirma para la última firma del XAdES permitiendo al usuario elegir el certificado para contrafirmar. Es útil cuando se sabe que el XAdES contiene sólo una firma.

Parameters:
signature - Firma (XAdES)
filter - Filtro para elegir los certificados
signatureType - Tipo de firma según las constantes definidas en la clase Constants
Returns:
Firma actualizada con la contrafirma en base64
Throws:
SignatureTypeUnknownException - No se ha encontrado una clase capaz de realizar la firma demandada
es.accv.arangi.base.exception.signature.SignatureException - Error creando la contrafirma
NoCertificateToSignException - Tras aplicar los filtros no hay ningún certificado para firmar
SignatureCancelledByUserException - El usuario no ha querido elegir un certificado de la lista
es.accv.arangi.base.exception.device.OpeningDeviceException - No se ha podido abrir el dispositivo con el certificado para contrafirmar
SignatureFormatException - La firma no ha podido ser cargada

counterSign

public java.lang.String counterSign(java.io.File signatureFile,
                                    ArangiClientFilter filter,
                                    java.lang.String signatureType)
                             throws SignatureTypeUnknownException,
                                    es.accv.arangi.base.exception.signature.SignatureException,
                                    SignatureCancelledByUserException,
                                    NoCertificateToSignException,
                                    es.accv.arangi.base.exception.device.OpeningDeviceException,
                                    SignatureFormatException
Sólo realiza contrafirma para los tipos XAdES.

La definición de las contrafirmas en XAdES puede observarse en el punto 7.2.4 del estándar de la ETSI.

Este método realiza una contrafirma para la última firma del XAdES permitiendo al usuario elegir el certificado para contrafirmar. Es útil cuando se sabe que el XAdES contiene sólo una firma.

Parameters:
signatureFile - Fichero con la firma (XAdES)
filter - Filtro para elegir los certificados
signatureType - Tipo de firma según las constantes definidas en la clase Constants
Returns:
Firma actualizada con la contrafirma en base64
Throws:
SignatureTypeUnknownException - No se ha encontrado una clase capaz de realizar la firma demandada
es.accv.arangi.base.exception.signature.SignatureException - Error creando la contrafirma
NoCertificateToSignException - Tras aplicar los filtros no hay ningún certificado para firmar
SignatureCancelledByUserException - El usuario no ha querido elegir un certificado de la lista
es.accv.arangi.base.exception.device.OpeningDeviceException - No se ha podido abrir el dispositivo con el certificado para contrafirmar
SignatureFormatException - La firma no ha podido ser cargada

validateSignature

public ValidationObject validateSignature(java.io.File signature,
                                          java.lang.String signatureType)
                                   throws es.accv.arangi.base.exception.signature.SignatureNotFoundException,
                                          SignatureTypeUnknownException,
                                          SignatureFormatException,
                                          NoDetachedDocumentToValidateException
Valida una firma attached: CMS, PKCS#7, PDF, PADES-LTV, XAdES-BES attached, XAdES-T attached y XAdES-X-L attached.

Parameters:
signature - Fichero con la firma
signatureType - Tipo de firma según las constantes definidas en la clase Constants
Returns:
Objetos de validación (uno por cada firmador)
Throws:
es.accv.arangi.base.exception.signature.SignatureNotFoundException - No existe el fichero pasado como parámetro
SignatureTypeUnknownException - No se ha encontrado una clase capaz de realizar la firma demandada
SignatureFormatException - La firma no ha podido ser cargada
NoDetachedDocumentToValidateException - La firma es detached y el documento no existe o no puede ser leído

validateSignature

public ValidationObject validateSignature(byte[] signature,
                                          java.lang.String signatureType)
                                   throws SignatureTypeUnknownException,
                                          SignatureFormatException
Valida una firma attached: CMS, PKCS#7, PDF, PADES-LTV, XAdES-BES attached, XAdES-T attached y XAdES-X-L attached.

Parameters:
signature - Fichero con la firma
signatureType - Tipo de firma según las constantes definidas en la clase Constants
Returns:
Objetos de validación (uno por cada firmador)
Throws:
SignatureTypeUnknownException - No se ha encontrado una clase capaz de realizar la firma demandada
SignatureFormatException - La firma no ha podido ser cargada

validateSignature

public ValidationObject validateSignature(java.io.InputStream isSignature,
                                          java.lang.String signatureType)
                                   throws SignatureTypeUnknownException,
                                          SignatureFormatException
Valida una firma attached: CMS, PKCS#7, PDF, PADES-LTV, XAdES-BES attached, XAdES-T attached y XAdES-X-L attached.

Parameters:
isSignature - Stream al fichero con la firma
signatureType - Tipo de firma según las constantes definidas en la clase Constants
Returns:
Objetos de validación (uno por cada firmador)
Throws:
SignatureTypeUnknownException - No se ha encontrado una clase capaz de realizar la firma demandada
SignatureFormatException - La firma no ha podido ser cargada

validateSignature

public ValidationObject validateSignature(java.io.File signature,
                                          java.io.File detachedFile,
                                          java.lang.String signatureType)
                                   throws es.accv.arangi.base.exception.signature.SignatureNotFoundException,
                                          SignatureTypeUnknownException,
                                          SignatureFormatException,
                                          NoDetachedDocumentToValidateException
Valida una firma. Para el caso de las firmas attached no es necesario pasar el fichero detached.

Parameters:
signature - Fichero con la firma
detachedFile - Fichero firmado (sólo obligatorio para firmas detached)
signatureType - Tipo de firma según las constantes definidas en la clase Constants
Returns:
Objetos de validación (uno por cada firmador)
Throws:
es.accv.arangi.base.exception.signature.SignatureNotFoundException - No existe el fichero pasado como parámetro
SignatureTypeUnknownException - No se ha encontrado una clase capaz de realizar la firma demandada
SignatureFormatException - La firma no ha podido ser cargada
NoDetachedDocumentToValidateException - La firma es detached y el documento no existe o no puede ser leído

validateSignature

public ValidationObject validateSignature(java.io.File signature,
                                          byte[] detachedContent,
                                          java.lang.String signatureType)
                                   throws es.accv.arangi.base.exception.signature.SignatureNotFoundException,
                                          SignatureTypeUnknownException,
                                          SignatureFormatException
Valida una firma. Para el caso de las firmas attached no es necesario pasar el contenido del fichero detached.

Parameters:
signature - Fichero con la firma
detachedContent - Fichero firmado (sólo para firmas detached)
signatureType - Tipo de firma según las constantes definidas en la clase Constants
Returns:
Objetos de validación (uno por cada firmador)
Throws:
es.accv.arangi.base.exception.signature.SignatureNotFoundException - No existe el fichero pasado como parámetro
SignatureTypeUnknownException - No se ha encontrado una clase capaz de realizar la firma demandada
SignatureFormatException - La firma no ha podido ser cargada

validateSignature

public ValidationObject validateSignature(byte[] signature,
                                          java.io.File detachedFile,
                                          java.lang.String signatureType)
                                   throws es.accv.arangi.base.exception.signature.SignatureNotFoundException,
                                          SignatureTypeUnknownException,
                                          SignatureFormatException,
                                          NoDetachedDocumentToValidateException
Valida una firma. Para el caso de las firmas attached no es necesario pasar el fichero detached.

Parameters:
signature - Contenido de la firma
detachedFile - Fichero firmado (sólo obligatorio para firmas detached)
signatureType - Tipo de firma según las constantes definidas en la clase Constants
Returns:
Objetos de validación (uno por cada firmador)
Throws:
es.accv.arangi.base.exception.signature.SignatureNotFoundException - No existe el fichero pasado como parámetro
SignatureTypeUnknownException - No se ha encontrado una clase capaz de realizar la firma demandada
SignatureFormatException - La firma no ha podido ser cargada
NoDetachedDocumentToValidateException - La firma es detached y el documento no existe o no puede ser leído

validateSignature

public ValidationObject validateSignature(byte[] signature,
                                          byte[] detachedContent,
                                          java.lang.String signatureType)
                                   throws SignatureTypeUnknownException,
                                          SignatureFormatException
Valida una firma. Para el caso de las firmas attached no es necesario pasar el contenido del fichero detached.

Parameters:
signature - Contenido de la firma
detachedContent - Fichero firmado (sólo para firmas detached)
signatureType - Tipo de firma según las constantes definidas en la clase Constants
Returns:
Objetos de validación (uno por cada firmador)
Throws:
SignatureTypeUnknownException - No se ha encontrado una clase capaz de realizar la firma demandada
SignatureFormatException - La firma no ha podido ser cargada

validateSignature

public ValidationObject validateSignature(java.io.InputStream isSignature,
                                          java.io.InputStream detachedContent,
                                          java.lang.String signatureType)
                                   throws SignatureTypeUnknownException,
                                          SignatureFormatException
Valida una firma. Para el caso de las firmas attached no es necesario pasar el contenido del fichero detached.

Parameters:
isSignature - Stream al fichero con la firma
detachedContent - Stream al fichero firmado (sólo para firmas detached)
signatureType - Tipo de firma según las constantes definidas en la clase Constants
Returns:
XML resultado de la validación
Throws:
SignatureTypeUnknownException - No se ha encontrado una clase capaz de realizar la firma demandada
SignatureFormatException - La firma no ha podido ser cargada

validateCertificate

public java.lang.String validateCertificate(java.io.InputStream isCertificate)
                                     throws MalformedCertificateException,
                                            NoArangiCertificateException,
                                            java.io.UnsupportedEncodingException
Valida un certificado y devuelve un XML con la respuesta

Parameters:
isCertificate - Stream de lectura del certificado
Returns:
XML con la respuesta
Throws:
es.accv.arangi.base.exception.signature.InvalidCertificateException - El parámetro no contiene un certificado digital válido
NoArangiCertificateException - El certificado no es uno de los tratados por Arangí
java.io.UnsupportedEncodingException - La codificación UTF-8 no está soportada
MalformedCertificateException

getSignatureValidationResultXML

public java.lang.String getSignatureValidationResultXML(ValidationObject validationObject)
                                                 throws java.io.UnsupportedEncodingException
A partir de los resultados de una validación obtiene un xml

Parameters:
validationObjects - Resultado de la validación
Returns:
XML con los resultados de la validación
Throws:
java.io.UnsupportedEncodingException - La codificación UTF-8 no está soportada

getClientSignatureFactory

public ArangiClientSignatureFactory getClientSignatureFactory(java.lang.String signatureType)
                                                       throws SignatureTypeUnknownException
Obtiene el objeto que construirá la firma

Parameters:
signatureType - Tipo de firma
Returns:
Objeto que tratará la firma
Throws:
SignatureTypeUnknownException - No hay ningún objeto para tratar ese tipo de firma

getClientValidationFactory

public ArangiClientValidationFactory getClientValidationFactory(java.lang.String signatureType)
                                                         throws SignatureTypeUnknownException
Obtiene el objeto que validará un tipo de firma

Parameters:
signatureType - Tipo de firma
Returns:
Objeto que validará un tipo de firmas
Throws:
SignatureTypeUnknownException - No hay ningún objeto para tratar ese tipo de firma