Author: markt
Date: Thu Mar  3 09:21:49 2016
New Revision: 1733427

URL: http://svn.apache.org/viewvc?rev=1733427&view=rev
Log:
Ensure COMPLEMENTOFDEAULT is correctly ordered with OpenSSL master

Modified:
    
tomcat/trunk/java/org/apache/tomcat/util/net/openssl/ciphers/OpenSSLCipherConfigurationParser.java

Modified: 
tomcat/trunk/java/org/apache/tomcat/util/net/openssl/ciphers/OpenSSLCipherConfigurationParser.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/openssl/ciphers/OpenSSLCipherConfigurationParser.java?rev=1733427&r1=1733426&r2=1733427&view=diff
==============================================================================
--- 
tomcat/trunk/java/org/apache/tomcat/util/net/openssl/ciphers/OpenSSLCipherConfigurationParser.java
 (original)
+++ 
tomcat/trunk/java/org/apache/tomcat/util/net/openssl/ciphers/OpenSSLCipherConfigurationParser.java
 Thu Mar  3 09:21:49 2016
@@ -491,7 +491,7 @@ public class OpenSSLCipherConfigurationP
         // Despite what the OpenSSL docs say, DEFAULT also excludes SSLv2
         addListAlias(DEFAULT, 
parse("ALL:!EXPORT:!eNULL:!aNULL:!SSLv2:!DES:!RC2:!RC4"));
         // COMPLEMENTOFDEFAULT is also not exactly as defined by the docs
-        Set<Cipher> complementOfDefault = filterByKeyExchange(all, new 
HashSet<>(Arrays.asList(KeyExchange.EDH,KeyExchange.EECDH)));
+        LinkedHashSet<Cipher> complementOfDefault = filterByKeyExchange(all, 
new HashSet<>(Arrays.asList(KeyExchange.EDH,KeyExchange.EECDH)));
         complementOfDefault = filterByAuthentication(complementOfDefault, 
Collections.singleton(Authentication.aNULL));
         complementOfDefault.removeAll(aliases.get(eNULL));
         complementOfDefault.addAll(aliases.get(Constants.SSL_PROTO_SSLv2));
@@ -499,6 +499,7 @@ public class OpenSSLCipherConfigurationP
         complementOfDefault.addAll(aliases.get(DES));
         complementOfDefault.addAll(aliases.get(RC2));
         complementOfDefault.addAll(aliases.get(RC4));
+        defaultSort(complementOfDefault);
         addListAlias(COMPLEMENTOFDEFAULT, complementOfDefault);
     }
 
@@ -610,11 +611,11 @@ public class OpenSSLCipherConfigurationP
         return filter(ciphers, protocol, null, null, null, null, null);
     }
 
-    static Set<Cipher> filterByKeyExchange(Set<Cipher> ciphers, 
Set<KeyExchange> kx) {
+    static LinkedHashSet<Cipher> filterByKeyExchange(Set<Cipher> ciphers, 
Set<KeyExchange> kx) {
         return filter(ciphers, null, kx, null, null, null, null);
     }
 
-    static Set<Cipher> filterByAuthentication(Set<Cipher> ciphers, 
Set<Authentication> au) {
+    static LinkedHashSet<Cipher> filterByAuthentication(Set<Cipher> ciphers, 
Set<Authentication> au) {
         return filter(ciphers, null, null, au, null, null, null);
     }
 
@@ -630,9 +631,9 @@ public class OpenSSLCipherConfigurationP
         return filter(ciphers, null, null, null, null, null, mac);
     }
 
-    static Set<Cipher> filter(Set<Cipher> ciphers, Set<Protocol> protocol, 
Set<KeyExchange> kx,
+    static LinkedHashSet<Cipher> filter(Set<Cipher> ciphers, Set<Protocol> 
protocol, Set<KeyExchange> kx,
             Set<Authentication> au, Set<Encryption> enc, Set<EncryptionLevel> 
level, Set<MessageDigest> mac) {
-        Set<Cipher> result = new LinkedHashSet<>(ciphers.size());
+        LinkedHashSet<Cipher> result = new LinkedHashSet<>(ciphers.size());
         for (Cipher cipher : ciphers) {
             if (protocol != null && protocol.contains(cipher.getProtocol())) {
                 result.add(cipher);



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to