如何在java中使用Bouncy Castle从CSR文件中确定公钥大小?

时间:2016-05-30 12:45:34

标签: java ssl-certificate bouncycastle csr

我有一个客户端提供的CSR文件,我可以通过 JcaPKCS10CertificationRequest getPublicKey()。getAlgorithm()方法找到密钥类型(RSA / DSA),但我无法找到任何合适的方法来确定公钥的长度/大小(例如:1024/2048/4096位)。

1 个答案:

答案 0 :(得分:2)

据我所知,没有任何通用的方法来获取公钥的“密钥大小”。相反,请检查您的公钥以查看它是否实现了RSAPublicKeyDSAPublicKey等接口。如果是,请使用各种接口方法从密钥中提取属性并获取其长度,例如:

PublicKey publicKey = yourRequest.getPublicKey();
int keySize
if (publicKey instanceof RSAPublicKey) {
    keySize = ((RSAPublicKey)publicKey).getPublicExponent().bitLength();
} else if (publicKey instance DSAPublicKey) {
    keySize = ((DSAPublicKey)publicKey).getY().bitLength();
} else {
    // handle other public key types.
}