Bug 5377: Support configuring cipher suites to use for SSLEngine
[openflowjava.git] / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / core / TcpChannelInitializer.java
index 18566eb29e086898d68fbfbfb9bbc957649b5719..881f697adf85d0f8cdf50ec12844723688c9af46 100644 (file)
@@ -16,6 +16,7 @@ import io.netty.util.concurrent.Future;
 import io.netty.util.concurrent.GenericFutureListener;
 import java.net.InetAddress;
 import java.util.Iterator;
+import java.util.List;
 import java.util.concurrent.TimeUnit;
 import javax.net.ssl.SSLEngine;
 import org.opendaylight.openflowjava.protocol.impl.core.connection.ConnectionAdapterFactory;
@@ -84,6 +85,13 @@ public class TcpChannelInitializer extends ProtocolChannelInitializer<SocketChan
                 final SSLEngine engine = sslFactory.getServerContext().createSSLEngine();
                 engine.setNeedClientAuth(true);
                 engine.setUseClientMode(false);
+                List<String> suitesList = getTlsConfiguration().getCipherSuites();
+                if (suitesList != null && !suitesList.isEmpty()) {
+                    LOGGER.debug("Requested Cipher Suites are: {}", suitesList);
+                    String[] suites = suitesList.toArray(new String[suitesList.size()]);
+                    engine.setEnabledCipherSuites(suites);
+                    LOGGER.debug("Cipher suites enabled in SSLEngine are: {}", engine.getEnabledCipherSuites().toString());
+                }
                 final SslHandler ssl = new SslHandler(engine);
                 final Future<Channel> handshakeFuture = ssl.handshakeFuture();
                 final ConnectionFacade finalConnectionFacade = connectionFacade;