GetSignatureModificationVerdict
デジタル署名
説明
署名後に追加された更新が、文書'の認証レベルで許可されたものかを示します
構文
Delphi
Function TPDFlib.GetSignatureModificationVerdict(Const InputFile, Password, FieldName: WideString): Integer;パラメータ
| InputFile | 署名済みドキュメント |
|---|---|
| Password | 開くためのパスワード。不要な場合は空文字列 |
| FieldName | 判定する署名フィールド |
戻り値
| 1 | 署名の後には何も追記されませんでした |
|---|---|
| 2 | 認証レベルで許可される変更だけが追記されました |
| 3 | そのレベルで許可されない内容が追記された |
| 4 | 答えを判定できませんでした |
| 5 | 署名がリビジョン境界で終わっていないため、署名が対象と主張する範囲内にバイトが存在します |
| 0 | ファイルまたはフィールドを読み取れませんでした |
備考
ISO 32000-1 §12.8.2.2 は認証署名に権限レベルを定めています。1 は以後の変更を一切許可せず、2 はフォーム入力と署名も許可し、3 はさらに注釈も許可します。検証資料と文書タイムスタンプはすべてのレベルで許可されるため、長期検証への昇格が改ざんと判断されることはありません
結果 4 は承認を意味しません 認証'自体の構造を検証できない場合、フィールドロックが存在し後続更新がどのフィールドに影響したか追跡できない場合、後続リビジョンに読み取れないものがある場合、または署名範囲後のバイトが識別可能なリビジョンを形成しない場合に返されます。これらの場合は重要な事実が不明であり、許可済みと扱うのは誤りです
GetSignatureModificationDetail は回答の根拠となるリビジョンと変更種別を示し、GetSignatureEffectiveMDPLevel は適用されたレベルを報告します
例
case PDF.GetSignatureModificationVerdict('signed.pdf', '', 'Signature1') of
1, 2: ShowMessage('the signature still covers the document');
3: ShowMessage('not allowed: '+ PDF.GetSignatureModificationDetail);
else
ShowMessage('undetermined: '+ PDF.GetSignatureModificationDetail);
end;関連項目
GetSignatureEffectiveMDPLevel, GetSignatureModificationDetail, GetSignatureRevisionIndex, GetDocumentRevisionKind