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
| InputFile | Den signerede PDF |
|---|---|
| Password | Adgangskoden til at åbne den eller en tom streng |
| OutputFile | Den udvidede PDF, der skal skrives. |
| FieldName | Et signaturfelt, der skal behandles, eller en tom streng for at behandle alle signaturer til én revision. |
| Options | En 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
| 1 | Opgraderingen lykkedes. |
|---|---|
| 2 | Inputfilen kunne ikke læses |
| 3 | Input-PDF-filen kunne ikke fortolkes |
| 10 | Outputtet kunne ikke skrives. |
| 11 | Dokumentets sikkerhedslager kunne ikke tilføjes. |
| 20 | Intet sådant signaturfelt. |
| 21 | Ingen 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