Algoritmo por defecto de las firmas

El sistema aplica un algoritmo por defecto para la generación de firmas. Éste aplica en peticiones donde no se especifica qué algoritmo queremos utilizar para la firma. Esta situación es típica cuando enviamos por ejemplo un archivo PDF.

La configuración del sistema en este aspecto es la siguiente:

  • Actualmente -> Algoritmo SHA1
  • A partir de 26/04/2023 -> SHA256

Cómo pedir un algoritmo específico en la petición de firma

Hay que añadir en la request que llega a TX el campo <SignatureDigestAlgorithm> en el campo <OptionalInputs>

El valor posible son:

  • md5
  • sha1
  • id_sha256
  • id_sha384
  • id_sha512

Ejemplo:

<OptionalInputs>

...

<SignatureDigestAlgorithm>id_sha256</SignatureDigestAlgorithm>

....

</OptionalInputs>

Peticiones que en lugar de un documento aportan un HASH calculado externamente.

Hay casos en que la petición no contiene el documento a firmar sino un HASH calculado externamente en TrustedX. En este caso el nodo <Document> contiene una estructura como ésta

<InputDocuments><DocumentHash>

<ns3:DigestMethod Algorithm=" urn:nist-gov:sha256 " xsi:type="ns3:DigestMethodType" xmlns:ns3=http://www.w3.org/2000/09/xmldsig#/>

<ns4:DigestValue xsi:type="ns4:DigestValueType" xmlns:ns4=http://www.w3.org/2000/09/xmldsig#>ZTgwZTYyZTQ2MTJmMjQ5NGE4OTAwY2QxZTJjZTA4Zj YTM3MjFlZGY3MA==</ns4:DigestValue>

</DocumentHash>

</InputDocuments>

En este caso el valor que debe indicarse en <ds:DigestMethod> el atributo Algorithm utilizado, los valores pueden ser los siguientes:

  • http://www.w3.org/2000/09/xmldsig#sha1
  • http://www.w3.org/2001/04/xmldsig-more#md5
  • urn:nist-gov:sha256
  • urn:nist-gov:sha384
  • urn:nist-gov:sha512
  • http://www.w3.org/2001/04/xmlenc#sha256 (only for generating XMLDSig/XAdES firmas)
  • http://www.w3.org/2001/04/xmldsig-more#sha384 (only for generating XMLDSig/XAdES firmas)
  • http://www.w3.org/2001/04/xmlenc#sha512 (only for generating XMLDSig/XAdES firmas)

NOTA : En este caso, es necesario asegurar que la combinación entre SignatureDigestAlgorithm y el HASH calculado debe ser coherente o el sistema no firmará.