栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

签名字段中的“锁定”字典是签名后签名损坏的原因

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

签名字段中的“锁定”字典是签名后签名损坏的原因

问题在于PDFBox签名没有考虑 Lock 字典。

根据ISO 32000-1(以及类似的ISO 32000-2):

12.8.2.4 FieldMDP

FieldMDP 应使用变换的方法检测的变化形式的字段列表的值。表256中列出了其转换参数字典中的条目。

[…]

*作者还可以指定在特定收件人签名文档后,对特定表单字段的任何修改都将使该收件人签名无效。对于每个指定的接收者,应该有一个单独的签名字段,每个签名接收者都有一个相关的签名字段锁定字典(参见表233),用于指定应为该用户锁定的表单字段。

  • 当接收者在字段上签名时,应创建签名,签名参考和转换参数字典。应当从签名字段锁定字典中的相应字段复制变换参数字典中的“ 动作” 和“
    字段” 条目。

因此,签名 字典的预期处理包括将匹配的 FieldMDP 转换数据添加到签名字段值。默认情况下,PDFBox签名不这样做。

您可以在签名期间手动执行以下操作:

PDSignatureField signatureField = FIND_YOUR_SIGNATURE_FIELD_TO_SIGN;PDSignature signature = new PDSignature();signatureField.setValue(signature);COSbase lock = signatureField.getCOSObject().getDictionaryObject(COSName.getPDFName("Lock"));if (lock instanceof COSDictionary){    COSDictionary lockDict = (COSDictionary) lock;    COSDictionary transformParams = new COSDictionary(lockDict);    transformParams.setItem(COSName.TYPE, COSName.getPDFName("TransformParams"));    transformParams.setItem(COSName.V, COSName.getPDFName("1.2"));    transformParams.setDirect(true);    COSDictionary sigRef = new COSDictionary();    sigRef.setItem(COSName.TYPE, COSName.getPDFName("SigRef"));    sigRef.setItem(COSName.getPDFName("TransformParams"), transformParams);    sigRef.setItem(COSName.getPDFName("TransformMethod"), COSName.getPDFName("FieldMDP"));    sigRef.setItem(COSName.getPDFName("Data"), document.getdocumentCatalog());    sigRef.setDirect(true);    COSArray referenceArray = new COSArray();    referenceArray.add(sigRef);    signature.getCOSObject().setItem(COSName.getPDFName("Reference"), referenceArray);}signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE);signature.setSubFilter(PDSignature.SUBFILTER_ADBE_PKCS7_DETACHED);signature.setName("blablabla");signature.setLocation("blablabla");signature.setReason("blablabla");signature.setSignDate(Calendar.getInstance());document.addSignature(signature [, ...]);

( CreateSignature辅助方法

signExistingFieldWithLock


关于注释中讨论的签名 锁* 字典中的 P 条目:此条目已在Adobe补充ISO 32000,扩展级别3中引入。 *



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/451687.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号