Upgrade de firma XAdES

La plataforma permite realizar la actualización de una firma a un formato superior, por ejemplo podemos pasar de una firma XAdES_BES a una firma XAdES_A

El método a utilizar para realizar esta acción es:

Java

viafirmaClient.upgradeSignature(pol, documento);

Un ejemplo de integración utilizando este método es el siguiente:

Java

ViafirmaClient viafirmaClient = ViafirmaClientFactory.getInstance();

Policy pol = new Policy();
pol.setTypeFormatSign(TypeFormatSign.XADES_A_ENVELOPED);
pol.setTypeSign(TypeSign.ENVELOPED);

byte[] documentToUpgrade = getDocumentToUpgrade();
Documento documento = new Documento("original.pdf", documentToUpgrade, TypeFile.XML, TypeFormatSign.XADES_BES);

idFirma_A = viafirmaClient.upgradeSignature(pol, documento);
byte[] xades_XL_upgraded_to_A = viafirmaClient.getDocumentoCustodiado(idFirma_A);

En la primera línea del snippet de código se instancia el cliente de viafirma.

A continuación se crea el objeto 'Policy' en el que se configurará el formato de firma al que actualizar, este formato tiene que ser del mismo tipo y con un nivel superior a la firma con la que está firmado el documento, en este caso utilizaremos un formato XAdES_A, se informará también el tipo de envoltura que deberá coincidir con la de la firma previa, en este caso usamos ENVELOPED.

Seguidamente se crea el objeto 'Documento' cuyos parámetros son:

  • String con el nombre del documento (incluir también la extensión del documento)
  • byte[] del documento al que le queremos realizar el upgrade
  • 'TypeFile' del documento
  • 'TypeFormatSign' con el que está firmado el documento actualmente

En la siguiente línea se hace uso del método upgradeSignature(pol, documento) donde se tiene que pasar como parámetros el objeto 'Policy' y el objeto 'Documento' que creamos anteriormente. Este método nos devuelve un String con el id de firma y que, con la última linea del snnipet de código, obtenemos el byte[] del documento con la firma actualizada.

Existe una forma específica de realizar el resellado de firmas XAdES_XL o XAdES_A que podemos considerar un tipo especial de upgrade de firma (también se puede realizar el resellado con el método anterior)

Java

byte[] viafirmaClient.xadesAResign(byte[] XL_or_A);

La peculiaridad sobre este método es que solo se pueden indicar documentos firmados en XAdES_XL y XAdES_A además de obtener como resultado el byte[] del documento firmado y no el id de firma, por lo que, utilizando este método, el documento no es custodiado por el servidor de viafirma platform, deberá ser el integrador el encargado de guardar el documento donde considere oportuno.

results matching ""

    No results matching ""