【问题标题】:iText set pdf permission witch signed certificationiText 设置 pdf 权限女巫签名认证
【发布时间】:2020-07-24 01:30:23
【问题描述】:

美好的一天。 我需要使用证书签署文档并在 PDF 中配置安全设置(不允许)。

帮助我了解如何更改值?

谢谢

这是一个示例代码:

...  
PdfStamper stamper = PdfStamper.createSignature(reader, fout, '\0', new File(System.getProperty("java.io.tmpdir")), true);
PdfSignatureAppearance sigApp = stamper.getSignatureAppearance();
BaseFont bf = BaseFont.createFont("/resources/SDD.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
Font fnt = new Font(bf);
sigApp.setLayer2Font(fnt);
sigApp.setReason(reason);
sigApp.setLocation(location);
ExternalDigest digest = new BouncyCastleDigest();
PrivateKey key = provider.getPrivateKey(in.getCertificate());
ExternalSignature signature = new PrivateKeySignature(key, in.getAlgorithm(), provider.getProvider());
MakeSignature.signDetached(sigApp, digest, signature, certs, null, null, tsc, 0, MakeSignature.CryptoStandard.CADES);

此代码不适合我:

stamper.setEncryption("" .getBytes(), "" .getBytes(), PdfWriter.ALLOW_PRINTING | PdfWriter.ALLOW_COPY | PdfWriter.SIGNATURE_APPEND_ONLY, PdfWriter.ENCRYPTION_AES_128);

我发现只有这样一个选项 setEncryption(***)。但是这个函数会创建一个文件(PDF)。当我使用证书签名时,还会创建一个文件 (PDF),但没有安全参数。

【问题讨论】:

  • “在 PDF 中配置安全设置(不允许)” - 哪些设置应设置为“不允许”? “此代码不适合我” - 你的意思是它不适合你吗?它在哪个方面失败了?
  • 我发现只有这样一个选项 setEncryption(***)。但是这个函数会创建一个文件(PDF)。当我使用证书签名时,还会创建一个文件 (PDF),但没有安全参数。我需要从允许更改为不允许:评论:不允许,表单字段归档:不允许

标签: security pdf itext document restriction


【解决方案1】:

如果您的签名是相关文档的第一个签名,您可以简单地将认证级别设置为尽可能严格:

PdfSignatureAppearance sigApp = stamper.getSignatureAppearance();
sigApp.setCertificationLevel(PdfSignatureAppearance.CERTIFIED_NO_CHANGES_ALLOWED);

这应该禁止对表单字段进行任何评论或归档。

【讨论】:

  • 如果我将签署文件的第一个签名,将应用安全限制。如果我将应用第二个签名或任何其他证书,它们将无效,而且我将无法检查文件的第一个签名。 System.out.println(sigApp .getCertificationLevel()); //每次显示0
  • “如果我将应用第二个签名或任何其他证明,它们将无效” - 你说你不想填写表单字段。签名是填写签名表单字段。因此,您希望禁止进一步的签名。因此,如果您仍然以某种方式应用它们,它们一定是无效的。
  • 我不明白为什么不允许只选择属性:Commenting,Filling of form fields。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-25
  • 1970-01-01
相关资源
最近更新 更多