Repository: mina
Updated Branches:
  refs/heads/2.0 c6f68526e -> 24d58b93b


o Fix the certificates and the code so that the tests works with Java 8,
which is more strict with the used algorithm (typically, certificate
must use more than 512 bits°; The bogus.cert has been regenerated with
2048 bits, and a 10 years validity.

Project: http://git-wip-us.apache.org/repos/asf/mina/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina/commit/24d58b93
Tree: http://git-wip-us.apache.org/repos/asf/mina/tree/24d58b93
Diff: http://git-wip-us.apache.org/repos/asf/mina/diff/24d58b93

Branch: refs/heads/2.0
Commit: 24d58b93beb9a28b887fa3e9f6fe406a8e13228a
Parents: c6f6852
Author: Emmanuel Lécharny <elecha...@symas.com>
Authored: Mon Dec 26 20:14:42 2016 +0100
Committer: Emmanuel Lécharny <elecha...@symas.com>
Committed: Mon Dec 26 20:14:42 2016 +0100

----------------------------------------------------------------------
 .../echoserver/ssl/BogusSslContextFactory.java  |  36 +++++++------
 .../ssl/BogusTrustManagerFactory.java           |  50 +++++++++++++++++--
 .../tcp/perf/BogusSslContextFactory.java        |  43 ++++++++--------
 .../tcp/perf/BogusTrustManagerFactory.java      |  41 +++++++++++++--
 .../mina/example/echoserver/ssl/bogus.cert      | Bin 937 -> 2247 bytes
 5 files changed, 119 insertions(+), 51 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina/blob/24d58b93/mina-example/src/main/java/org/apache/mina/example/echoserver/ssl/BogusSslContextFactory.java
----------------------------------------------------------------------
diff --git 
a/mina-example/src/main/java/org/apache/mina/example/echoserver/ssl/BogusSslContextFactory.java
 
b/mina-example/src/main/java/org/apache/mina/example/echoserver/ssl/BogusSslContextFactory.java
index 59ab41d..20b834c 100644
--- 
a/mina-example/src/main/java/org/apache/mina/example/echoserver/ssl/BogusSslContextFactory.java
+++ 
b/mina-example/src/main/java/org/apache/mina/example/echoserver/ssl/BogusSslContextFactory.java
@@ -38,13 +38,13 @@ public class BogusSslContextFactory {
     /**
      * Protocol to use.
      */
-    private static final String PROTOCOL = "TLS";
+    private static final String PROTOCOL = "TLSv1.2";
 
     private static final String KEY_MANAGER_FACTORY_ALGORITHM;
 
     static {
-        String algorithm = Security
-                .getProperty("ssl.KeyManagerFactory.algorithm");
+        String algorithm = 
Security.getProperty("ssl.KeyManagerFactory.algorithm");
+        
         if (algorithm == null) {
             algorithm = KeyManagerFactory.getDefaultAlgorithm();
         }
@@ -79,20 +79,20 @@ public class BogusSslContextFactory {
      * @return SSLContext The created SSLContext 
      * @throws GeneralSecurityException If we had an issue creating the 
SSLContext
      */
-    public static SSLContext getInstance(boolean server)
-            throws GeneralSecurityException {
-        SSLContext retInstance = null;
+    public static SSLContext getInstance(boolean server) throws 
GeneralSecurityException {
+        SSLContext retInstance;
+        
         if (server) {
             synchronized(BogusSslContextFactory.class) {
                 if (serverInstance == null) {
                     try {
                         serverInstance = createBougusServerSslContext();
                     } catch (Exception ioe) {
-                        throw new GeneralSecurityException(
-                                "Can't create Server SSLContext:" + ioe);
+                        throw new GeneralSecurityException( "Can't create 
Server SSLContext:" + ioe);
                     }
                 }
             }
+            
             retInstance = serverInstance;
         } else {
             synchronized (BogusSslContextFactory.class) {
@@ -100,19 +100,20 @@ public class BogusSslContextFactory {
                     clientInstance = createBougusClientSslContext();
                 }
             }
+            
             retInstance = clientInstance;
         }
+        
         return retInstance;
     }
 
-    private static SSLContext createBougusServerSslContext()
-            throws GeneralSecurityException, IOException {
+    private static SSLContext createBougusServerSslContext() throws 
GeneralSecurityException, IOException {
         // Create keystore
         KeyStore ks = KeyStore.getInstance("JKS");
         InputStream in = null;
+        
         try {
-            in = BogusSslContextFactory.class
-                    .getResourceAsStream(BOGUS_KEYSTORE);
+            in = 
BogusSslContextFactory.class.getResourceAsStream(BOGUS_KEYSTORE);
             ks.load(in, BOGUS_PW);
         } finally {
             if (in != null) {
@@ -124,23 +125,20 @@ public class BogusSslContextFactory {
         }
 
         // Set up key manager factory to use our key store
-        KeyManagerFactory kmf = KeyManagerFactory
-                .getInstance(KEY_MANAGER_FACTORY_ALGORITHM);
+        KeyManagerFactory kmf = 
KeyManagerFactory.getInstance(KEY_MANAGER_FACTORY_ALGORITHM);
         kmf.init(ks, BOGUS_PW);
 
         // Initialize the SSLContext to work with our key managers.
         SSLContext sslContext = SSLContext.getInstance(PROTOCOL);
-        sslContext.init(kmf.getKeyManagers(),
-                BogusTrustManagerFactory.X509_MANAGERS, null);
+        sslContext.init(kmf.getKeyManagers(), 
BogusTrustManagerFactory.X509_MANAGERS, null);
 
         return sslContext;
     }
 
-    private static SSLContext createBougusClientSslContext()
-            throws GeneralSecurityException {
+    private static SSLContext createBougusClientSslContext() throws 
GeneralSecurityException {
         SSLContext context = SSLContext.getInstance(PROTOCOL);
         context.init(null, BogusTrustManagerFactory.X509_MANAGERS, null);
+        
         return context;
     }
-
 }

http://git-wip-us.apache.org/repos/asf/mina/blob/24d58b93/mina-example/src/main/java/org/apache/mina/example/echoserver/ssl/BogusTrustManagerFactory.java
----------------------------------------------------------------------
diff --git 
a/mina-example/src/main/java/org/apache/mina/example/echoserver/ssl/BogusTrustManagerFactory.java
 
b/mina-example/src/main/java/org/apache/mina/example/echoserver/ssl/BogusTrustManagerFactory.java
index 7d209d6..c920b65 100644
--- 
a/mina-example/src/main/java/org/apache/mina/example/echoserver/ssl/BogusTrustManagerFactory.java
+++ 
b/mina-example/src/main/java/org/apache/mina/example/echoserver/ssl/BogusTrustManagerFactory.java
@@ -19,6 +19,7 @@
  */
 package org.apache.mina.example.echoserver.ssl;
 
+import java.net.Socket;
 import java.security.InvalidAlgorithmParameterException;
 import java.security.KeyStore;
 import java.security.KeyStoreException;
@@ -26,8 +27,10 @@ import java.security.cert.CertificateException;
 import java.security.cert.X509Certificate;
 
 import javax.net.ssl.ManagerFactoryParameters;
+import javax.net.ssl.SSLEngine;
 import javax.net.ssl.TrustManager;
 import javax.net.ssl.TrustManagerFactorySpi;
+import javax.net.ssl.X509ExtendedTrustManager;
 import javax.net.ssl.X509TrustManager;
 
 /**
@@ -36,36 +39,73 @@ import javax.net.ssl.X509TrustManager;
  * @author <a href="http://mina.apache.org";>Apache MINA Project</a>
  */
 class BogusTrustManagerFactory extends TrustManagerFactorySpi {
+    static final X509TrustManager X509 = new X509ExtendedTrustManager() {
 
-    static final X509TrustManager X509 = new X509TrustManager() {
-        public void checkClientTrusted(X509Certificate[] x509Certificates,
-                String s) throws CertificateException {
+        @Override
+        public void checkClientTrusted( X509Certificate[] chain, String 
authType ) throws CertificateException {
+            // Nothing to do
         }
 
-        public void checkServerTrusted(X509Certificate[] x509Certificates,
-                String s) throws CertificateException {
+        @Override
+        public void checkServerTrusted( X509Certificate[] chain, String 
authType ) throws CertificateException {
+            // Nothing to do
         }
 
+        @Override
         public X509Certificate[] getAcceptedIssuers() {
             return new X509Certificate[0];
         }
+
+        @Override
+        public void checkClientTrusted( X509Certificate[] chain, String 
authType, Socket socket )
+            throws CertificateException {
+            // Nothing to do
+        }
+
+        @Override
+        public void checkClientTrusted( X509Certificate[] chain, String 
authType, SSLEngine engine )
+            throws CertificateException {
+            // Nothing to do
+        }
+
+        @Override
+        public void checkServerTrusted( X509Certificate[] chain, String 
authType, Socket socket )
+            throws CertificateException {
+            // Nothing to do
+        }
+
+        @Override
+        public void checkServerTrusted( X509Certificate[] chain, String 
authType, SSLEngine engine )
+            throws CertificateException {
+            // Nothing to do
+        }
     };
 
     static final TrustManager[] X509_MANAGERS = new TrustManager[] { X509 };
 
     public BogusTrustManagerFactory() {
+        // Do nothing
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected TrustManager[] engineGetTrustManagers() {
         return X509_MANAGERS;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected void engineInit(KeyStore keystore) throws KeyStoreException {
         // noop
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected void engineInit(ManagerFactoryParameters 
managerFactoryParameters)
             throws InvalidAlgorithmParameterException {

http://git-wip-us.apache.org/repos/asf/mina/blob/24d58b93/mina-example/src/main/java/org/apache/mina/example/tcp/perf/BogusSslContextFactory.java
----------------------------------------------------------------------
diff --git 
a/mina-example/src/main/java/org/apache/mina/example/tcp/perf/BogusSslContextFactory.java
 
b/mina-example/src/main/java/org/apache/mina/example/tcp/perf/BogusSslContextFactory.java
index 9b836c0..0d6ace2 100644
--- 
a/mina-example/src/main/java/org/apache/mina/example/tcp/perf/BogusSslContextFactory.java
+++ 
b/mina-example/src/main/java/org/apache/mina/example/tcp/perf/BogusSslContextFactory.java
@@ -38,13 +38,13 @@ public class BogusSslContextFactory {
     /**
      * Protocol to use.
      */
-    private static final String PROTOCOL = "TLS";
+    private static final String PROTOCOL = "TLSv1.2";
 
     private static final String KEY_MANAGER_FACTORY_ALGORITHM;
 
     static {
-        String algorithm = Security
-                .getProperty("ssl.KeyManagerFactory.algorithm");
+        String algorithm = 
Security.getProperty("ssl.KeyManagerFactory.algorithm");
+        
         if (algorithm == null) {
             algorithm = KeyManagerFactory.getDefaultAlgorithm();
         }
@@ -53,15 +53,15 @@ public class BogusSslContextFactory {
     }
 
     /**
-     * Bougus Server certificate keystore file name.
+     * Bogus Server certificate keystore file name.
      */
     private static final String BOGUS_KEYSTORE = "bogus.cert";
 
     // NOTE: The keystore was generated using keytool:
-    //   keytool -genkey -alias bogus -keysize 512 -validity 3650
-    //           -keyalg RSA -dname "CN=bogus.com, OU=XXX CA,
-    //               O=Bogus Inc, L=Stockholm, S=Stockholm, C=SE"
-    //           -keypass boguspw -storepass boguspw -keystore bogus.cert
+    // keytool -genkey -alias bogus -keysize 2048 -validity 3650 
+    //         -keyalg RSA -dname "CN=bogus.com, OU=XXX CA,
+    //               O=Bogus Inc, L=Stockholm, S=Stockholm, C=SE" 
+    //         -keypass boguspw -storepass boguspw -keystore bogus.cert
 
     /**
      * Bougus keystore password.
@@ -79,9 +79,9 @@ public class BogusSslContextFactory {
      * @return SSLContext The created SSLContext 
      * @throws GeneralSecurityException If we had an issue creating the 
SSLContext
      */
-    public static SSLContext getInstance(boolean server)
-            throws GeneralSecurityException {
-        SSLContext retInstance = null;
+    public static SSLContext getInstance(boolean server) throws 
GeneralSecurityException {
+        SSLContext retInstance;
+        
         if (server) {
             synchronized(BogusSslContextFactory.class) {
                 if (serverInstance == null) {
@@ -93,6 +93,7 @@ public class BogusSslContextFactory {
                     }
                 }
             }
+            
             retInstance = serverInstance;
         } else {
             synchronized (BogusSslContextFactory.class) {
@@ -100,19 +101,20 @@ public class BogusSslContextFactory {
                     clientInstance = createBougusClientSslContext();
                 }
             }
+            
             retInstance = clientInstance;
         }
+        
         return retInstance;
     }
 
-    private static SSLContext createBougusServerSslContext()
-            throws GeneralSecurityException, IOException {
+    private static SSLContext createBougusServerSslContext() throws 
GeneralSecurityException, IOException {
         // Create keystore
         KeyStore ks = KeyStore.getInstance("JKS");
         InputStream in = null;
+        
         try {
-            in = BogusSslContextFactory.class
-                    .getResourceAsStream(BOGUS_KEYSTORE);
+            in = 
BogusSslContextFactory.class.getResourceAsStream(BOGUS_KEYSTORE);
             ks.load(in, BOGUS_PW);
         } finally {
             if (in != null) {
@@ -124,23 +126,20 @@ public class BogusSslContextFactory {
         }
 
         // Set up key manager factory to use our key store
-        KeyManagerFactory kmf = KeyManagerFactory
-                .getInstance(KEY_MANAGER_FACTORY_ALGORITHM);
+        KeyManagerFactory kmf = 
KeyManagerFactory.getInstance(KEY_MANAGER_FACTORY_ALGORITHM);
         kmf.init(ks, BOGUS_PW);
 
         // Initialize the SSLContext to work with our key managers.
         SSLContext sslContext = SSLContext.getInstance(PROTOCOL);
-        sslContext.init(kmf.getKeyManagers(),
-                BogusTrustManagerFactory.X509_MANAGERS, null);
+        sslContext.init(kmf.getKeyManagers(), 
BogusTrustManagerFactory.X509_MANAGERS, null);
 
         return sslContext;
     }
 
-    private static SSLContext createBougusClientSslContext()
-            throws GeneralSecurityException {
+    private static SSLContext createBougusClientSslContext() throws 
GeneralSecurityException {
         SSLContext context = SSLContext.getInstance(PROTOCOL);
         context.init(null, BogusTrustManagerFactory.X509_MANAGERS, null);
+        
         return context;
     }
-
 }

http://git-wip-us.apache.org/repos/asf/mina/blob/24d58b93/mina-example/src/main/java/org/apache/mina/example/tcp/perf/BogusTrustManagerFactory.java
----------------------------------------------------------------------
diff --git 
a/mina-example/src/main/java/org/apache/mina/example/tcp/perf/BogusTrustManagerFactory.java
 
b/mina-example/src/main/java/org/apache/mina/example/tcp/perf/BogusTrustManagerFactory.java
index bcb3c82..ebfa049 100644
--- 
a/mina-example/src/main/java/org/apache/mina/example/tcp/perf/BogusTrustManagerFactory.java
+++ 
b/mina-example/src/main/java/org/apache/mina/example/tcp/perf/BogusTrustManagerFactory.java
@@ -19,6 +19,7 @@
  */
 package org.apache.mina.example.tcp.perf;
 
+import java.net.Socket;
 import java.security.InvalidAlgorithmParameterException;
 import java.security.KeyStore;
 import java.security.KeyStoreException;
@@ -26,8 +27,10 @@ import java.security.cert.CertificateException;
 import java.security.cert.X509Certificate;
 
 import javax.net.ssl.ManagerFactoryParameters;
+import javax.net.ssl.SSLEngine;
 import javax.net.ssl.TrustManager;
 import javax.net.ssl.TrustManagerFactorySpi;
+import javax.net.ssl.X509ExtendedTrustManager;
 import javax.net.ssl.X509TrustManager;
 
 /**
@@ -37,18 +40,46 @@ import javax.net.ssl.X509TrustManager;
  */
 class BogusTrustManagerFactory extends TrustManagerFactorySpi {
 
-    static final X509TrustManager X509 = new X509TrustManager() {
-        public void checkClientTrusted(X509Certificate[] x509Certificates,
-                String s) throws CertificateException {
+    static final X509TrustManager X509 = new X509ExtendedTrustManager() {
+
+        @Override
+        public void checkClientTrusted( X509Certificate[] chain, String 
authType ) throws CertificateException {
+            // Nothing to do
         }
 
-        public void checkServerTrusted(X509Certificate[] x509Certificates,
-                String s) throws CertificateException {
+        @Override
+        public void checkServerTrusted( X509Certificate[] chain, String 
authType ) throws CertificateException {
+            // Nothing to do
         }
 
+        @Override
         public X509Certificate[] getAcceptedIssuers() {
             return new X509Certificate[0];
         }
+
+        @Override
+        public void checkClientTrusted( X509Certificate[] chain, String 
authType, Socket socket )
+            throws CertificateException {
+            // Nothing to do
+        }
+
+        @Override
+        public void checkClientTrusted( X509Certificate[] chain, String 
authType, SSLEngine engine )
+            throws CertificateException {
+            // Nothing to do
+        }
+
+        @Override
+        public void checkServerTrusted( X509Certificate[] chain, String 
authType, Socket socket )
+            throws CertificateException {
+            // Nothing to do
+        }
+
+        @Override
+        public void checkServerTrusted( X509Certificate[] chain, String 
authType, SSLEngine engine )
+            throws CertificateException {
+            // Nothing to do
+        }
     };
 
     static final TrustManager[] X509_MANAGERS = new TrustManager[] { X509 };

http://git-wip-us.apache.org/repos/asf/mina/blob/24d58b93/mina-example/src/main/resources/org/apache/mina/example/echoserver/ssl/bogus.cert
----------------------------------------------------------------------
diff --git 
a/mina-example/src/main/resources/org/apache/mina/example/echoserver/ssl/bogus.cert
 
b/mina-example/src/main/resources/org/apache/mina/example/echoserver/ssl/bogus.cert
index d34502d..769c124 100644
Binary files 
a/mina-example/src/main/resources/org/apache/mina/example/echoserver/ssl/bogus.cert
 and 
b/mina-example/src/main/resources/org/apache/mina/example/echoserver/ssl/bogus.cert
 differ

Reply via email to