gpt4 book ai didi

java - 验证文件中分离的 XAdES 签名

转载 作者:太空宇宙 更新时间:2023-11-04 13:19:17 26 4
gpt4 key购买 nike

我正在尝试使用 xades4j 库使用分离的 XAdES 签名“test.zip.xades”来验证文件“test.zip”的完整性。我知道更简单的方法是使用 md5,但我需要使用 XAdES。我不想验证 CA 链等,只是验证文件的完整性。是否可以?我有以下代码:

    public static void main(String[] args) throws Exception {
System.out.println("verifyDetachedC");
FileInputStream fis = new FileInputStream("cacerts");

KeyStore trustAnchors = KeyStore.getInstance("jks");
trustAnchors.load(fis,"changeit".toCharArray());
fis.close();

CertificateValidationProvider certValidator = new CertificateValidationProviderImpl();
XadesVerificationProfile p = new XadesVerificationProfile(certValidator);
p.acceptUnknownProperties(true);

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
DocumentBuilder db = dbf.newDocumentBuilder();
FileInputStream isXades = new FileInputStream("test.zip.xades");
Document doc = db.parse(isXades);
Element signatureNode = getSigElement(doc);

FileInputStream is = new FileInputStream("test.zip");
SignatureSpecificVerificationOptions options = new SignatureSpecificVerificationOptions().useDataForAnonymousReference(is);
XAdESVerificationResult res = verifier.verify(signatureNode, options);
is.close();
}

class CertificateValidationProviderImpl implements CertificateValidationProvider {
@Override
public ValidationData validate(X509CertSelector certSelector,
Date validationDate,
Collection<X509Certificate> otherCerts)
throws CertificateValidationException, UnexpectedJCAException {
return new ValidationData((List<X509Certificate>) otherCerts);
}
}

我收到“签名 ID-39XXXX 的签名值无效”。我不确定代码是否有效,但签名错误或代码无效。签名具有 Signature Id="ID-39XXXX、Reference URI=test.zip(相对)和 ds:X509Certificate。

最佳答案

该错误表明签名值有问题,但引用摘要没有问题。

如果您的引用具有相对 URI,则它不是匿名引用,这意味着您不需要 useDataForAnonymousReference(is)。除此之外,代码看起来不错。您确定原始签名已正确生成吗?

关于java - 验证文件中分离的 XAdES 签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33253897/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com