THotPDF.SaveIncrementalUpdateAuthenticated メソッド

署名付きリビジョンポリシーを認証し、禁止された変更を拒否した上で、増分アップデートをアトミックに公開します

宣言

function SaveIncrementalUpdateAuthenticated(
  const TargetFile: TFileName;
  const Options: THPDFAuthenticatedIncrementalUpdateOptions;
  out Info: THPDFAuthenticatedIncrementalUpdateInfo
): Boolean; overload;

function SaveIncrementalUpdateAuthenticated(
  const TargetFile: TFileName;
  out Info: THPDFAuthenticatedIncrementalUpdateInfo
): Boolean; overload;

ワークフロー

  1. 保留中の増分リビジョンを、ターゲットディレクトリ内の一意な候補に書き込みます
  2. 署名バイト範囲によって保護されたそのリビジョンから、すべてのポリシーを読み込みます
  3. ポリシーを持つ各 CMS 署名を認証し、必要に応じて証明書パスを検証します
  4. それ以降の各リビジョンを分類し、DocMDP、FieldMDP、UR / UR3、Identity、未知の transform に対する判断を強制します
  5. 受理された候補を write-through のアトミック置換で公開します

拒否された場合、候補は削除され、既存のターゲットはバイトレベルで一切変更されません

オプション

メンバー目的
AuthenticationipaCryptographic は有効な CMS バイト範囲署名を要求し、ipaTrustedCertificate はさらに、証明書パスと失効検証による cvsTrusted を要求します
RequireSignaturePolicyTrue(デフォルト)の場合、認証済み transform ポリシーを持たないドキュメントを拒否します
CertificateValidationtrusted-certificate モードが使うトラストアンカー、中間証明書、オフライン失効エビデンス、検証時刻、目的、アルゴリズムポリシー

結果の詳細

THPDFAuthenticatedIncrementalUpdateInfo は、最終ステータス、失敗した署名インデックス、署名と証明書のステータス、署名総数、認証済みポリシー数、診断 issue を報告します

重要なステータスには、aiusAccepted、aiusNoSignaturePolicy、aiusSignatureInvalid、aiusCertificateUntrusted、aiusPolicyMalformed、aiusPolicyViolation、aiusCommitFailed があります

使用方法

var
  Info: THPDFAuthenticatedIncrementalUpdateInfo;
begin
  PDF.BeginIncrementalUpdate('certified.pdf');
  PDF.SetLoadedFormFieldValueByName('CustomerName', 'Ada');
  if not PDF.SaveIncrementalUpdateAuthenticated('updated.pdf', Info) then
    raise Exception.Create(String(Info.Issue));
end;

セキュリティ境界

関連 API