Java 如何使用Bouncy Castle使用EC密钥验证X509证书

Java 如何使用Bouncy Castle使用EC密钥验证X509证书,java,bouncycastle,x509certificate,elliptic-curve,Java,Bouncycastle,X509certificate,Elliptic Curve,添加Bouncy Castle作为提供程序后,以下代码段: private static boolean isSelfSigned(final X509Certificate cert) { try { final PublicKey key = cert.getPublicKey(); cert.verify(key); return true; } catch (final RuntimeException r

添加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


Bouncy Castle不支持验证EC签名的证书吗?似乎没有任何参数可以指示密钥不是RSA。如何使用Bouncy Castle验证EC签名的证书?

这是我的误解。检查失败,因为证书实际上有一个EC密钥,但父证书有一个RSA密钥。

自签名证书(始终)的主题=颁发者;最好在检查签名之前先检查一下。
java.security.InvalidKeyException: Supplied key (sun.security.ec.ECPublicKeyImpl) is not a RSAPublicKey instance