- itextpdf-5.5.10.jar
- bcpkix-jdk15on-1.49.jar
缺少会报错:java.lang.NoClassDefFoundError: org/bouncycastle/cert/X509CertificateHolder - bcprov-jdk15on-152.jar
org.bouncycastle.jce.provider.BouncyCastleProvider的来源
public static boolean verifySignature(String filepath) throws GeneralSecurityException, IOException {
Security.addProvider(new BouncyCastleProvider());
PdfReader reader = new PdfReader(filepath);
AcroFields fields = reader.getAcroFields();
ArrayList names = fields.getSignatureNames();
for (String name : names) {
PdfPKCS7 pkcs7 = fields.verifySignature(name, "BC");
if(!pkcs7.verify())
return false;
}
return true;
}
遇到的坑
之前使用了bcprov-jdk15on-170.jar包,出现一下报错:
java.lang.ClassCastException: org.bouncycastle.asn1.DLTaggedObject cannot be cast to org.bouncycastle.asn1.DERTaggedObject at org.bouncycastle.asn1.tsp.TSTInfo.(Unknown Source) at org.bouncycastle.asn1.tsp.TSTInfo.getInstance(Unknown Source) at org.bouncycastle.tsp.TimeStampToken. (Unknown Source) at org.bouncycastle.tsp.TimeStampToken. (Unknown Source) at com.itextpdf.text.pdf.security.PdfPKCS7. (PdfPKCS7.java:402) at com.itextpdf.text.pdf.AcroFields.verifySignature(AcroFields.java:2419)
可以通过maven查看itextpdf对应的bcprov的jar包(https://mvnrepository.com/artifact/com.itextpdf/itextpdf/5.5.10)
THE END ✿✿ヽ(°▽°)ノ✿



