diff -r aa8c2dac6d02 -r 4c7edc276676 doc/asmack-beem/beem_patches/10-custom-sslcontext.patch --- 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