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

InputFileO documento assinado
PasswordA palavra-passe para o abrir, ou uma cadeia vazia
FieldNameO campo de assinatura a avaliar

Valores devolvidos

1Nada foi acrescentado após a assinatura
2Só foram acrescentadas as alterações permitidas pelo nível de certificação
3Foi acrescentado algo que o nível não permite
4Não foi possível determinar a resposta
5A assinatura não termina num limite de revisão, pelo que existem bytes dentro do intervalo que declara abranger
0Nã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