ApplyPAdESLongTermValidation

Digitale Signaturen

Beschreibung

Stuft eine bereits signierte PDF-Datei in einem Aufruf auf PAdES-B-LT hoch und schreibt das Ergebnis in eine Datei

Syntax

Delphi

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

Parameter

InputFileDie signierte PDF-Datei.
PasswordDas Kennwort zum Öffnen oder eine leere Zeichenfolge.
OutputFileDie zu schreibende erweiterte PDF-Datei
FieldNameEin zu verarbeitendes Signaturfeld oder eine leere Zeichenfolge, um jede Signatur in einer Revision zu verarbeiten
OptionsEine PADES_LTV_*-Bitmaske; 0 wählt PADES_LTV_DEFAULT.

Optionen

PADES_LTV_WRITE_VRI (1)Schreibt für jede Signatur einen VRI-Eintrag
PADES_LTV_FETCH_OCSP (2)Fragt den OCSP-Responder jedes Links ab.
PADES_LTV_FETCH_CRL (4)Greift auf die CRL zurück, wenn OCSP nichts zurückgegeben hat.
PADES_LTV_FOLLOW_AIA (8)Folgt den Adressen der Aussteller, um den Pfad zu vervollständigen
PADES_LTV_SKIP_EXISTING (16)Material, dessen Bytes bereits vorgemerkt sind, nicht erneut hinzufügen
PADES_LTV_SKIP_ROOT_REVOCATION (32)Fragen Sie den Status einer selbst ausgestellten Stammzertifizierungsstelle nicht ab
PADES_LTV_DEFAULT (63)Alle oben genannten Optionen; wird ausgewählt, wenn Options 0 ist

Rückgabewerte

1Die Hochstufung war erfolgreich
2Die Eingabedatei konnte nicht gelesen werden
3Das Eingabe-PDF konnte nicht analysiert werden
10Die Ausgabe konnte nicht geschrieben werden
11Der Dokument-Sicherheitsspeicher konnte nicht hinzugefügt werden
20Ein solches Signaturfeld ist nicht vorhanden
21Keine verarbeitete Signatur enthielt ein lesbares Zertifikat

GetPAdESLTVError enthält den Grund für jeden anderen Wert als 1

Anmerkungen

Der Zertifikatspfad des Signierenden wird aus dem eigenen CMS der Signatur aufgebaut; wenn PADES_LTV_FOLLOW_AIA gesetzt ist, werden die übrigen Aussteller über die in den Zertifikaten angegebenen caIssuers-Adressen verfolgt. Für jede Verbindung werden Sperrinformationen erfasst — zuerst OCSP, dann eine CRL — und zusammen mit den Zertifikaten durch eine einzige inkrementelle Aktualisierung in den Dokumentsicherheitsspeicher geschrieben

Material, das mit bereits bereitgestelltem Material identisch ist, wird einmal geschrieben und von jeder benötigten Signatur referenziert, sodass eine im Pfad oder über Signaturen gemeinsam genutzte Zertifizierungsstelle nicht doppelt erscheint. Ein VRI-Eintrag wird nur geschrieben, wenn er auf ein Zertifikat verweisen kann; ein leerer Eintrag entsteht daher nie.

Ein nicht erreichbarer Antwortdienst lässt den Aufruf nicht fehlschlagen: Die Hochstufung wird mit den gesammelten Daten fortgesetzt, und GetPAdESLTVCertificateCount, GetPAdESLTVCRLCount, GetPAdESLTVOCSPCount sowie GetPAdESLTVError melden, was abgerufen wurde und warum Daten fehlen

Beispiel

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

Siehe auch

ApplyPAdESLongTermValidationToStream, GetSignatureCertificateChainLength, AddPAdESDSSOCSPFromCertificates