我正在编写一个 Java Web 服务,该服务使用来自网络中某些客户端的 iText 对 PDF 文档进行签名。文档签名正确,可以使用外部工具进行验证。但是,由于一些法律限制,为了将此文档存储在官方文档存储库中,我必须提供来自签名的哈希/摘要消息。
我几乎尝试了任何方法来获得该哈希值,但我能得到的最接近的是获取整个签名(CERT+HASH/DIGEST+TIMESTAMP)作为带有此代码片段的字符串(请原谅字符串和 [1],因为我我只是在测试如何去做):
PdfReader reader = new PdfReader(path);
File temp = TempFileManager.createTempFile("aasd2sd", "asdasda222cff");
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(temp));
stamper.setRotateContents(false);
PdfString firma = (PdfString) stamper.getAcroFields().getSignatureDictionary("Signature1").get((PdfName)stamper.getAcroFields().getSignatureDictionary("Signature1").getKeys().toArray()[1]);
Run Code Online (Sandbox Code Playgroud)
据我所知,我得到了一个 DER 编码的 PKCS7 签名。但是,我不知道如何解码/阅读这些信息以便快速了解。
任何的想法?
谢谢,克里斯。