Как проверить сертификат X509 с помощью ключа EC с помощью Bouncy Castle - PullRequest
0 голосов
/ 07 мая 2018

С добавлением 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;
    }

}

Результатом являются следующие две ошибки в зависимости от класса реализации сертификата:

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 не поддерживает проверку подписанных сертификатов ЕС? Там нет никаких параметров, где я могу указать, что ключи не RSA. Как проверить сертификат, подписанный ЕС, с помощью Bouncy Castle?

1 Ответ

0 голосов
/ 07 мая 2018

Это было недоразумение с моей стороны.Проверка не проходит, потому что сертификат действительно имеет ключ EC, но родительский сертификат имеет ключ RSA.

...