Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iText PDF批准和认证签名_Itext - Fatal编程技术网

iText PDF批准和认证签名

iText PDF批准和认证签名,itext,Itext,我正在使用iText进行PDF签名 我的PDF表单有3个签名字段。前两个字段用于批准签名,最后一个字段用于认证签名。认证签名始终在批准签名和附加模式设置为true(适用于所有签名)之后签名 我的问题是,在认证签名签名后,认证级别设置为CERTIFIED\u NO\u CHANGES\u ALLOWED\u认证签名生效时,已验证的批准签名将失效 我该如何着手解决这个问题 认证签名始终在批准签名之后签名 这是不允许的 PDF规范表明 认证签名的签名字典应为签名字段的值,并应包含ByteRange条目

我正在使用iText进行PDF签名

我的PDF表单有3个签名字段。前两个字段用于批准签名,最后一个字段用于认证签名。认证签名始终在批准签名和附加模式设置为true(适用于所有签名)之后签名

我的问题是,在认证签名签名后,认证级别设置为CERTIFIED\u NO\u CHANGES\u ALLOWED\u认证签名生效时,已验证的批准签名将失效

我该如何着手解决这个问题

认证签名始终在批准签名之后签名

这是不允许的

PDF规范表明

认证签名的签名字典应为签名字段的值,并应包含ByteRange条目。也可以从权限字典中的DocMDP条目中引用,请参见12.8.4“权限”。签名字典应包含具有DocMDP转换方法的签名参考字典(见表253)

第12.8.1节数字签名/概述

DocMDP转换方法应用于检测与签名字段相关的修改,该签名字段由文档作者(即应用第一个签名的人)签名。文档只能包含一个包含DocMDP转换方法的签名字段;该字段应为文件中的第一个签名字段。它使作者能够指定允许对文件进行哪些更改,以及哪些更改会使作者的签名无效

第12.8.2.2.1节数字签名/转换方法/DocMDP/概述

即,认证签名具有DocMDP转换方法,且具有DocMDP转换方法的签名必须是文档中的第一个签名

但是,如果PDF2功能适合您,则您可能会尝试实现其他目标,请参阅Bruno白皮书第2.5.5节签名后锁定字段和文档:

由于PDF 1.5,在签署文档时可以锁定特定字段。在PDF 2.0中,将有一个新功能,允许您定义已可用于认证签名的文档级权限,但现在也可用于批准签名

有关超出答案范围的详细信息,请阅读该部分

认证签名始终在批准签名之后签名

这是不允许的

PDF规范表明

认证签名的签名字典应为签名字段的值,并应包含ByteRange条目。也可以从权限字典中的DocMDP条目中引用,请参见12.8.4“权限”。签名字典应包含具有DocMDP转换方法的签名参考字典(见表253)

第12.8.1节数字签名/概述

DocMDP转换方法应用于检测与签名字段相关的修改,该签名字段由文档作者(即应用第一个签名的人)签名。文档只能包含一个包含DocMDP转换方法的签名字段;该字段应为文件中的第一个签名字段。它使作者能够指定允许对文件进行哪些更改,以及哪些更改会使作者的签名无效

第12.8.2.2.1节数字签名/转换方法/DocMDP/概述

即,认证签名具有DocMDP转换方法,且具有DocMDP转换方法的签名必须是文档中的第一个签名

但是,如果PDF2功能适合您,则您可能会尝试实现其他目标,请参阅Bruno白皮书第2.5.5节签名后锁定字段和文档:

由于PDF 1.5,在签署文档时可以锁定特定字段。在PDF 2.0中,将有一个新功能,允许您定义已可用于认证签名的文档级权限,但现在也可用于批准签名


有关超出答案范围的详细信息,请阅读该部分…

您能分享您的签名码吗?我的第一个想法是你没有在附加模式下使用PdfStamper,你能告诉我们你是如何构造PdfStamper的吗?你能分享你的签名代码吗?我的第一个想法是,您没有在附加模式下使用PdfStamper,您能告诉我们您是如何构造PdfStamper的吗?我已经在邮件列表中回答了这个问题,尽管没有提及ISO-32000-1中的具体部分。遗憾的是,人们不接受那些告诉他们他们正在尝试做一些他们不应该做的事情的答案。我已经在邮件列表上回答了这个问题,尽管没有r 参见ISO-32000-1中的特定零件。遗憾的是,人们不接受那些告诉他们他们正试图做一些他们不应该做的事情的答案。