SDK viafirma platform

SIGNATURE_POLICY_HASH_DATA

Hash (codificado en base64) para la política de firma utilizando el algoritmo de viafirma para digest (por defecto SHA-1), o lista con hash como primer elemento y algoritmo de resumen en el segundo.

Este parámetro no es obligatorio, si no se indica, la plataforma tratará de acceder a la url del documento informada en SIGNATURE_POLICY_URI y calculará el hash de la política automáticamente.

Si no se informa URI o sabemos que ésta no es accesible desde el servidor de viafirma platform, entonces informamos el parámetro éste parámetro.

Podríamos indicar este dato de varias formas:

Calculando el hash, usando SHA-1, y colocarlo en base 64

Java

Policy policy = new Policy();
//SOLO HASH
policy.addParameter(PolicyParams.SIGNATURE_POLICY_HASH_DATA.getKey(), "M97XDPtxhg1Tv6qBNYcM8mEl0OE=");

.Net

policy policy = PolicyUtil.newPolicy(typeFormatSign.XADES_EPES_ENVELOPED, typeSign.ENVELOPED);
PolicyUtil.AddParameter(policy, PolicyParams.SIGNATURE_POLICY_HASH_DATA,"M97XDPtxhg1Tv6qBNYcM8mEl0OE=.");
Calculando el hash usando un algoritmo de digest distinto a SHA-1 y colocarlo en base 64

El primer elemento sería como el anterior, calculando el hash usando el algoritmo que luego se deberá informar en el segundo elemento. En ese segundo elemento se informaría el algoritmo con el que se ha calculado el hash previo, el valor a utilizar sería algo como DigestMethod.SHA256.name() o el algoritmo que corresponda de este enum DigestMethod.

Los posibles valores vienen definidos en la clase DigestMethod y son los siguientes:

  • SHA1
  • SHA256
  • SHA384
  • SHA512

Java

Policy policy = new Policy();
//HASH + ALGORITHM

List<String> hashData = new ArrayList<String>();
hashData.add("RT97dsfttxhg2Tv5qHNYcN45mAlasE0=");
hashData.add(DigestMethod.SHA256.name());
policy.addParameter(PolicyParams.SIGNATURE_POLICY_HASH_DATA.getKey(), hashData);

.Net

policy policy = PolicyUtil.newPolicy(typeFormatSign.XADES_EPES_ENVELOPED, typeSign.ENVELOPED);

//HASH + ALGORITHM
List<String> hashData = new List<String>();
hashData.Add("RT97dsfttxhg2Tv5qHNYcN45mAlasE0=");
hashData.Add("SHA256");
PolicyUtil.AddParameter(policy, PolicyParams.SIGNATURE_POLICY_HASH_DATA, hashData");