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á.