signer
signer copied to clipboard
Proposta para checkSignatureByHash: erro se digestAlgorithmOID não bate
checkSignatureByHash(String digestAlgorithmOID, byte[] calculatedHashContent, byte[] signedData)
O método checkSignatureByHash
recebe o p7s (signedData
), e pelos metadados do p7s é possível descobrir qual o algoritmo de hash foi usado na assinatura (ex: SHA512). Caso o usuário informe em digestAlgorithmOID
o "algoritmo errado", o Demoiselle Signer poderia disparar uma exceção, acusando algo como "Hash informado utiliza algoritmo (SHA512) diferente do algoritmo de hash utilizado no momento da assinatura (SHA256). Por favor, forneça um hash calculado com o algoritmo SHA512".
Motivação: com esse erro ficará claro para o programador (usuário da biblioteca) que a escolha do algoritmo de hash não é livre (e ele pode não saber disso). Além disso, o usuário final não corre o risco de receber um erro sugerindo que o conteúdo assinado foi adulterado, que é o que ocorre hoje ("O documento foi alterado após a assinatura ou esta não pertence a este documento").