Java Keystore(例如JKS,PKCS)允许saving私钥(接口 Key)和 证书链。但是,RSA KeyPair的私钥是加密的 (例如,bouncycastle或EncryptedPrivateKeyInfo中的javax)未实现 关键接口。
在密钥库中存储加密私钥的正确方法是什么?
答案 0 :(得分:2)
如果您已经有EncryptedPrivateKeyInfo
,则应该可以在创建密钥库条目时直接使用它。 Java将KeyKore中的PrivateKey存储为EncryptedPrivateKeyInfo
格式。
您需要在KeyStore.setKeyEntry(String alias, byte[] key, Certificate[] chain)
中使用此方法。文档here。
另一个setKeyEntry
方法接受一个addtional参数,即密码,Java将使用提供的密码构造EncryptedPrivateKeyInfo
本身。
注意:只有Java支持Key Protection Algorithm
,它才会导入私钥,否则会抱怨。如果它有抱怨,您可以查看自己解密加密私钥的其他选项,并使用其他setKeyEntry()
方法。