0

我正在开发(java)一个需要连接到 Windows 密钥库的 xml 验证应用程序。目前我遇到以下消息:CannotBuildCertificationPathExecption:信任锚密钥库未初始化。

现在我可以使用以下示例从商店获取我的密钥: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 密钥库建立受信任的连接吗?是否有任何关于 SignatureSpecificVerificationOptions 的信息。我发现很难根据我需要使用的实际设置来理解手册。

4

1 回答 1

1

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

trustAnchors.load(null);

PKIXCertificateValidationProvider不能这样做,因为可能需要保护参数。

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

于 2012-10-26T20:35:22.917 回答