在不知道密钥类型的情况下从KeyManagers获取所有别名

时间:2014-03-21 12:52:43

标签: java ssl key keystore

我有一个KeyManager数组,我需要从中获取所有别名。所以我打算调用String[] getClientAliases(String keyType, Principal[] issuers)接口的方法X509KeyManager,我将null放在issuers但是我不知道应该放什么{{1}因为我有关于此的任何信息。

仅供参考,我这样做是为了从keyType数组构建一个KeyStore对象。获取所有别名后,对于每个别名,我调用KeyManager[]getCertificateChain,然后将两个结果作为条目放入keyStore。也许你知道其他方法。

1 个答案:

答案 0 :(得分:1)

密钥类型列在Java™ Cryptography Architecture Standard Algorithm Name Documentation中,在最后的表格中(“其他JSSE标准名称”):RSA,DSA,DH_RSA,DH_DSA,EC,EC_EC和EC_RSA。

请注意,您可能能够以这种方式获取PrivateKey的实例,并重新构造KeyStore的某个实例,但您可能无法使用私有内容保存该密钥库关键在所有情况下。 PrivateKey是一个表示私钥的类,其方法允许将其用作私钥。它不一定包含私钥材料,例如,如果这是从PKCS#11硬件令牌获得的私钥。