3
A
回答
2
将私钥数字证书导出到pfx文件。
利用iText与BouncyCastle的:
Document document = new Document();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PdfWriter.getInstance(document, baos);
document.open();
document.add(new Paragraph("Hello World!"));
document.close();
PdfReader reader = new PdfReader(baos.toByteArray());
OutputStream os = new FileOutputStream("c:\\temp\\sign\\test.pdf");
PdfStamper stamper = PdfStamper.createSignature(reader, os, '\0');
// Creating the appearance
PdfSignatureAppearance appearance = stamper.getSignatureAppearance();
appearance.setReason("REASON");
appearance.setLocation("LOCATION");
appearance.setVisibleSignature(new Rectangle(36, 748, 144, 780), 1, "sig");
Security.addProvider(new BouncyCastleProvider());
FileInputStream fis = new FileInputStream("c:\\ssl\\test.pfx");
String password = "myPassword";
KeyStore ks = KeyStore.getInstance("pkcs12");
ks.load(fis, password.toCharArray());
String alias = ks.aliases().nextElement();
PrivateKey pk = (PrivateKey) ks.getKey(alias, password.toCharArray());
X509Certificate cert = (X509Certificate) ks.getCertificate(alias);
TSAClient tsc = new TSAClientBouncyCastle("http://timestampserverURL/");
ExternalDigest digest = new BouncyCastleDigest();
ExternalSignature signature = new PrivateKeySignature(pk, "SHA-1", "BC");
MakeSignature.signDetached(appearance, digest, signature, new Certificate[] { cert }, null, null, tsc, 0,
CryptoStandard.CMS);
Maven依赖:
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.49</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcmail-jdk15on</artifactId>
<version>1.49</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bctsp-jdk15on</artifactId>
<version>1.46</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.4.2</version>
</dependency>
0
0
DigiStamp提供了SecureTime API工具包一个PDF签名和时间戳功能的联合创始人,你会得到一个链接时,你create a free test account(并访问测试服务器)。该工具包使用BouncyCastle和旧版免费版iText。
Qoppa has a newer toolkit具有一系列PDF功能,但收取使用费用。
声明:我在DigiStamp工作
相关问题
- 1. 在现有的PDF签名上添加签名时间戳
- 2. CMS签名 - 有什么区别时间戳和计数签名
- 3. 如何解码来自数字PKCS7签名的时间戳?
- 4. 签名合并两个数字签名的pdf后无效?
- 5. 将时间戳记添加到pdf
- 6. 在java中添加数字签名到USB设备的pdf
- 7. 密码:验证签名时间戳
- 8. 通过文件上的时间戳合并pdf文件
- 9. Java时间戳php时间戳
- 10. 追加PDF的签名PDF
- 11. 如何使用itext显示PDF签名外观中的时间戳状态
- 12. 在java中的时间戳字符串到时间戳
- 13. 如何使用时间戳安全地签名数据?
- 14. 加密PHP中的时间戳并使用Java解密
- 15. 在PDF上添加签名图像时未使用iTextSharp对其进行数字签名
- 16. 使用PHP数字签名的PDF
- 17. 如何将时间戳签名添加到System.IO.Packaging.Package?
- 18. 如何添加时间戳签名与zeep?
- 19. 使用iText离线PDF时间戳
- 20. SOAP标头上的签名和时间戳顺序
- 21. 使用java api和epass2003令牌的pdf数字签名
- 22. 如何使用PEM文件对Java进行PDF数字签名?
- 23. 无法使用itext和java数字签名pdf
- 24. 在时间戳服务器上使用时间戳和身份验证签名jar
- 25. 使用Java和iText对PDF进行时间戳的问题
- 26. 如何将时间戳证书添加到Linux上的签名PE文件?
- 27. 将时间戳添加到文件名
- 28. 修剪文本并添加时间戳?
- 29. 时间戳android:标签
- 30. 更新标签时间戳数组