doc/asmack-beem/beem_patches/10-custom-sslcontext.patch
changeset 1005 4c7edc276676
parent 1004 aa8c2dac6d02
child 1006 246d10f27fc6
--- a/doc/asmack-beem/beem_patches/10-custom-sslcontext.patch	Sun Oct 28 14:26:54 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-Index: org/jivesoftware/smack/XMPPConnection.java
-===================================================================
---- org/jivesoftware/smack/XMPPConnection.java	(révision 11644)
-+++ org/jivesoftware/smack/XMPPConnection.java	(copie de travail)
-@@ -758,14 +758,14 @@
-      * @throws Exception if an exception occurs.
-      */
-     void proceedTLSReceived() throws Exception {
--        SSLContext context = SSLContext.getInstance("TLS");
-+        SSLContext context = this.config.getCustomSSLContext();
-         KeyStore ks = null;
-         KeyManager[] kms = null;
-         PasswordCallback pcb = null;
- 
-         if(config.getCallbackHandler() == null) {
-            ks = null;
--        } else {
-+        } else if (context == null) {
-             //System.out.println("Keystore type: "+configuration.getKeystoreType());
-             if(config.getKeystoreType().equals("NONE")) {
-                 ks = null;
-@@ -821,10 +821,12 @@
-         }
- 
-         // Verify certificate presented by the server
--        context.init(kms,
--                new javax.net.ssl.TrustManager[]{new ServerTrustManager(getServiceName(), config)},
--                //new javax.net.ssl.TrustManager[]{new OpenTrustManager()},
--                new java.security.SecureRandom());
-+	if (context == null) {
-+		context = SSLContext.getInstance("TLS");
-+		context.init(kms,
-+			new javax.net.ssl.TrustManager[]{new ServerTrustManager(getServiceName(), config)},
-+			new java.security.SecureRandom());
-+	}
-         Socket plain = socket;
-         // Secure the plain connection
-         socket = context.getSocketFactory().createSocket(plain,
-Index: org/jivesoftware/smack/ConnectionConfiguration.java
-===================================================================
---- org/jivesoftware/smack/ConnectionConfiguration.java	(révision 11644)
-+++ org/jivesoftware/smack/ConnectionConfiguration.java	(copie de travail)
-@@ -20,6 +20,7 @@
- 
- package org.jivesoftware.smack;
- 
-+import javax.net.ssl.SSLContext;
- import org.jivesoftware.smack.proxy.ProxyInfo;
- import org.jivesoftware.smack.util.DNSUtil;
- 
-@@ -59,6 +60,7 @@
-     private boolean selfSignedCertificateEnabled = false;
-     private boolean expiredCertificatesCheckEnabled = false;
-     private boolean notMatchingDomainCheckEnabled = false;
-+    private SSLContext customSSLContext;
- 
-     private boolean compressionEnabled = false;
- 
-@@ -487,6 +489,25 @@
-     }
- 
-     /**
-+     * Gets the custom SSLContext for SSL sockets. This is null by default.
-+     *
-+     * @return the SSLContext previously set with setCustomSSLContext() or null.
-+     */
-+    public SSLContext getCustomSSLContext() {
-+	    return this.customSSLContext;
-+    }
-+
-+    /**
-+     * Sets a custom SSLContext for creating SSL sockets. A custom Context causes all other
-+     * SSL/TLS realted settings to be ignored.
-+     *
-+     * @param context the custom SSLContext for new sockets; null to reset default behaviour.
-+     */
-+    public void setCustomSSLContext(SSLContext context) {
-+	    this.customSSLContext = context;
-+    }
-+
-+    /**
-      * Returns true if the connection is going to use stream compression. Stream compression
-      * will be requested after TLS was established (if TLS was enabled) and only if the server
-      * offered stream compression. With stream compression network traffic can be reduced