[英]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.