Я застрял при создании SSLContext (который я хочу использовать для создания экземпляра SSLEngine для обработки зашифрованного транспорта через java-nio):
Код
String protocol = "TLSv1.2";
Provider provider = new BouncyCastleProvider();
Security.addProvider(provider);
sslContext = SSLContext.getInstance(protocol,provider.getName());
выдает следующее исключение:
Exception in thread "main" java.lang.RuntimeException: java.security.NoSuchAlgorithmException: no such algorithm: SSL for provider BC
at org.bitmash.network.tcp.ssl.SslTransferFactory.<init>(SslTransferFactory.java:43)
at org.bitmash.network.http.HttpsServer.<init>(HttpsServer.java:19)
Я прикрепил текущий пакет провайдера Bouncy Castle 'bcprov-jdk15on-150.jar' (который я получил от здесь) к пути к классам приложений, а также к его пути к классу загрузки (через VM-Option -Xbootclasspath/p), но ни один из них не решил проблему. Я также пробовал разные значения для protocol
(например, «SSL» и «TLSv1») без какого-либо эффекта.
Также я нашел людей с похожими проблемами здесь и здесь. Но в отличие от них, я нацелен (и использую) Java 7 (или выше), но у меня все еще есть эта проблема. Возможно ли вообще использовать Bouncy Castle таким образом, или мне нужно переписать свой протокол, используя соответствующий API вместо NIO через SSLEngine (именно так я делаю это прямо сейчас)?
Большое спасибо за любую помощь здесь.