GetSignatureModificationVerdict

Firme digitali

Descrizione

Indica se gli aggiornamenti aggiunti dopo una firma erano consentiti dal livello di certificazione del documento'

Sintassi

Delphi

Function TPDFlib.GetSignatureModificationVerdict(Const InputFile, Password, FieldName: WideString): Integer;

Parametri

InputFileIl documento firmato
PasswordLa password per aprirlo oppure una stringa vuota
FieldNameIl campo firma da valutare

Valori restituiti

1Non è stato aggiunto nulla dopo la firma
2Sono state aggiunte solo modifiche consentite dal livello di certificazione
3È stato aggiunto qualcosa che il livello non consente
4Impossibile determinare la risposta
5La firma non termina al limite di revisione, quindi alcuni byte ricadono nell'intervallo dichiarato
0Impossibile leggere il file o il campo

Note

ISO 32000-1 §12.8.2.2 assegna a una firma di certificazione un livello di autorizzazione: 1 non consente modifiche successive, 2 consente inoltre la compilazione dei campi e la firma, 3 consente anche le annotazioni. Materiale di convalida e marche temporali del documento sono consentiti a ogni livello, quindi la promozione di una firma alla convalida a lungo termine non appare come manomissione

Un risultato 4 non è un'approvazione. Viene restituito quando non è verificabile la struttura della certificazione, un blocco campo impedisce di tracciare i campi modificati, una revisione successiva è illeggibile o esistono byte fuori dall'intervallo firmato senza revisione riconoscibile. In tali casi mancano informazioni sostanziali e considerarli consentiti sarebbe errato

GetSignatureModificationDetail indica la revisione e il tipo di modifica alla base della risposta, mentre GetSignatureEffectiveMDPLevel segnala il livello applicato

Esempio

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;

Vedere anche

GetSignatureEffectiveMDPLevel, GetSignatureModificationDetail, GetSignatureRevisionIndex, GetDocumentRevisionKind