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