CIB pdf toolbox technischer Leitfaden (DE)

6. PDF Signatur mit Zertifikat

6.2. Properties zum Signieren und Verfizieren der Signatur

Propertybezeichnung

Typ

Funktionalität

Art

SignPdf

String

Property, mit der das Signieren des Ausgabe-PDFs eingeschaltet werden kann.

Mögliche Werte:

„0“       kein Signieren (default)

„1“       PDF wird signiert

Eventuell in den Eingabe-PDFs enthaltene Signaturen werden standardmäßig gelöscht.
Falls SignPdf=1, muss NeedAppearances=0 gesetzt werden. (Es wird dann im Pdf Dokument das Feld „/NeedAppearances“ „false“ gesetzt.) Sonst ist die erzeugte Signatur im Adobe Signatur Fenster nicht sichtbar.

Set

SignPdf.DocMDP

String

Die Signatur bekommt den Typ „DocMDP“ (Autorensignatur).

Das bedeutet, dass im PDF nachträglich nur Änderungen vorgenommen werden dürfen, die vom Autor explizit erlaubt wurden. Andere Änderungen machen die Signatur ungültig.
Voraussetzungen: SignPdf=1 und die Pdf Version der Ausgabe-Pdf-Datei ist größer gleich 1.5.

Mögliche Werte:

„“    Keine DocMDP Signatur (default)

„1“   Keine Änderungen erlaubt

„2“   Erlaubt sind:
Ausfüllen von Formularfeldern Erzeugen neuer Seiten aus Seiten-Schablonen
Signieren

„3“   Erlaubt sind:
wie “2”,
zusätzlich: alle Änderungen in Kommentaren

sonst: keine DocMDP Signatur

Hinweis: Dokumente mit DocMDP-Signatur können nur von Adobe Reader 7.0 oder höher gelesen werden.

Set

SignPdf.Lock

String

Die Signatur bekommt den Typ Lock. D.h. es sind keinerlei Änderungen an Formularfeldern erlaubt bzw. es dürfen keine sichtbaren Signaturen mehr hinzugefügt werden.

Voraussetzungen: SignPdf=1, SignPdf.DocMDP ist nicht gesetzt, und die Pdf Version der Ausgabe-Pdf-Datei ist größer gleich 1.5.

Mögliche Werte:

„0“   Keine Sperrung des Dokuments (default)

„1“   Dokument ist im obigen Sinne gesperrt. Dies entspricht der Option „Lock Document After Signing“ von Adobe Professional. Im Adobe Reader wird angezeigt:”The document is locked by that signature”.

Set

CertificateFilename

String

Angabe des Namens (ggf. mit Pfad) der Zertifikats-Datei. Dabei muss es sich um ein PKCS12-Zertifikatsfile handeln (übliche Endung „.p12“ oder „.pfx“).

Die Signierung mit PEM-Datei(en) ist noch nicht verfügbar. Sie ist noch nicht hinreichend getestet. Es können mehrere PEM-Dateien angegeben werden. Diese müssen durch einen Strichpunkt (;) getrennt sein. Alle Dateien zusammen müssen genau einen privaten Schlüssel enthalten. Außerdem muss der öffentliche Schlüssel und (optional) die Schlüsselkette des Signierers enthalten sein. Wenn die PEM-Dateien mehrere private Schlüssel enthalten, wird der erste private Schlüssel verwendet, der zum „CerticatePassword“ passt.

Set

CertificatePassword

String

Angabe des Passwortes für die Zertifikatsdatei.

Set

RemovePdfSignatures

String

Über diese Property wird gesteuert, ob in den Eingabedateien vorhandene Signaturen gelöscht werden oder nicht.

Mögliche Werte:

„0“     Es werden keine Signaturen entfernt.

„1“     Es werden alle Signaturen entfernt.

