ApplyPAdESLongTermValidation

Digital signatures

Popis

Povýší už podepsané PDF na PAdES-B-LT jedním voláním a zapíše výsledek do souboru

Syntaxe

Delphi

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

Parametry

InputFilePodepsané PDF
PasswordHeslo k jeho otevření, případně prázdný řetězec
OutputFileRozšířené PDF k zapsání
FieldNameA signature field to process, or an empty string to process every signature into one revision.
OptionsA PADES_LTV_* bit mask; 0 selects PADES_LTV_DEFAULT.

Options

PADES_LTV_WRITE_VRI (1)Write a VRI entry for each signature.
PADES_LTV_FETCH_OCSP (2)Ask each link's OCSP responder.
PADES_LTV_FETCH_CRL (4)Při prázdné odpovědi OCSP sáhně po CRL
PADES_LTV_FOLLOW_AIA (8)Následuje adresy vydavatelů, aby cestu dokončil
PADES_LTV_SKIP_EXISTING (16)Do not re-add material whose bytes are already staged.
PADES_LTV_SKIP_ROOT_REVOCATION (32)Do not ask for a self-issued root's status.
PADES_LTV_DEFAULT (63)Vše výše uvedené; vybírá se při Options = 0

Return values

1The promotion succeeded.
2Vstupní soubor se nepodařilo přečíst
3Vstupní PDF se nepodařilo parsovat
10Výstup se nepodařilo zapsat
11Úložiště zabezpečení dokumentu (DSS) se nepodařilo přidat
20No such signature field.
21No processed signature carried a readable certificate.

Důvod jakékoli hodnoty jiné než 1 nese GetPAdESLTVError

Poznámky

Cesta certifikátu signera se staví z vlastního CMS podpisu a zbývající vystavitele se sleduje přes adresy caIssuers, které certifikáty pojmenovávají, když je nastaveno PADES_LTV_FOLLOW_AIA. Revokace se sesbírá pro každý článek - nejdřív OCSP, pak CRL - a spolu s certifikáty se jednou přírůstkovou aktualizací zapíše do document security store

Materiál shodný s něčím už připraveným se zapíše jednou a každý podpis, který ho potřebuje, na něj odkáže, takže certifikační autorita sdílená napříč cestou nebo napříč podpisy se neobjeví dvakrát. Položka VRI se zapíše jen tehdy, když má certifikát, na který může ukazovat, takže prázdná položka nikdy nevznikne

Nedostupný responder volání neshodí: povýšení pokračuje s tím, co se podařilo získat, a GetPAdESLTVCertificateCount, GetPAdESLTVCRLCount, GetPAdESLTVOCSPCount a GetPAdESLTVError sdělí, co bylo získáno a proč něco chybí

Příklad

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

Viz také

ApplyPAdESLongTermValidationToStream, GetSignatureCertificateChainLength, AddPAdESDSSOCSPFromCertificates