Qual é a diferença entre as funções signData e signHash?
signData
e signHash
-- realizam um algoritmo de assinatura digital utilizando a chave privada deum dos certificados presentes na máquina do usuário. Para entender a diferença entre as duas funções, precisamos falar
rapidamente sobre os detalhes de um algoritmo de assinatura.
O termo algoritmo de assinatura digital não deve ser confundido com assinatura digital. Leia mais sobre esse assunto no artigo Assinaturas digitais.
1.
2.
3.
4.
O cálculo de hash realizado na primeira etapa geralmente não é sobre o documento sendo assinado. Nos esquemas de assinatura CMS/CAdES, PAdES e XmlDSig/XAdES, os bytes usados como entrada para o algoritmo de assinatura correspondem à codificação dos "atributos assinados", uma estrutura que contém diversos dados, entre eles o hash do documento.
signData
recebe como entrada o to-sign-data e realiza sobre ele todas as etapas, enquanto que a função signHash
recebe como entrada o to-sign-hash, isto é, o hash pré-computado do to-sign-data, e realiza sobre ele apenas da segunda etapa em diante.signData
. Se for produzido um to-sign-hash, utilize a função signHash
.