已加载注释的导入策略
现代 Windows THotPDF 门面在通过 ImportLoadedAnnotationsFromXFDF 或携带注释的 ImportLoadedInterchangeFromFDF 事务提交注释导入之前,会先检查经认证的原始修订版和当前已编辑的图
普通认证加载
带有效口令的普通 LoadFromFile 或 LoadFromStream 调用会保留一份私有凭据上下文,绑定到文档经认证的加密字典和永久标识符
后续注释导入可以准备当前的脏图,无需再次输入口令,也不会通过公开 API 暴露 raw 密钥
上下文在新的加载时被替换,文档释放时被清除;AES-256 R5/R6 权限按经认证的 Perms 块检查,而不是按舍入后的公开数值
标准 handler 的用户身份认证要求具备注释权限才能做真实的注释变更;owner 认证保留其常规权限豁免
对没有通用修改权限的用户,候选图可以包含获准的可写 text、choice、button 值和注释变更,但无关的 catalog、页、内容和资源变更会被拒绝
零注释导入可以保持为 no-op,不要求注释权限
签名修订版
既有签名必须保持可达,并保留其签名值和 CMS 字节
签名完整性和 CAdES 签名证书绑定在签名注释修订版被接受之前完成校验
DocMDP P1 和 P2 阻止新增注释;P3 仅在完整当前修订版同时满足原始认证和 FieldMDP 锁时允许
修改未上锁的可写字段可以保持获准,而修改上锁的值、默认外观或已签名值会被拒绝
完整性检查不会在文档认证允许操作的情况下,静默强加一套新的业务信任根策略
保留与回滚
已签名或已加密的调用方自有输入流,会在其生命周期或内容可能与已加载文档分叉之前,复制进独立拥有的设界存储
加载之后释放、替换或追加调用方的流,不会让注释事务换用另一个经认证的源
在适用策略允许时,候选保留原始的已签名、已加密字节前缀,并保留既有的脏字段值
legacy RC4 序列化在加密前分离共享字符串存储,保留编写的字段值和指向该值的其他别名
拒绝、预算耗尽或协作取消会回滚导入自身的图变更,保留调用方更早的编辑和既有输出文件;后续操作可在同一文档上重试
精确的 PDF 十进制 token 在克隆和恢复数值对象后仍存活,因此权限比较能区分相邻的小数,即使公开 Single 值相等
等价的十进制写法按精确数值比较;默认外观字符串比较解码后的 PDF 字符串字节,不重新解释或重排内容操作符
边界与范围
当前文档的解码预算和操作 cancellation token 同样适用于认证候选准备和图比较
比较会对图深度、访问过的对象对和工作量设界;加密流数据在适用的认证解密步骤之后比较
这条策略路径位于现代 Windows 门面中,并不声称普通 THotPDF 类构建在原生 Linux 之上
原生 headless 注释事务有自己的既有认证权限检查
这一阶段不增加公钥 security handler 凭据复用、任意新的 AcroForm 字体资源、action 执行,也不引入单独的仅字段 FDF 权限模型