Java 验证签名和时间戳的尝试失败
我尝试用这个方法验证签名和时间戳Java 验证签名和时间戳的尝试失败,java,xml-signature,xades4j,Java,Xml Signature,Xades4j,我尝试用这个方法验证签名和时间戳 private static boolean verifyXAdEST(String folder, String file) { try { FileSystemDirectoryCertStore store = new FileSystemDirectoryCertStore("C:/Certs"); FileInputStream fis = new FileInputStream("C:/Certs/cert.p
private static boolean verifyXAdEST(String folder, String file) {
try {
FileSystemDirectoryCertStore store = new FileSystemDirectoryCertStore("C:/Certs");
FileInputStream fis = new FileInputStream("C:/Certs/cert.pfx");
KeyStore ks = KeyStore.getInstance("pkcs12");
ks.load(fis, "SECRET_PASS".toCharArray());
fis.close();
CertificateValidationProvider provider = new PKIXCertificateValidationProvider(ks, false, store.getStore());
XadesVerifier verifier = new XadesVerificationProfile(provider)
.newVerifier();
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder()
.parse(new File(folder + file));
doc.getDocumentElement().normalize();
Element sig = (Element)doc.getElementsByTagName("ds:Signature").item(0);
XAdESVerificationResult result = verifier.verify(
sig, null,
new XadesFormatExtenderProfile().getFormatExtender(),
XAdESForm.T);
return true;
} catch (Exception ex) {
System.err.println("Error: " + ex.getMessage());
}
return false;
}
但是该方法返回错误的XML签名
有人能帮我吗!!
谢谢有嵌套的异常吗?另外,我不确定您为什么要使用扩展器,因为原始签名已经是XAdES-T(假设这与此问题相同:),对于未来的访问者,答案如下:示例代码如下: