itextを使用してpdfファイルに署名するを複数回できるようになりたいと思っています。しかし、私は秘密鍵を持っていません。クライアントが署名するハッシュを生成し、再署名した後、signDeferred()
を呼び出します。複数の空のコンテナを作成し、すべての空のコンテナでハッシュを生成し、表示される署名を追加することは可能ですか?
複数の空のコンテナを追加してハッシュを生成し、クライアントが署名してハッシュを返しました。追加しようとしましたが、最後のフィールドではないというエラーが発生しました。 signDeferred
は最後のフィールドでのみ呼び出すことができます。しかし、秘密キーを持っていないため、signDetached
はオプションではないため、それを修正する方法がわかりません。
いいえ、少なくとも相互運用可能な PDF 署名ではこれは不可能です。
その理由は、PDF には並列署名 (または副署名) という実際の概念が指定されておらず、署名が次々に追加されるシリアル署名の概念のみがあり、新しい署名ごとに以前のすべての署名も上書きされるためです。
(詳細については、この回答を参照してください。)
厳密に言えば、PDF 仕様では、署名コンテナ自体に埋め込まれたプレースホルダーを除き、すべてのリビジョン全体をカバーするための 署名が 必要ではなく、単に 推奨しているだけです。したがって、理論的には、埋め込まれたすべての署名値を除く PDF 全体をそれぞれがカバーする複数の署名を持つ PDF を作成することが可能です。
しかし、実際には、PDF 署名検証ツールはそのような構造を拒否します。さらに、より新しい署名プロファイル (特に PAdES ベースライン プロファイル)では、署名付きコンテナー プレースホルダーを除くすべてのリビジョン全体をカバーするために 署名が必要です。
以上が契約の複数の延長の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。