Es gibt ein unterschiedliches Standard-Verhalten:
Beim Signieren (SignPdf=1), ist standardmäßig RemovePdfSignatures=“1”
Ansonsten (und damit auch beim Verifizieren, CheckPdfSignatures=1) ist standardmäßig RemovePdfSignatures=“0”.

Set

RemovePdfSignaturesKeepAppearance

String

Diese Property wird nur angewendet, wenn entweder RemovePdfSignatures=1 oder SignPdf=1 gesetzt sind.

Mögliche Werte:

„0“     Beim Entfernen der Signaturen wird auch der sichtbare Teil der Signatur entfernt. (default)

„1“     Beim Entfernen der Signaturen wird der sichtbare Teil der Signatur (z.B. ein Bild oder ein Text) beibehalten. Die Signatur selbst wird aber entfernt.

Set

CheckPdfSignatures

String

Über diese Property wird gesteuert, ob in den Eingabedateien vorhandene Signaturen geprüft werden oder nicht.

Mögliche Werte:

„0“     Es werden keine Signaturen geprüft. (default)

„1“       Es werden alle Signaturen geprüft.

Set

TrustedCertificatesDirectory

String

Verzeichnis, das die vertrauenswürdigen Zertifikate (mit den öffentlichen Schlüsseln) für die CIB pdf toolbox enthält.

Zum Überprüfen der Vertrauenswürdigkeit der Signatur-Zertifikate im Pdf Dokument bei CheckPdfSignature=”1” ist dieses Verzeichnis zwingend erforderlich.

Default: ””.

Falls diese Eigenschaft leer ist, kann nicht überprüft werden, ob die Signatur-Zertifikate vertrauenswürdig sind. Aber die Verifizierung der Signatur wird trotzdem nicht abgebrochen!

Folgende Zertifikatsfiles mit öffentlichen Schlüsseln werden unterstützt:

            CER-files („.cer“) in DER- und Base64-Codierung

            CRT-files („.crt“) in DER- und Base64-Codierung

            PEM-files („.pem“)

            P7B-files („.p7b“) in DER-Codierung

            P7C-files („.p7c“) in DER-Codierung

            SPC-files („.spc“) in DER-Codierung
Dateien mit anderen Endungen werden ignoriert.
Die Zertifikatsdateien sollten nur öffentliche Schlüssel enthalten.

Set

OutputFormat

String

Das Prüfverhalten (also nur bei CheckPdfSignature=”1”) der CIB pdf toolbox wird durch die Belegung der Property “OutputFormat” gesteuert. Dafür wurde ein neuer Wert ”FormatAnalyse” eingeführt.

-      OutputFormat=”FormatAnalyse”
Der Prüf-Prozess wird immer komplett durchgeführt und die SignedDocument.xxx-Properties für die Signatur gesetzt. Dadurch kann verfolgt werden, welche Verarbeitungsschritte erfolgreich waren und welche nicht.
 

-      OutputFormat ungleich“FormatAnalyse”
Sobald die Signatur einer Eingabedatei nicht gültig ist, wird die Verarbeitung mit Fehler abgebrochen und damit keine der SignedDocument.xxx-Properties gesetzt.
Nur bei erfolgreichem Durchlauf werden die SignedDocument.xxx-Properties gesetzt.

Set

SignedDocument.DocumentIsUnmodified

String

Für jedes Eingabe-PDF wird der Änderungsstatus ausgegeben.
(Nur relevant für OutputFormat=“FormatAnalyse“ und CheckPdfSignatures=”1”)

Für jede Eingabedatei wird in Form einer Liste, durch „;“ getrennt, je ein Wert ausgegeben.
Z.B.: „1;0;no signature“.

Mögliche Werte:

“”    Nicht belegt durch die CIB pdf toolbox.   (default)

“1”   Das Dokument wurde nach dem Signieren nicht mehr geändert.

“0”   Das Dokument wurde nach dem Signieren geändert.

“not implemented”  Diese Funktionalität wurde noch nicht implementiert.

“no signature”  Das PDF enthält keine Signatur.

Get

SignedDocument.DocumentModificationsAreAllowed

String

Für jedes Eingabe-PDF werden eventuell erfolgte Änderungen klassifiziert.
(Nur relevant für OutputFormat=“FormatAnalyse“ und CheckPdfSignatures=”1”)

Für jede Eingabedatei wird in Form einer Liste, durch „;“ getrennt, je ein Wert ausgegeben.
Z.B.: „1;0;no signature“.

Achtung:
Diese Property ist noch nicht vollständig implementiert, daher kann häufig der Wert „not implemented“ auftreten.

Mögliche Werte:

“”    Nicht belegt durch die CIB pdf toolbox.   (default)

“1”   Die nach dem Signieren erfolgten Änderungen sind erlaubt.

“0”   Die nach dem Signieren erfolgten Änderungen sind nicht erlaubt.

“not implemented”    Diese Funktionalität wurde noch nicht implementiert.

“no signature”   Das PDF enthält keine Signatur.

Get

SignedDocument.DocumentSignatureDateIsValid

String

Für jedes Eingabe-PDF wird das Signaturdatum geprüft.
(Nur relevant für OutputFormat=“FormatAnalyse“ und CheckPdfSignatures=”1”)

Für jede Eingabedatei wird in Form einer Liste, durch „;“ getrennt, je ein Wert ausgegeben.
Z.B.: „1;0;no signature“.

Mögliche Werte:

“”    Nicht belegt durch die CIB pdf toolbox.   (default)

“1”   Das Signaturdatum im PDF passt zu allen Datumsangaben in der Zertifikatskette.

“0”   Das Signaturdatum fehlt, oder es passt nicht zu mindestens einem Datum aus der Zertifikatskette.

“not implemented”    Diese Funktionalität wurde noch nicht implementiert.

“no signature”   Das PDF enthält keine Signatur.

Get

SignedDocument.CertificateChainIsValid

String

Für jedes Eingabe-PDF wird geprüft, ob die Zertifikatskette durchgängig gültig ist.
(Nur relevant für OutputFormat=“FormatAnalyse“ und CheckPdfSignatures=”1”)

Für jede Eingabedatei wird in Form einer Liste, durch „;“ getrennt, je ein Wert ausgegeben.
Z.B.: „1;0;no signature“.

Mögliche Werte:

“ ”   Nicht belegt durch die CIB pdf toolbox.   (default)

“1”   Die Zertifikatskette ist durchgängig gültig.

“0”   Mindestens ein Zertifikat in der Zertifikatskette ist nicht gültig.

“not implemented”    Diese Funktionalität wurde noch nicht implementiert.

“no signature”   Das PDF enthält keine Signatur.

Get

SignedDocument.CertificateIsTrusted

String

Für jedes Eingabe-PDF wird die Vertrauenswürdigkeit der Signaturen überprüft.
(Nur relevant für OutputFormat=“FormatAnalyse“ und CheckPdfSignatures=”1”)

Für jede Eingabedatei wird in Form einer Liste, durch „;“ getrennt, je ein Wert ausgegeben.
Z.B.: „1;0;no signature“.

Mögliche Werte:

“ ”   Nicht belegt durch die CIB pdf toolbox.   (default)

“1”   Ein Zertifikat aus der Zertifikatskette ist gültig. Und die Kette vom Zertifikat der Signatur bis zu diesem gültigen Zertifikat ist durchgängig gültig.

“0”   Es gibt kein gültiges Zertifikat in der Zertifikatskette. Oder die Kette vom Zertifikat der Signatur bis zu dem gültigen Zertifikat ist nicht durchgängig gültig.

“not implemented”    Die Property “TrustedCertificatesDirectory” ist nicht belegt.

“no signature”   Das PDF enthält keine Signatur.

Get