GetSignatureModificationVerdict
Assinaturas digitais
Descrição
Indica se as atualizações acrescentadas depois d'uma assinatura eram permitidas pelo nível de certificação do documento
Sintaxe
Delphi
Function TPDFlib.GetSignatureModificationVerdict(Const InputFile, Password, FieldName: WideString): Integer;Parâmetros
| InputFile | O documento assinado |
|---|---|
| Password | A palavra-passe para o abrir, ou uma cadeia vazia |
| FieldName | O campo de assinatura a avaliar |
Valores devolvidos
| 1 | Nada foi acrescentado após a assinatura |
|---|---|
| 2 | Só foram acrescentadas as alterações permitidas pelo nível de certificação |
| 3 | Foi acrescentado algo que o nível não permite |
| 4 | Não foi possível determinar a resposta |
| 5 | A assinatura não termina num limite de revisão, pelo que existem bytes dentro do intervalo que declara abranger |
| 0 | Não foi possível ler o ficheiro ou o campo |
Observações
A norma ISO 32000-1 §12.8.2.2 atribui a uma assinatura de certificação um nível de permissão: 1 não permite qualquer alteração posterior, 2 permite adicionalmente preencher campos de formulário e assinar, e 3 permite adicionalmente anotações. O material de validação e os carimbos temporais de documentos são permitidos em todos os níveis, pelo que promover uma assinatura para validação a longo prazo nunca é interpretado como adulteração
Um resultado de 4 não é uma aprovação. É devolvido quando não foi possível verificar a estrutura d'uma certificação, quando existe um bloqueio de campo e não é possível rastrear quais os campos afetados pelas atualizações posteriores, quando uma revisão posterior contém algo que não pôde ser lido e quando o ficheiro contém bytes após o intervalo assinado que não formam uma revisão reconhecível. Em cada um destes casos há algo de relevante que é desconhecido, e tratá-lo como permitido seria a decisão errada
GetSignatureModificationDetail identifica a revisão e o tipo de alteração subjacente à resposta, e GetSignatureEffectiveMDPLevel comunica o nível aplicado
Exemplo
case PDF.GetSignatureModificationVerdict('signed.pdf', '', 'Signature1') of
1, 2: ShowMessage('the signature still covers the document');
3: ShowMessage('not allowed: '+ PDF.GetSignatureModificationDetail);
else
ShowMessage('undetermined: '+ PDF.GetSignatureModificationDetail);
end;Consulte também
GetSignatureEffectiveMDPLevel, GetSignatureModificationDetail, GetSignatureRevisionIndex, GetDocumentRevisionKind