Heim > Java > Mehrere Vertragsverlängerungen

Mehrere Vertragsverlängerungen

WBOY
Freigeben: 2024-02-12 17:15:05
nach vorne
811 Leute haben es durchsucht

Frageninhalt

Ich möchte in der Lage sein, PDF-Dateien mehrmals zu signieren mit itext. Aber ich habe den privaten Schlüssel nicht. Ich erstelle einen Hash, den der Client signieren muss, und rufe nach dem erneuten Signieren signDeferred() auf. Ist es möglich, mehrere leere Container zu erstellen, einen Hash mit allen leeren Containern zu generieren und dann Signaturen hinzuzufügen, sobald diese erscheinen?

Ich habe versucht, mehr als einen leeren Container hinzuzufügen, den Hash generiert, vom Client signiert und zurückgegeben. Ich habe versucht, mehr als einen leeren Container hinzuzufügen, habe aber die Fehlermeldung erhalten, dass es nicht das letzte Feld ist. Sie können signDeferred 。但我不知道如何修复它,因为 signDetached nur im letzten Feld aufrufen, was keine Option ist, da ich nicht über den privaten Schlüssel verfüge.

Workaround

Nein, das ist nicht möglich, zumindest nicht für interoperable PDF-Signaturen.

Der Grund dafür ist, dass es für PDF kein wirkliches Konzept paralleler Signaturen (oder Gegensignaturen) gibt, sondern nur das Konzept serieller Signaturen, eine Signatur nach der anderen, wobei jede neue Signatur auch alle vorherigen Signaturen überschreibt:

(Siehe diese Antwort für weitere Details.)

Genau genommen verlangt die PDF-Spezifikation nicht Signaturen, um alle gesamten Revisionen abzudecken, mit Ausnahme der im Signaturcontainer selbst eingebetteten Platzhalter, sie empfiehlt diese lediglich. Daher ist es theoretisch möglich, ein PDF mit mehreren Signaturen zu erstellen, die jeweils das gesamte PDF mit Ausnahme aller eingebetteten Signaturwerte abdecken.

Aber in der Praxis lehnen PDF-Signaturvalidatoren solche Konstruktionen ab. Darüber hinaus erfordern modernere Signaturprofile (insbesondere das PAdES-Basisprofil)

Signaturen, um alle gesamten Revisionen mit Ausnahme signierter Container-Platzhalter abzudecken.

Das obige ist der detaillierte Inhalt vonMehrere Vertragsverlängerungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage