Ich baue eine App, mit der Benutzer ein PDF digital signieren können. Ich benutze das PlugPDF SDK. Es hat keine integrierte Unterstützung für das Erzeugen von Bytebereichs-Digest, so dass ich es selbst tun muss. PlugPDF erzeugt die PDF-Inhalte aus dem ich Hash in Terminal unterzeichnet generieren:Computing Byte Range Digest
openssl dgst -hex -sha256 -sign privateKey.pem -out encrypted.out invoice.content
Von diesem Hash ich das PKCS # 7-Objekt erzeugen:
openssl cms -in encrypted.out -sign -signer signer.pem -outform der -out cert.p7b
Dann habe ich es in das PDF injizieren mit der plugPDF SDK . Wenn ich es in Adobe Acrobat öffne, ist das PDF signiert, aber die Signatur ist ungültig. Dort steht: "Das Dokument wurde geändert oder beschädigt, seit die Signatur angewendet wurde."
Ich nehme an, das Problem ist ein falscher Hash-Wert, aber ich habe keine Ahnung, wie ich es sonst erzeugen könnte.
Hier ist ein Beispiel Tutorial: https://plugpdf.com/how-to-sign-pdf-document-with-pki-certificate-on-ios/
PlugPDF SDK generiert die Datei invoice.content. Sie sagen, es ist die Quelle für die Berechnung der Digest. Sollte ich annehmen, dass der von mir verwendete Signiervorgang korrekt ist und das Problem ist, dass invoice.content nicht korrekt generiert wird? –