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
| InputFile | Podepsané PDF |
|---|---|
| Password | Heslo k jeho otevření, případně prázdný řetězec |
| OutputFile | Rozšířené PDF k zapsání |
| FieldName | A signature field to process, or an empty string to process every signature into one revision. |
| Options | A 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
| 1 | The promotion succeeded. |
|---|---|
| 2 | Vstupní soubor se nepodařilo přečíst |
| 3 | Vstupní PDF se nepodařilo parsovat |
| 10 | Výstup se nepodařilo zapsat |
| 11 | Úložiště zabezpečení dokumentu (DSS) se nepodařilo přidat |
| 20 | No such signature field. |
| 21 | No 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