THPDFSignatureRevisionAnalysis 记录
对 PDF 签名之后每个增量修订的策略感知分类
声明
THPDFSignatureRevisionAnalysis= record
SignedRevisionLength: Int64;
TotalRevisionCount: Integer;
SignedRevisionIndex: Integer;
ModificationLevel: THPDFRevisionModificationLevel;
ChangeKinds: THPDFRevisionChangeKinds;
ChangedObjectCount: Integer;
FreedObjectCount: Integer;
ChangedFieldNames: THPDFAnsiStringArray;
Permissions: THPDFSignaturePermissionInfo;
DocMDPCompliant: boolean;
FieldMDPCompliant: boolean;
URCompliant: boolean;
IdentityCompliant: boolean;
TransformCompliant: boolean;
PolicyCompliant: boolean;
Revisions: THPDFSignatureRevisionChangeArray;
Issue: AnsiString;
end;
单元
HPDFDoc
字段
| 字段 | 用途 |
|---|---|
SignedRevisionLength | 应用签名时文件的字节长度 |
TotalRevisionCount | 文件中存在的增量修订数量 |
SignedRevisionIndex | 签名所覆盖修订的从 0 起始索引 |
ModificationLevel | 签名之后达到的最高语义严重级别,从 rmlNone 到 rmlOther |
ChangeKinds | 在后续修订中观察到的具体变更种类集合 |
ChangedObjectCount | 被后续修订重定义的对象数 |
FreedObjectCount | 被后续修订释放的对象数 |
ChangedFieldNames | 值被后续修订改动过的表单字段 |
Permissions | 已签名文档的结构性 DocMDP / FieldMDP / UR 策略检查 |
DocMDPCompliant | 观察到的变更符合已签名的 DocMDP 权限级别时为 True |
FieldMDPCompliant | 字段变更遵守已签名的 FieldMDP 策略时为 True |
URCompliant | 使用权限限制未被违反时为 True |
IdentityCompliant | Identity 变换的期望(例如时间戳)成立时为 True |
TransformCompliant | 后续修订中没有出现未识别变换方法时为 True |
PolicyCompliant | 所有合规检查的汇总判定 |
Revisions | 每个后续修订对应一个 THPDFSignatureRevisionChange 条目,自带对象列表与问题文本 |
Issue | 分析失败的原因,成功时为空 |
使用说明
- 用
AnalyzeLoadedSignatureRevisions填充;文档在磁盘上没有源文件时必须用流重载 - 修改级别的排序是有意为之:更大的序数绝不会更宽松,因此可以把序数与已签名策略直接比较
- 密码学层面的有效性仍由
VerifyLoadedSignature负责;此 record 只对"改了什么"做分类,不判断字节能否通过验证