java - 如何使用 XAdES4j 信任 Windows keystore 的 anchor ?

标签 java encryption xades4j

我正在开发(java)一个 xml 验证应用程序,它需要连接到 Windows keystore 。 目前,我陷入以下消息:CannotBuildCertificationPathExecption:信任 anchor keystore 未初始化。

现在我可以使用以下示例从商店获取 key :http://stackoverflow.com/questions/5476974/java-access-to-intermediate-cas-from-windows-keystores 效果很好。并给了我使用 XAdES4J 的希望。

我使用的代码如下:

trustAnchors = KeyStore.getInstance("Windows-MY");  
certValidator = new PKIXCertificateValidationProvider(trustAnchors, false); 
p = new XadesVerificationProfile(certValidator); 
v = p.newVerifier();

Element sigElem = (Element) signature.item(0); //Which contains the complete signature segment from the xml

XAdESVerificationResult r;  
SignatureSpecificVerificationOptions options = new SignatureSpecificVerificationOptions().useBaseUri("http://www.ietf.org/rfc/");

r = v.verify(sigElem, options);

证书是 x509。加密方式XAdES-t。

有人知道如何与 Windows keystore 建立可信连接吗? 是否有有关 SignatureSpecificVerificationOptions 的任何信息。我发现很难根据我需要使用的实际设置来理解手册。

最佳答案

即使它是一个 Wndows keystore ,您仍然需要加载它:

trustAnchors.load(null);

PKIXCertificateValidationProvider 无法执行此操作,因为可能需要保护参数。

此外,您可能需要使用“Windows-ROOT”而不是“Windows-MY”来访问受信任的证书颁发机构。

关于java - 如何使用 XAdES4j 信任 Windows keystore 的 anchor ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13090442/

相关文章:

java - 声明与。堵塞

Ruby openssl 文档

encryption - 音频加密/保护

java - Xades4J 兼容 PKCS11 native 库中应该包含什么?

java - valueOf() 可以根据 Java 约定返回 null 吗?

java - 如何定义我的 nutchcrawl 的覆盖范围?

java - 非 spring web 应用程序可以使用使用 spring + hibernate 构建的 jar

c# - 在 Perl 中加密文件并在 C# 中解密

java - xades4j 中缺少 CountersignedSignature 类型

java - 如何从 Xades4J 签名中的签名元素中删除 namespace ?