相关疑难解决方法(0)

如何使用PDFBox对动态创建的PDF文档进行数字签名?

对不起!我在java中很穷.
请在我错的地方纠正我,改善我穷人的地方!

我正在尝试使用PDFBox使用以下程序对动态创建的pdf进行数字签名:

本程序中的任务:
(i)创建模板PDF
(ii)更新ByteRange,xref,startxref
(iii)构建用于签名创建的原始文档
(iv)创建分离的包络数字签名
(v)通过连接原始Doc部分构建数字签名的PDF文档 - I,独立签名和原始PDF部分 - II

观察:
(i)pdfFileOutputStream.write(documentOutputStream.toByteArray()); 使用Visible Signature创建模板PDF文档.

(ii)它创建一些PDF签名文档,但有错误(a)无效令牌和(b)几个解析器错误
(现在在MKL的能力指导下纠正!)

请建议我以下内容:

(i)如何在layer2上的Visible Signature中添加签名文本.

提前致谢!

    package digitalsignature;

    import java.awt.geom.AffineTransform;
    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.security.Signature;
    import java.util.ArrayList;
    import org.bouncycastle.cert.X509CertificateHolder;
    import org.bouncycastle.cert.jcajce.JcaCertStore;
    import org.bouncycastle.cms.CMSProcessableByteArray;
    import org.bouncycastle.cms.CMSTypedData;
    import org.bouncycastle.cms.SignerInfoGenerator;
    import org.bouncycastle.cms.SignerInfoGeneratorBuilder;
    import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder;
    import org.bouncycastle.operator.jcajce.JcaDigestCalculatorProviderBuilder;
    import org.bouncycastle.util.Store;

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.security.KeyStore;
    import java.security.PrivateKey;
    import java.security.cert.CertStore;
    import java.security.cert.Certificate;
    import java.security.cert.CollectionCertStoreParameters;
    import java.security.cert.X509Certificate;
    import java.text.DecimalFormat;
    import …
Run Code Online (Sandbox Code Playgroud)

java pdf bouncycastle digital-signature pdfbox

3
推荐指数
1
解决办法
1万
查看次数

JAVA - 如何使用原始PDF和单独的PKCS#7签名数据创建签名PDF

我有一个原始的PDF文档和单独的文件作为PKCS#7签名数据.我想将这些组合起来创建签名的PDF文档,以便它可以在Adobe读者中显示它已签名并签署了该文档.

Java中是否有可用于以编程方式创建此类签名PDF文档的库?我需要加载该PDF并以某种方式添加签名,然后将其另存为新的PDF文档.

示例代码将不胜感激.

编辑:

生成的代码应将PDF文档作为输入参数并执行以下操作:

  1. 准备要签名的数据
  2. 提供要签署到生成PKCS#7签名数据文件的外部签名机制的数据
  3. 提供PKCS#7签名数据文件
  4. 将签名数据添加到PDF文档
  5. 保存PDF文档

据我所知,第一步很重要,因为没有它,PKCS#7签名数据将是错误的.

java pdf digital-signature pkcs#7

2
推荐指数
1
解决办法
3022
查看次数

标签 统计

digital-signature ×2

java ×2

pdf ×2

bouncycastle ×1

pdfbox ×1

pkcs#7 ×1