【发布时间】:2018-05-07 18:32:00
【问题描述】:
将 Bouncy Castle 添加为提供程序后,以下代码:
private static boolean isSelfSigned(final X509Certificate cert) {
try {
final PublicKey key = cert.getPublicKey();
cert.verify(key);
return true;
} catch (final RuntimeException re) {
LOG.warn(re, "isSelfSigned: error.");
return false;
} catch (final GeneralSecurityException gse) {
LOG.warn(gse, "isSelfSigned: error.");
return false;
}
}
根据 cert 的实现类导致以下两个错误:
java.security.InvalidKeyException: Supplied key (org.bouncycastle.jcajce.provider.asymmetric.ec.BCECPublicKey) is not a RSAPublicKey instance
或
java.security.InvalidKeyException: Supplied key (sun.security.ec.ECPublicKeyImpl) is not a RSAPublicKey instance
Bouncy Castle 不支持验证 EC 签名证书吗?似乎没有任何参数可以指示密钥不是 RSA。如何使用 Bouncy Castle 验证 EC 签名证书?
【问题讨论】:
标签: java bouncycastle x509certificate elliptic-curve