GetSignatureModificationVerdict

数字签名

描述

说明签名后追加的更新是否为文档's 认证级别允许的更新

语法

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