GetSignatureModificationVerdict

數位簽章

描述

說明簽章之後附加的更新是否屬於文件認證等級所允許的更新

語法

Delphi

Function TPDFlib.GetSignatureModificationVerdict(Const InputFile, Password, FieldName: WideString): Integer;

參數

InputFileThe signed document.
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