ApplyPAdESLongTermValidation

Digitala signaturer

Beskrivning

Höjer en redan signerad PDF till PAdES-B-LT i ett anrop och skriver resultatet till en fil

Syntax

Delphi

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

Parametrar

InputFileDen signerade PDF-filen
PasswordLösenordet som öppnar den, eller en tom sträng
OutputFileDen utökade PDF-fil som ska skrivas
FieldNameEtt signaturfält som ska behandlas, eller en tom sträng för att lägga in alla signaturer i en och samma revision
OptionsEn bitmask av PADES_LTV_*-värden; 0 väljer PADES_LTV_DEFAULT

Alternativ

PADES_LTV_WRITE_VRI (1)Skriver en VRI-post för varje signatur
PADES_LTV_FETCH_OCSP (2)Frågar OCSP-respondern för varje länk
PADES_LTV_FETCH_CRL (4)Faller tillbaka på CRL när OCSP inte gav något svar
PADES_LTV_FOLLOW_AIA (8)Följer utgivarens adresser för att komplettera kedjan
PADES_LTV_SKIP_EXISTING (16)Lägger inte till material igen när dess byte redan finns på plats
PADES_LTV_SKIP_ROOT_REVOCATION (32)Frågar inte efter status för ett självutgivet rotcertifikat
PADES_LTV_DEFAULT (63)Allt ovan; väljs när Options är 0

Returvärden

1Uppgraderingen lyckades
2Indatafilen kunde inte läsas
3Indata-PDF:en kunde inte tolkas
10Utdata kunde inte skrivas
11Document security store kunde inte läggas till
20Inget sådant signaturfält finns
21Ingen av de behandlade signaturerna bar ett läsbart certifikat

GetPAdESLTVError anger orsaken för alla värden utom 1

Anmärkningar

Signerarens certifikatkedja byggs från signaturens egna CMS-data, och när PADES_LTV_FOLLOW_AIA är satt följs återstående utgivare via de caIssuers-adresser certifikaten anger. Spärrningsmaterial hämtas för varje länk - först OCSP, sedan CRL - och skrivs, tillsammans med certifikaten, till document security store i en enda inkrementell uppdatering

Material som är identiskt med något som redan finns på plats skrivs en gång och refereras av varje signatur som behöver det, så en certifikatutgivare som delas av kedjan eller av flera signaturer förekommer bara en gång. En VRI-post skrivs bara när den har ett certifikat att peka på, så en tom post skapas aldrig

En responder som inte går att nå får inte anropet att misslyckas: uppgraderingen fortsätter med det som hann hämtas, och GetPAdESLTVCertificateCount, GetPAdESLTVCRLCount, GetPAdESLTVOCSPCount och GetPAdESLTVError redogör för vad som erhölls och varför något missades

Exempel

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

Se även

ApplyPAdESLongTermValidationToStream, GetSignatureCertificateChainLength, AddPAdESDSSOCSPFromCertificates