Algoritmo de assinatura padrão

O sistema aplica um algoritmo padrão para a geração de assinaturas. Isso se aplica em solicitações onde não está especificado qual algoritmo queremos usar para a assinatura. Esta situação é típica quando enviamos, por exemplo, um arquivo PDF.

A configuração do sistema neste aspecto é a seguinte:

  • Atualmente -> Algoritmo SHA1
  • De 26/04/2023 -> SHA256

Como solicitar um algoritmo específico na solicitação de assinatura

O campo <SignatureDigestAlgorithm> deve ser adicionado ao campo <OptionalInputs> na requisição que chega no TX

Os valores possíveis são:

  • md5
  • sha1
  • id_sha256
  • id_sha384
  • id_sha512

Exemplo:

<Entradas opcionais>

...

<SignatureDigestAlgorithm>id_sha256</SignatureDigestAlgorithm>

....

</OptionalInputs>

Solicita que, em vez de um documento, forneça um HASH calculado externamente.

Há casos em que a solicitação não contém o documento a ser assinado e sim um HASH calculado externamente ao TrustedX. Neste caso o nó <Document> contém uma estrutura como esta

<InputDocuments><DocumentHash>

<ns3:Algoritmo DigestMethod=" 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#>ZTgwZTYyZTQ2MTJmMjQ5NGE4OTAwY2QxZTJjZTA4ZjQwNjQwMjI0NTE1MzY4ZjYwNDVjOTU4YTM3MjFlZ GY3MA==</ns4:DigestValue gestoValue>

</DocumentHash>

</InputDocuments>

Neste caso o valor a indicar em <ds:DigestMethod> o atributo Algorithm que foi utilizado, os valores podem ser os seguintes:

  • http://www.w3.org/2000/09/xmldsig#sha1
  • http://www.w3.org/2001/04/xmldsig-more#md5
  • urna:nist-gov:sha256
  • urna:nist-gov:sha384
  • urna:nist-gov:sha512
  • http://www.w3.org/2001/04/xmlenc#sha256 (somente para gerar assinaturas XMLDSig/XAdES)
  • http://www.w3.org/2001/04/xmldsig-more#sha384 (apenas para gerar assinaturas XMLDSig/XAdES)
  • http://www.w3.org/2001/04/xmlenc#sha512 (somente para gerar assinaturas XMLDSig/XAdES)

NOTA : Nestes casos, é necessário garantir que a combinação entre SignatureDigestAlgorithm e o HASH calculado deve ser consistente ou o sistema não assinará.