ApplyPAdESLongTermValidation

Digitale signaturer

Beskrivelse

Opgraderer en allerede signeret PDF til PAdES-B-LT i et enkelt kald og skriver resultatet til en fil.

Syntaks

Delphi

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

Parametre

InputFileDen signerede PDF
PasswordAdgangskoden til at åbne den eller en tom streng
OutputFileDen udvidede PDF, der skal skrives.
FieldNameEt signaturfelt, der skal behandles, eller en tom streng for at behandle alle signaturer til én revision.
OptionsEn PADES_LTV_*-bitmaske; 0 vælger PADES_LTV_DEFAULT

Valgmuligheder

PADES_LTV_WRITE_VRI (1)Skriv en VRI-post for hver signatur.
PADES_LTV_FETCH_OCSP (2)Forespørg OCSP-responderen for hvert link
PADES_LTV_FETCH_CRL (4)Brug CRL som reserve, når OCSP ikke returnerede noget.
PADES_LTV_FOLLOW_AIA (8)Følg udstederadresser for at fuldføre stien.
PADES_LTV_SKIP_EXISTING (16)Tilføj ikke materiale igen, hvis bytes allerede er klargjort.
PADES_LTV_SKIP_ROOT_REVOCATION (32)Anmod ikke om status for en selvudstedt rodcertifikatudsteder.
PADES_LTV_DEFAULT (63)Alt ovenstående; vælges, når Options er 0

Returværdier

1Opgraderingen lykkedes.
2Inputfilen kunne ikke læses
3Input-PDF-filen kunne ikke fortolkes
10Outputtet kunne ikke skrives.
11Dokumentets sikkerhedslager kunne ikke tilføjes.
20Intet sådant signaturfelt.
21Ingen behandlet signatur indeholdt et læsbart certifikat.

GetPAdESLTVError indeholder årsagen til enhver anden værdi end 1.

Bemærkninger

Stien til underskrivercertifikatet opbygges ud fra signaturens egen CMS, og de resterende udstedere følges gennem caIssuers-adresserne i certifikatnavnet, når PADES_LTV_FOLLOW_AIA er angivet. Tilbagekaldelse indsamles for hvert led - først OCSP, derefter en CRL - og skrives sammen med certifikaterne til dokumentets sikkerhedslager ved én trinvis opdatering.

Materiale, der er identisk med noget, som allerede er klargjort, skrives én gang og refereres af hver signatur, der kræver det, så en certifikatmyndighed, der deles på tværs af stien eller signaturer, ikke forekommer to gange. En VRI-post skrives kun, når den har et certifikat at pege på, så der frembringes aldrig en tom post.

En responder, der ikke kan nås, får ikke kaldet til at mislykkes: opgraderingen fortsætter med det indsamlede materiale, og GetPAdESLTVCertificateCount, GetPAdESLTVCRLCount, GetPAdESLTVOCSPCount og GetPAdESLTVError rapporterer, hvad der blev hentet, og hvorfor noget manglede.

Eksempel

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

Se også

ApplyPAdESLongTermValidationToStream, GetSignatureCertificateChainLength, AddPAdESDSSOCSPFromCertificates