如何使用Java 8从Microsoft密钥库加载下一代证书?

fst*_*aud 17 java ssl cryptography cryptoapi elliptic-curve

我正在尝试直接从Microsoft商店加载证书,以避免必须从MS商店导出证书,然后将它们导入JKS商店.

我设法使用SunMSCAPI直接从MS商店使用传统加密从典型的AD CS Web服务器模板创建证书.

但是,SunMSCAPI不支持我正在使用的现代CNG密码,特别是RSA-2048非对称加密,SHA-384散列和ECDSA-384数字签名.

是否可以使用Java从MS商店加载下一代证书?我在jdk1.8.0_45.是否有可以处理CNG的现有JCE提供商替代SunMSCAPI?我怀疑它必须使用JNI或JNA来访问本机Windows CNG API.

我试过Pheox JCAPI但没有成功.它支持RSA和DSA,但不支持ECDSA.我没有尝试过Bouncy Castle,但我的理解是它没有提供这样的能力.

还有其他现成的JCE提供商替代SunMSCAPI可以处理CNG我可以尝试吗?

更新:JCAPI v2仅支持明年针对v3计划的RSA,ECDH支持.

更新:有人建议为Java 8安装Java Cryptography Extension(JCE)Unlimited Strength Jurisdiction Policy Files也许可以解决这个问题,但是没有,这没有帮助,因为问题是SunMSCAPI仅支持RSA密码,可以看出看源代码.

bea*_*eat 2

正如已经提到的,这对于 SunMSCAPI 来说是不可能的。实际上,有一个开放的增强请求,人们可以投票支持解决该问题。

问题在这里:https ://bugs.openjdk.java.net/browse/JDK-8026953