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
| InputFile | Il PDF firmato |
|---|---|
| Password | La password per aprirlo oppure una stringa vuota |
| OutputFile | Il PDF ampliato da scrivere |
| FieldName | Campo firma da elaborare oppure stringa vuota per elaborare tutte le firme in un'unica revisione |
| Options | Una 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
| 1 | La promozione è riuscita |
|---|---|
| 2 | Impossibile leggere il file di input |
| 3 | Impossibile analizzare il PDF di input |
| 10 | Impossibile scrivere l'output |
| 11 | Non è stato possibile aggiungere l'archivio di sicurezza del documento |
| 20 | Nessun campo firma corrispondente |
| 21 | Nessuna 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