Java 在JDK 1.4中使用WINDOWS-MY密钥库

Java 在JDK 1.4中使用WINDOWS-MY密钥库,java,security,cryptography,digital-signature,Java,Security,Cryptography,Digital Signature,我必须访问Windows证书存储才能访问证书以进行某些签名。 目前,我正在使用以下方法访问密钥库: KeyStore personalKS = KeyStore.getInstance("Windows-MY"); personalKS.load(null, null); java.security.KeyStoreException: Windows-MY not found 这在JDK1.6中运行良好,满足了我的所有需求。然而,由于“不可避免的配置和遗留问题”(让我们就此为止),我必须对

我必须访问Windows证书存储才能访问证书以进行某些签名。 目前,我正在使用以下方法访问密钥库:

KeyStore personalKS = KeyStore.getInstance("Windows-MY");
personalKS.load(null, null);
java.security.KeyStoreException: Windows-MY not found
这在JDK1.6中运行良好,满足了我的所有需求。然而,由于“不可避免的配置和遗留问题”(让我们就此为止),我必须对代码进行移植,以使其在编译时与JDK1.4兼容。 在1.4上运行它时,我面临的问题是它无法找到WINDOWS-MY密钥库:

KeyStore personalKS = KeyStore.getInstance("Windows-MY");
personalKS.load(null, null);
java.security.KeyStoreException: Windows-MY not found
我认为它在JRE1.6上运行,而在1.4下编译时应该运行正常。不过,有人能确认这个密钥库是否只是一个运行时依赖项吗?
另外,我是否可以使用任何其他第三方提供程序在JDK1.4级别为WINDOWS-MY密钥库提供支持?

这是一种运行时依赖性,因为密钥库实现在Java加密提供程序中。提供者本身只存在于
.jar
文件中。但是有一个问题:提供者需要签名,并且需要为正确的运行时签名。从1.5开始,同样的签名在以后的运行时似乎也可以,但1.4肯定不是这样


对Windows密钥存储的支持相对较新。我在1.6之前没听说过。在1.4中创建一个提供程序来实现这一点是非常困难的,所以我不会屏住呼吸。可以肯定的是,从开发的角度来看,用特定于Windows的签名过程替换签名过程将非常容易。

它必须来自Windows密钥库吗?你能创建它的副本并将其存储为JKS或PKCS12文件并使用它吗?不。事情就是这样。。由于某些原因,我们排除了JKS/PKCS12商店。它必须来自Windows密钥库。