将包含3DES密钥的Java JCEKS密钥库转换为PKCS12

时间:2018-06-08 12:49:23

标签: java keytool pkcs#12 3des jceks

我试图将Java JCEKS密钥库转换为包含两个对称密钥的PKCS12,一个AES和一个3DES。

AES密钥可以很好地导入PKCS12文件,但不能导入3DES密钥。

我使用的命令是:

"c:\Program Files\Java\jdk-10.0.1\bin\keytool.exe" -importkeystore -srckeystore D:\temp\ssc.jceks -srcstoretype jceks -destkeystore D:\temp\ssc.p12 -deststoretype pkcs12

我收到以下错误消息:

java.security.KeyStoreException: Key protection  algorithm not found: java.security.NoSuchAlgorithmException: unrecognized algorithm name: DESede

这是Java 10.0.1,我也尝试过Java 8u171和Java 11 EA 17。

Keytool可以使用以下命令列出JCEKS密钥库:

"c:\Program Files\Java\jdk-10.0.1\bin\keytool.exe" -list -keystore D:\temp\ssc.jceks -storepass xxxxx -storetype jceks -v

如何将3DES密钥导入PKCS12密钥库?

感谢。

1 个答案:

答案 0 :(得分:2)

看起来实现SunJSSE KeyStore的默认PKCS12提供程序不支持DESede算法。

最好的办法是将它们放在JCEKS密钥库中(它是Java专有的,但PKCS#11标准是不存储非私钥。即使你必须这样做,DESede可能不会得到支持,因为AES被认为比DESede更安全,并且是行业标准。)

相关问题