ApplyPAdESLongTermValidation

Digitale handtekeningen

Beschrijving

Promoveert een al ondertekende PDF in één aanroep naar PAdES-B-LT en schrijft het resultaat naar een bestand

Syntaxis

Delphi

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

Parameters

InputFileDe ondertekende PDF
PasswordHet wachtwoord om het te openen, of een lege string
OutputFileDe augmented PDF die moet worden weggeschreven
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.

Opties

PADES_LTV_WRITE_VRI (1)Schrijf een VRI-entry voor elke handtekening
PADES_LTV_FETCH_OCSP (2)Vraag de OCSP-responder van elke link
PADES_LTV_FETCH_CRL (4)Terugvallen op de CRL als OCSP niets opleverde
PADES_LTV_FOLLOW_AIA (8)Volg de issuer-adressen om het pad compleet te maken
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)Al het bovenstaande; geselecteerd wanneer Options 0 is

Retourwaarden

1De promotie is geslaagd.
2Het invoerbestand kon niet worden gelezen
3De invoer-PDF kon niet worden geparsed
10De uitvoer kon niet worden geschreven
11De document security store kon niet worden toegevoegd
20No such signature field.
21No processed signature carried a readable certificate.

GetPAdESLTVError draagt de reden voor elke waarde anders dan 1

Opmerkingen

Het ondertekeningscertificaatpad wordt opgebouwd vanuit de eigen CMS van de handtekening, en de resterende issuers worden gevolgd via de caIssuers-adressen die de certificaten noemen wanneer PADES_LTV_FOLLOW_AIA is gezet. Revocatie wordt per schakel verzameld — eerst OCSP, dan een CRL — en wordt samen met de certificaten via één incrementele update in de document security store weggeschreven

Materiaal dat identiek is aan iets dat al klaarstaat, wordt één keer weggeschreven en door elke handtekening die het nodig heeft gerefereerd, zodat een certificaatautoriteit die over het pad of over handtekeningen heen gedeeld wordt niet twee keer verschijnt. Een VRI-entry wordt alleen weggeschreven als er een certificaat is om naar te wijzen, dus een lege entry ontstaat nooit

Een onbereikbare responder laat de aanroep niet falen: de promotie gaat door met wat er is verzameld, en GetPAdESLTVCertificateCount, GetPAdESLTVCRLCount, GetPAdESLTVOCSPCount en GetPAdESLTVError rapporteren wat is verkregen en waarom iets is gemist

Voorbeeld

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

Zie ook

ApplyPAdESLongTermValidationToStream, GetSignatureCertificateChainLength, AddPAdESDSSOCSPFromCertificates