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