0

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));
   } 

user
  • 1
  • The issue is that you are enabling the cipher suites on an SSLSocket instance, but then you are not using this socket, so the settings on this socket do not automatically apply to the SSLContext or other sockets created by the same SSLSocketFactory – Yahor Barkouski Jun 22 '23 at 17:09
  • But how do we set this SSLSocket instance after we set cipher to SSLContext? – user Jun 23 '23 at 10:07

0 Answers0