Настройка Maven для использования BouncyCastle
Код: Выделить всё
org.bouncycastle
bcprov-jdk18on
1.78.1
Код: Выделить всё
try {
PublicKey serverPubKey = CertUtil.getPubKey(new File(cert_fp));
Cipher cipher = Cipher.getInstance("RSA/ECB/OAEPPadding");
OAEPParameterSpec specs = new OAEPParameterSpec("SHA-256", "MGF1", MGF1ParameterSpec.SHA256, PSource.PSpecified.DEFAULT);
cipher.init(1, serverPubKey, specs);
} catch (CertificateException | NoSuchPaddingException | InvalidKeyException |
InvalidAlgorithmParameterException | NoSuchAlgorithmException e) {
LOGGER.severe("Cannot create encryption cipher. " + e);
}
Код: Выделить всё
Cannot create encryption cipher. java.security.NoSuchAlgorithmException: Cannot find any provider supporting RSA/ECB/OAEPPadding
Я добавил несколько кодов для проверки поставщиков, и это выглядит одинаково как в Windows, так и в Linux.
Код: Выделить всё
Set algs = new TreeSet();
for (Provider provider : Security.getProviders()) {
provider.getServices().stream()
.filter(s -> "Cipher".equals(s.getType()))
.map(Service::getAlgorithm)
.forEach(algs::add);
}
algs.forEach(System.out::println);
Код: Выделить всё
AES/CBC/NoPadding
AES/CBC/PKCS5Padding
AES/CTR/NoPadding
AES/ECB/NoPadding
AES/ECB/PKCS5Padding
AES/GCM/NoPadding
AES_128/CBC/NoPadding
AES_128/ECB/NoPadding
AES_128/GCM/NoPadding
AES_192/CBC/NoPadding
AES_192/ECB/NoPadding
AES_192/GCM/NoPadding
AES_256/CBC/NoPadding
AES_256/ECB/NoPadding
AES_256/GCM/NoPadding
ARCFOUR
ChaCha20-Poly1305
DES/CBC/NoPadding
DES/CBC/PKCS5Padding
DES/ECB/NoPadding
DES/ECB/PKCS5Padding
DESede/CBC/NoPadding
DESede/CBC/PKCS5Padding
DESede/ECB/NoPadding
DESede/ECB/PKCS5Padding
PBEWithHmacSHA1AndAES_128
PBEWithHmacSHA1AndAES_256
PBEWithHmacSHA224AndAES_128
PBEWithHmacSHA224AndAES_256
PBEWithHmacSHA256AndAES_128
PBEWithHmacSHA256AndAES_256
PBEWithHmacSHA384AndAES_128
PBEWithHmacSHA384AndAES_256
PBEWithHmacSHA512AndAES_128
PBEWithHmacSHA512AndAES_256
RSA/ECB/NoPadding
RSA/ECB/PKCS1Padding
Спасибо
Подробнее здесь: https://stackoverflow.com/questions/787 ... -red-hat-8