php pdf 加密 签名 时间戳,在现有PDF签名上添加签名时间戳
我假設您指的是添加PADES-5標準中定義的"document security store"和"document-level timestamp"(RFC 3161) . 這在section 5.4 of my book中有解釋 .
這是一個可以添加兩者的方法的示例:
public void addLtv(
String src, String dest,
OcspClient ocsp, CrlClient crl, TSAClient tsa)
throws IOException, DocumentException, GeneralSecurityException {
PdfReader r = new PdfReader(src);
FileOutputStream fos = new FileOutputStream(dest);
PdfStamper stp = PdfStamper.createSignature(r, fos, '\0', null, true);
LtvVerification v = stp.getLtvVerification();
AcroFields fields = stp.getAcroFields();
List names = fields.getSignatureNames();
String sigName = names.get(names.size() - 1);
PdfPKCS7 pkcs7 = fields.verifySignature(sigName);
if (pkcs7.isTsp())
System.out.println("TIMESTAMP!");
for (String name : names) {
v.addVerification(name, ocsp, crl,
LtvVerification.CertificateOption.WHOLE_CHAIN,
LtvVerification.Level.OCSP_CRL,
LtvVerification.CertificateInclusion.NO);
}
PdfSignatureAppearance sap = stp.getSignatureAppearance();
LtvTimestamp.timestamp(sap, tsa, null);
}
請注意,如果添加的最后一個簽名是文檔級時間戳,則此方法會將"TIMESTAMP"寫入 System.out .
Important: 在回答了這個問題之后,我看到了mkl的評論:之后添加撤銷信息只能使用超出當前PDF標準I SO 32000-1的機制,例如: PAdES第4部分 . 我的答案顯然假設您正在討論使用PAdES標準應用的簽名 . 也許這在我從"I assume"開頭的第一句話中并不清楚 .
總結
以上是生活随笔為你收集整理的php pdf 加密 签名 时间戳,在现有PDF签名上添加签名时间戳的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php namespace原理作用,ph
- 下一篇: java宠物小精灵,简单的Java口袋妖