Digitale Signaturen
Digitale Signaturen in PDF
PDF-Digitale Signaturen verwenden kryptografische Zertifikate, um die Authentizität von Dokumenten zu bestätigen und Manipulationen zu erkennen. Signaturen werden in Signaturfeldern im Dokument eingebettet.
PdfFileSignature
PdfFileSignature bietet Operationen zum Signieren und Verifizieren von Signaturfeldern in einem bestehenden PDF-Dokument:
try (PdfFileSignature sig = new PdfFileSignature("input.pdf")) {
sig.sign(1, certificate, privateKey, chain, null, new DocMDPSignature(doc, DocMDPAccessPermissions.FillingInForms));
sig.save("signed.pdf");
}Die Verifizierung prüft, ob die Signatur den erwarteten Byte-Bereich abdeckt und ob das Signaturzertifikat gültig ist.
PdfSigner
PdfSigner bietet den hochrangigen Signatur-Workflow, der die Erstellung von Signaturfeldern, die Erzeugung eines PKCS#7-Containers und die Berechnung des Byte-Bereichs kombiniert.
PKCS7SignedData
PKCS7SignedData.createDetached() erstellt einen abgetrennten CMS-Signaturcontainer zum Einbetten in das PDF-Signaturverzeichnis. Siehe PKCS#7 für Details.
Signaturvalidierung
Nach dem Signieren können Signaturen über PdfFileSignature.getSignNames() aufgelistet und durch Überprüfung des Signatur-Gültigkeitsstatus verifiziert werden.