GetSignatureModificationVerdict
數位簽章
描述
說明簽章之後附加的更新是否屬於文件認證等級所允許的更新
語法
Delphi
Function TPDFlib.GetSignatureModificationVerdict(Const InputFile, Password, FieldName: WideString): Integer;參數
| InputFile | The 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