ApplyPAdESLongTermValidation

Digitalni podpisi

Opis

Že podpisan PDF v enem klicu dvigne na PAdES-B-LT, rezultat pa zapiše v datoteko

Sintaksa

Delphi

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

Parametri

InputFilePodpisani PDF
PasswordGeslo za odpiranje ali prazen niz
OutputFileRazširjeni PDF za zapis
FieldNamePodpisno polje za obdelavo ali prazen niz, da se vsi podpisi obdelajo v eno revizijo
Optionsbitna maska PADES_LTV_*; 0 izbere PADES_LTV_DEFAULT

Možnosti

PADES_LTV_WRITE_VRI (1)za vsak podpis zapiše vnos VRI
PADES_LTV_FETCH_OCSP (2)vprašaj OCSP odgovornika vsake povezave
PADES_LTV_FETCH_CRL (4)Ko OCSP ne vrne ničesar, se vrni na CRL
PADES_LTV_FOLLOW_AIA (8)Sledi naslovom izdajatelja, da dopolni pot
PADES_LTV_SKIP_EXISTING (16)Ne znova dodajajte materiala, katerega bajti so že pripravljeni
PADES_LTV_SKIP_ROOT_REVOCATION (32)ne vprašaj po stanju samoidanega korena
PADES_LTV_DEFAULT (63)Vse zgoraj navedeno; izbrano, kadar je Options 0

Vrnjene vrednosti

1Povišanje je uspelo
2Vhodne datoteke ni bilo mogoče prebrati
3Vhodnega PDF-ja ni bilo mogoče razčleniti
10Izhoda ni bilo mogoče zapisati
11Shrambe varnosti dokumenta ni bilo mogoče dodati
20takega podpisnega polja ni
21noben obdelan podpis ni nosil berljivega certifikata

Razlog za katero koli vrednost različno od 1 pove GetPAdESLTVError

Opombe

Pot certifikata podpisnika se zgradi iz lastnega CMS podpisa, preostali izdajatelji pa se sledijo skozi naslove caIssuers, ki jih certifikati poimenujejo, kadar je nastavljen PADES_LTV_FOLLOW_AIA. Preklic se zbere za vsako povezavo - najprej OCSP, nato CRL - in se skupaj s certifikati zapiše v dokumentno varnostno shrambo z enim inkrementalnim posodobitvijo

Gradivo, identično čemu, kar je že pripravljeno, se zapiše enkrat in nanj se sklicuje vsak podpis, ki ga potrebuje, tako da certifikatna avtoriteta, deljena čez pot ali čez podpise, se ne pojavi dvakrat. Vnos VRI se zapiše samo, kadar ima certifikat, na katerega kaže, tako da prazen vnos ni nikoli izdelan

Nedosegljiv odgovarjalec ne povzroči spodletela klica: povišanje se nadaljuje s tem, kar je bilo zbrano, GetPAdESLTVCertificateCount, GetPAdESLTVCRLCount, GetPAdESLTVOCSPCount in GetPAdESLTVError pa poročajo, kaj je bilo pridobljeno in zakaj je kaj ostalo

Primer

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

Glejte tudi

ApplyPAdESLongTermValidationToStream, GetSignatureCertificateChainLength, AddPAdESDSSOCSPFromCertificates