We are trying to set only those ciphers required for us in client hello , so trying to set ciphers in context object as shown in below code but our changes are not reflecting still client uses default ciphers only and it created sockets every time instead considering our specific setting, can you suggest ways to set ciphers to context and client should offer only those ciphers in request?
{
TcpSyslogMessageSender messageSendertcp = new TcpSyslogMessageSender();
// Construct tcp Header
messageSendertcp.setSyslogServerHostname(syslogServerDetails.getHostName());
messageSendertcp.setSyslogServerPort(syslogServerDetails.getPort());
messageSendertcp.setMessageFormat(MessageFormat.RFC_5425);
messageSendertcp.setDefaultMessageHostname(this.getHostName());
messageSendertcp.setDefaultAppName(syslogMessage.getAppName());
messageSendertcp.setDefaultFacility(syslogMessage.getFacility());
messageSendertcp.setDefaultSeverity(syslogMessage.getSeverity());
messageSendertcp.setPostfix("");
SSLContext context = getSSLContext();
if (context != null) {
messageSendertcp.setSSLContext(context);
messageSendertcp.setSsl(true);
messageSendertcp.getSSLContext().setDefault(context);
}
}
public SSLContext getContext() {
String[] cipherSuites = Arrays.asList("Ciphers"); // required Ciphers list
SSLContext context = SSLContext.getInstance("TLSv1.2", "SunJSSE");
context.init(keyManagerFactory.getKeyManagers(), trustMgrFactory.getTrustManagers(),
SecureRandom.getInstance("DEFAULT", provider));
SSLSocketFactory socketFac = context.getSocketFactory();
SSLSocket sslSocket = (SSLSocket) socketFac.createSocket();
sslSocket.setEnabledCipherSuites(cipherSuites);
context.init(keyManagerFactory.getKeyManagers(), trustMgrFactory.getTrustManagers(),
SecureRandom.getInstance("DEFAULT", provider));
}