2013-10-30 19 views
2

为了某些签名目的,我必须访问Windows证书存储区以访问证书。 目前我使用下面的方法来访问密钥库:在JDK 1.4中使用WINDOWS-MY密钥存储库

KeyStore personalKS = KeyStore.getInstance("Windows-MY"); 
personalKS.load(null, null); 

这正常工作与JDK1.6和满足我的所有要求。但是,由于“不可避免的配置和遗留问题”(让我们不必担心),我必须移植代码才能在编译时兼容JDK 1.4。 我现在面临上1.4运行它的问题是它是不是能找到Windows-MY密钥库:

java.security.KeyStoreException: Windows-MY not found 

我认为,当同时在1.4上编译运行JRE1.6它应该运行正常。不过,任何人都可以确认这个KeyStore的东西是否只是一个运行时依赖? 另外,是否有任何其他第三方提供商可以使用它为JDK1.4级别的WINDOWS-MY KeyStore提供支持?

+0

它是否必须来自Windows密钥库?你可以创建它的副本并将其作为JKS或PKCS12文件存储并使用它? – gtrig

+0

没有。事情就是这样。由于某些原因,JKS/PKCS12商店是我们排除的选项。它必须来自Windows密钥库。 – i5h4n

回答

2

从某种意义上说,它是运行时依赖关系,即密钥库实现在Java加密提供程序中。提供者本身仅存在于.jar文件中。然而有一个问题:供应商需要签名,他们需要签署正确的运行时间。从1.5开始,相同的签名对于以后的运行时间似乎还可以,但1.4对于这种情况肯定不是这样。

对Windows密钥库的支持是比较新的。我在1.6之前没有听说过它。创建一个能够在1.4中做到这一点的提供商是非常棘手的,所以我不会屏住呼吸。从开发的角度来看,这将是无限轻松的,用Windows特有的替代签名过程,这是肯定的。