Blob Blame History Raw
From c14c8ec6b077721eddeddb125b9a4b0141e5e4aa Mon Sep 17 00:00:00 2001
From: "Endi S. Dewata" <edewata@redhat.com>
Date: Thu, 1 Jun 2017 00:29:37 +0200
Subject: [PATCH] Fixed SSL cipher list parser.

The SSL cipher list parsers have been modified to ignore spaces
to allow more user-friendly formatting.

https://pagure.io/tomcatjss/issue/9

Change-Id: Ic21f0347e06e20f64ef37de95f9d1f1ac3d1f0d2
---
 .../apache/tomcat/util/net/jss/JSSImplementation.java    |  5 +++--
 src/org/apache/tomcat/util/net/jss/JSSSocketFactory.java | 16 ++++++++++++++--
 2 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/src/org/apache/tomcat/util/net/jss/JSSImplementation.java b/src/org/apache/tomcat/util/net/jss/JSSImplementation.java
index 42dc8d2..8721844 100644
--- a/src/org/apache/tomcat/util/net/jss/JSSImplementation.java
+++ b/src/org/apache/tomcat/util/net/jss/JSSImplementation.java
@@ -25,6 +25,8 @@ import java.io.IOException;
 import java.net.Socket;
 import java.util.Properties;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.tomcat.util.net.AbstractEndpoint;
 import org.apache.tomcat.util.net.SSLImplementation;
 import org.apache.tomcat.util.net.SSLSupport;
@@ -35,8 +37,7 @@ public class JSSImplementation extends SSLImplementation {
     static final String JSSFactory = "org.apache.tomcat.util.net.jss.JSSFactory";
     static final String SSLSocketClass = "org.mozilla.jss.ssl.SSLSocket";
 
-    static org.apache.commons.logging.Log logger = org.apache.commons.logging.LogFactory
-            .getLog(JSSImplementation.class);
+    static Log logger = LogFactory.getLog(JSSImplementation.class);
 
     private JSSFactory factory = null;
 
diff --git a/src/org/apache/tomcat/util/net/jss/JSSSocketFactory.java b/src/org/apache/tomcat/util/net/jss/JSSSocketFactory.java
index 4992600..f974a89 100644
--- a/src/org/apache/tomcat/util/net/jss/JSSSocketFactory.java
+++ b/src/org/apache/tomcat/util/net/jss/JSSSocketFactory.java
@@ -42,6 +42,8 @@ import javax.net.ssl.SSLContext;
 import javax.net.ssl.TrustManager;
 
 import org.apache.commons.lang.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 // Imports required to "implement" Tomcat 7 Interface
 import org.apache.tomcat.util.net.AbstractEndpoint;
 import org.mozilla.jss.CertDatabaseException;
@@ -61,6 +63,8 @@ public class JSSSocketFactory implements
         org.apache.tomcat.util.net.ServerSocketFactory,
         org.apache.tomcat.util.net.SSLUtil {
 
+    static Log logger = LogFactory.getLog(JSSSocketFactory.class);
+
     private static HashMap<String, Integer> cipherMap = new HashMap<String, Integer>();
     static {
         // SSLv2
@@ -382,9 +386,13 @@ public class JSSSocketFactory implements
             debugWrite("JSSSocketFactory setSSLCiphers: " + attr + " not found");
             return;
         }
-        StringTokenizer st = new StringTokenizer(ciphers, ",");
+
+        logger.debug("Processing " + attr + ":");
+        StringTokenizer st = new StringTokenizer(ciphers, ", ");
         while (st.hasMoreTokens()) {
             String cipherstr = st.nextToken();
+            logger.debug(" - " + cipherstr);
+
             int cipherid = 0;
             String text;
             boolean state;
@@ -456,9 +464,13 @@ public class JSSSocketFactory implements
             debugWrite("no sslOptions specified");
             return;
         }
-        StringTokenizer st = new StringTokenizer(options, ",");
+
+        logger.debug("Processing sslOptions:");
+        StringTokenizer st = new StringTokenizer(options, ", ");
         while (st.hasMoreTokens()) {
             String option = st.nextToken();
+            logger.debug(" - " + option);
+
             StringTokenizer st1 = new StringTokenizer(option, "=");
             String name = st1.nextToken();
             String value = st1.nextToken();
-- 
1.8.3.1