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

InputFileThe signed PDF.
PasswordParola de deschidere sau un șir gol
OutputFilePDF-ul augmentat de scris
FieldNameUn câmp de semnătură de procesat, sau un șir vid pentru a procesa fiecare semnătură într-o singură revizie
OptionsA 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

1The promotion succeeded.
2Fișierul de intrare nu a putut fi citit
3PDF-ul de intrare nu a putut fi parsat
10Ieșirea nu a putut fi scrisă
11Document security store nu a putut fi adăugat
20No such signature field.
21No 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