THPDFHeadlessDocument.SignToFile
function SignToFile(FieldIndex: Integer; const FileName: string;
const CertificatePEM, PrivateKeyPEM: SysUtils.TBytes;
const Options: THPDFHeadlessCMSOptions;
ReservedCMSBytes: Integer = 16384): THPDFHeadlessCMSResult;
既存の未署名 AcroForm 署名フィールドに署名し、ネイティブ Linux または Windows 上で独立した出力をアトミックに公開します
FieldIndex は FindFormField か GetFormField が返す 0 始まりのフォームフィールドインデックスです。VerifySignature が受け付ける署名済みシグネチャインデックスとは異なる場合があります
証明書と対応する秘密鍵は PEM バイトでなければなりません。暗号化された秘密鍵はプロンプトなしで拒否され、OpenSSL 3 は HPDFSignHeadlessCMS と同じプロバイダーを通じて読み込まれます
ReservedCMSBytes は、ハッシュ計算の前に固定幅の 16 進 Contents 領域を確保します。正の値で、ドキュメントオブジェクト予算に収まり、生成される CMS DER 全体を格納できなければなりません
デフォルトのプロファイルは adbe.pkcs7.detached です。RequireCAdES=true は ETSI.CAdES.detached を書き込み、signing-certificate 属性を含めます。ドキュメント検証はその ESS バインディングを自動認証し、明示的な CA トラストは別途評価されます
ライターはソースバイトをコピーし、共有 xref ライターを通じて置換フィールド値と新しい署名オブジェクトを追記し、固定幅の ByteRange スロットにパッチを当て、実際のステージングファイル範囲に署名した上で、フラッシュとアトミック公開の前に結果の CMS を検証します
古い承認署名はそれぞれ、元のバイト列を正確に保持します。その検証結果は、有効な過去リビジョンと、それ以降の未署名バイト数を報告します
ソースは読み取り専用で開かれ、読み込み済みフィールドグラフは署名によって変更されず、ソースパスのエイリアスや物理ファイルのエイリアスは拒否されます
失敗時には既存の宛先が保持され、未公開のステージングファイルが削除されます。キャンセル、予約不足、証明書/鍵の失敗、暗号エラー、オブジェクトまたはファイル予算の枯渇も含まれます
読み取り専用フィールド、署名済みフィールド値、許可されない証明済みドキュメントポリシー、拒否された AES フォーム入力権限は拒否されます。オーナー認証は制限付きソースを許可できますが、出力は元のユーザーパスワードとセキュリティポリシーを保持します
CertificationPermission の 1 から 3 は、カタログの Perms.DocMDP と SigRef 変換付きの最初の証明署名を生成します。0 は承認署名を生成します。DocMDP P2 / P3 の下にある既存フィールドでの、許可された後続署名も含まれます
ドキュメントと CMS オプションの両方がキャンセルトークンを指定する場合、同じトークンでなければなりません。そうでなければ、CMS プロバイダーはドキュメントのトークンを継承します
返される THPDFHeadlessCMSResult は、完全性と明示的に評価された CA トラストを分けます。タイムスタンプ、失効、長期検証の結論は何も含意しません
新しい可視署名ウィジェットの準備には AddSignatureField と SetSignatureFieldAppearance を、OpenSSL 3 を通じた PKCS12 アイデンティティの読み込みには SignPFXToFile を使ってください
アプリケーション署名アイデンティティなしでスタンドアロンの RFC3161 ドキュメントタイムスタンプを追加するには、TimestampToFile を使ってください