ApplyPAdESLongTermValidation
Semnături digitale
Descriere
Ridică un PDF deja semnat la PAdES-B-LT într-un singur apel, scriind rezultatul într-un fișier
Sintaxă
Delphi
Function TPDFlib.ApplyPAdESLongTermValidation(Const InputFile, Password, OutputFile, FieldName: WideString; Options: Integer): Integer;Parametri
| InputFile | The signed PDF. |
|---|---|
| Password | Parola de deschidere sau un șir gol |
| OutputFile | PDF-ul augmentat de scris |
| FieldName | Un câmp de semnătură de procesat, sau un șir vid pentru a procesa fiecare semnătură într-o singură revizie |
| Options | A PADES_LTV_* bit mask; 0 selects PADES_LTV_DEFAULT. |
Opțiuni
PADES_LTV_WRITE_VRI (1) | Scrie o intrare VRI pentru fiecare semnătură |
|---|---|
PADES_LTV_FETCH_OCSP (2) | Interoghează răspunzătorul OCSP al fiecărei legături. |
PADES_LTV_FETCH_CRL (4) | Revino la CRL când OCSP nu a returnat nimic |
PADES_LTV_FOLLOW_AIA (8) | Urmărește adresele issuer-ului pentru a completa lanțul |
PADES_LTV_SKIP_EXISTING (16) | Nu re-adăugați material ale cărui octeți sunt deja pregătiți |
PADES_LTV_SKIP_ROOT_REVOCATION (32) | Nu cereți starea unui rădăcină auto-emisă |
PADES_LTV_DEFAULT (63) | Toate cele de mai sus; selectat când Options este 0 |
Valori returnate
| 1 | The promotion succeeded. |
|---|---|
| 2 | Fișierul de intrare nu a putut fi citit |
| 3 | PDF-ul de intrare nu a putut fi parsat |
| 10 | Ieșirea nu a putut fi scrisă |
| 11 | Document security store nu a putut fi adăugat |
| 20 | No such signature field. |
| 21 | No processed signature carried a readable certificate. |
GetPAdESLTVError poartă motivul pentru orice valoare diferită de 1
Observații
Lanțul certificatului semnatarului este construit din CMS-ul propriu al semnăturii, iar emitenții rămași sunt urmăriți prin adresele caIssuers numite de certificate când PADES_LTV_FOLLOW_AIA este setat. Revocarea este adunată pentru fiecare legătură - mai întâi OCSP, apoi un CRL - și, odată cu certificatele, este scrisă în document security store printr-un singur update incremental
Materialul identic cu ceva deja pregătit este scris o singură dată și referențiat de fiecare semnătură care are nevoie de el, astfel încât o autoritate de certificare partajată pe lanț sau între semnături nu apare de două ori. O intrare VRI este scrisă doar când are un certificat către care să pointeze, deci nu se produce niciodată o intrare goală
Un responder inaccesibil nu face apelul să eșueze: promovarea continuă cu orice a fost adunat, iar GetPAdESLTVCertificateCount, GetPAdESLTVCRLCount, GetPAdESLTVOCSPCount și GetPAdESLTVError raportează ce a fost obținut și de ce a lipsit ceva
Exemplu
PDF.SetTimeStampOptions(2, 1, 1, 15000, '');
if PDF.ApplyPAdESLongTermValidation('signed.pdf', '', 'signed-lt.pdf', '', 0)<> 1 then
ShowMessage(PDF.GetPAdESLTVError);Consultați și
ApplyPAdESLongTermValidationToStream, GetSignatureCertificateChainLength, AddPAdESDSSOCSPFromCertificates