ApplyPAdESLongTermValidation

Firme digitali

Descrizione

Promuove un PDF già firmato a PAdES-B-LT in un'unica chiamata, scrivendo il risultato in un file

Sintassi

Delphi

Function TPDFlib.ApplyPAdESLongTermValidation(Const InputFile, Password, OutputFile, FieldName: WideString; Options: Integer): Integer;

Parametri

InputFileIl PDF firmato
PasswordLa password per aprirlo oppure una stringa vuota
OutputFileIl PDF ampliato da scrivere
FieldNameCampo firma da elaborare oppure stringa vuota per elaborare tutte le firme in un'unica revisione
OptionsUna maschera di bit PADES_LTV_*; 0 seleziona PADES_LTV_DEFAULT

Opzioni

PADES_LTV_WRITE_VRI (1)Scrive una voce VRI per ogni firma
PADES_LTV_FETCH_OCSP (2)Interroga il responder OCSP di ogni collegamento
PADES_LTV_FETCH_CRL (4)Ripiega sulla CRL quando OCSP non restituisce nulla
PADES_LTV_FOLLOW_AIA (8)Segue gli indirizzi degli emittenti per completare il percorso
PADES_LTV_SKIP_EXISTING (16)Non aggiunge nuovamente il materiale i cui byte sono già predisposti
PADES_LTV_SKIP_ROOT_REVOCATION (32)Non richiedere lo stato di una radice autofirmata
PADES_LTV_DEFAULT (63)Tutto quanto sopra; selezionato quando Options è 0

Valori restituiti

1La promozione è riuscita
2Impossibile leggere il file di input
3Impossibile analizzare il PDF di input
10Impossibile scrivere l'output
11Non è stato possibile aggiungere l'archivio di sicurezza del documento
20Nessun campo firma corrispondente
21Nessuna firma elaborata conteneva un certificato leggibile

GetPAdESLTVError indica il motivo di qualsiasi valore diverso da 1

Note

Il percorso del certificato viene creato dal CMS della firma; con PADES_LTV_FOLLOW_AIA gli altri emittenti vengono seguiti tramite gli indirizzi caIssuers. La revoca viene raccolta per ogni collegamento, prima OCSP poi CRL, e scritta con i certificati nel document security store mediante un solo aggiornamento incrementale

Il materiale identico a uno già predisposto viene scritto una volta e referenziato da ogni firma che lo richiede, evitando duplicati della stessa autorità di certificazione. Una voce VRI viene scritta solo se contiene un certificato di destinazione, quindi non vengono prodotte voci vuote

Un responder irraggiungibile non provoca il fallimento della chiamata: la promozione prosegue con quanto è stato raccolto, mentre GetPAdESLTVCertificateCount, GetPAdESLTVCRLCount, GetPAdESLTVOCSPCount e GetPAdESLTVError indicano ciò che è stato ottenuto e il motivo di eventuali elementi mancanti

Esempio

PDF.SetTimeStampOptions(2, 1, 1, 15000, '');
if PDF.ApplyPAdESLongTermValidation('signed.pdf', '', 'signed-lt.pdf', '', 0)<> 1 then
  ShowMessage(PDF.GetPAdESLTVError);

Vedere anche

ApplyPAdESLongTermValidationToStream, GetSignatureCertificateChainLength, AddPAdESDSSOCSPFromCertificates