我坚持创建 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 是否可行,或者我是否必须通过 SSLEngine 使用它们各自的 API 而不是 oracle 的 NIO重写我的协议(这是我现在正在做的方式)?
非常感谢您在这里提供的任何帮助。