[英]iText signature verification issue
我正在遵循 iText 5 簽名驗證示例來構建帶有數字簽名的簽名/驗證 pdf。 但是,當我編譯 java 時它返回錯誤,如下錯誤消息:
Signatures.java:221: error: incompatible types: List<VerificationException> cannot be converted to Object[]
Object fails[] = CertificateVerification.verifyCertificates(pkc, ks, null, cal);
1 error
這是我的 java 代碼:
public void verifySignatures() throws GeneralSecurityException, IOException {
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
ks.load(null, null);
CertificateFactory cf = CertificateFactory.getInstance("X509");
FileInputStream is1 = new FileInputStream(properties.getProperty("ROOTCERT"));
X509Certificate cert1 = (X509Certificate) cf.generateCertificate(is1);
ks.setCertificateEntry("cacert", cert1);
FileInputStream is2 = new FileInputStream("12345678.cer");
X509Certificate cert2 = (X509Certificate) cf.generateCertificate(is2);
ks.setCertificateEntry("foobar", cert2);
PrintWriter out = new PrintWriter(new FileOutputStream(VERIFICATION));
PdfReader reader = new PdfReader(SIGNED1);
AcroFields af = reader.getAcroFields();
ArrayList<String> names = af.getSignatureNames();
for (String name : names) {
out.println("Signature name: " + name);
out.println("Signature covers whole document: "+ af.signatureCoversWholeDocument(name));
out.println("Document revision: "+ af.getRevision(name)+" of "+ af.getTotalRevisions());
PdfPKCS7 pk = af.verifySignature(name);
Calendar cal = pk.getSignDate();
Certificate[] pkc = pk.getCertificates();
out.println("Subject: " + CertificateInfo.getSubjectFields(pk.getSigningCertificate()));
out.println("Revision modified: " + !pk.verify());
Object fails[] = CertificateVerification.verifyCertificates(pkc, ks, null, cal);
if (fails == null)
out.println("Certificates verified against the KeyStore");
else
out.println("Certificate failed: " + fails[1]);
}
out.flush();
out.close();
}
我做錯了什么?
Signatures.java:221:錯誤:不兼容的類型:列表無法轉換為對象 [] Object 失敗 [] = CertificateVerification.verifyCertificates(pkc, ks, Z37A6259CC0C1DAE2BZA,7cal86648999 1 個錯誤
您正在調用 iText5 class CertificateVerification
的以下方法
public static List<VerificationException> verifyCertificates(Certificate[] certs, KeyStore keystore,
Calendar calendar) {
return verifyCertificates(certs, keystore, (Collection) null, calendar);
}
Object fails[]
更改為List<VerificationException>
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.