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 つのリビジョンとして処理します |
| Options | PADES_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