ApplyPAdESLongTermValidation

デジタル署名

説明

すでに署名済みの PDF を 1 回の呼び出しで PAdES-B-LT に昇格させ、結果をファイルに書き込む

構文

Delphi

Function TPDFlib.ApplyPAdESLongTermValidation(Const InputFile, Password, OutputFile, FieldName: WideString; Options: Integer): Integer;

パラメータ

InputFile署名済み PDF
Password開くためのパスワード。不要な場合は空文字列
OutputFile書き込む拡張済み PDF
FieldName処理する署名フィールド。空文字列の場合はすべての署名を 1 つのリビジョンとして処理します
OptionsPADES_LTV_* ビットマスク。0 は PADES_LTV_DEFAULT を選択します

オプション

PADES_LTV_WRITE_VRI (1)署名ごとに VRI エントリを書き込みます
PADES_LTV_FETCH_OCSP (2)各リンクの OCSP レスポンダーに問い合わせます
PADES_LTV_FETCH_CRL (4)OCSP が何も返さなかった場合は CRL にフォールバックします
PADES_LTV_FOLLOW_AIA (8)発行者アドレスをたどってパスを完成させます
PADES_LTV_SKIP_EXISTING (16)バイトがすでにステージングされている素材は再追加しません
PADES_LTV_SKIP_ROOT_REVOCATION (32)自己発行ルートの状態を照会しません
PADES_LTV_DEFAULT (63)上記すべて。Options が 0 の場合に選択されます

戻り値

1昇格に成功しました
2入力ファイルを読み取れませんでした
3入力 PDF を解析できませんでした
10出力を書き込めなかった
11文書セキュリティストアを追加できなかった
20該当する署名フィールドがありません
21処理済みの署名に読み取り可能な証明書は含まれていませんでした

1 以外の値については、GetPAdESLTVError に理由が格納されています

備考

署名者の証明書パスは署名独自の CMS から構築され、PADES_LTV_FOLLOW_AIA が設定されている場合、残りの発行者は証明書に記載された caIssuers アドレスをたどります。各リンクの失効情報は OCSP、次に CRL の順で収集され、証明書とともに 1 回の増分更新でドキュメントセキュリティストアに書き込まれます

すでにステージングされた内容と同一の素材は 1 回だけ書き込まれ、それを必要とするすべての署名から参照されます。そのため、証明書パス間または署名間で共有される認証局が重複して現れることはありません。VRI エントリは参照先の証明書がある場合にのみ書き込まれるため、空のエントリは生成されません

到達不能な応答者によって呼び出しが失敗することはない。昇格処理は取得できた情報で続行し、GetPAdESLTVCertificateCount、GetPAdESLTVCRLCount、GetPAdESLTVOCSPCount、GetPAdESLTVError が取得内容と取得できなかった理由を報告する

例

PDF.SetTimeStampOptions(2, 1, 1, 15000, '');
if PDF.ApplyPAdESLongTermValidation('signed.pdf', '', 'signed-lt.pdf', '', 0)<> 1 then
  ShowMessage(PDF.GetPAdESLTVError);

関連項目

ApplyPAdESLongTermValidationToStream、GetSignatureCertificateChainLength、AddPAdESDSSOCSPFromCertificates