1.1 --- a/src/org/gege/caldavsyncadapter/caldav/CopyOfEasySSLSocketFactory.java Tue Feb 10 21:55:00 2015 +0100 1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 1.3 @@ -1,159 +0,0 @@ 1.4 -/** 1.5 - * Copyright (c) 2012-2013, Gerald Garcia 1.6 - * 1.7 - * This file is part of Andoid Caldav Sync Adapter Free. 1.8 - * 1.9 - * Andoid Caldav Sync Adapter Free is free software: you can redistribute 1.10 - * it and/or modify it under the terms of the GNU General Public License 1.11 - * as published by the Free Software Foundation, either version 3 of the 1.12 - * License, or at your option any later version. 1.13 - * 1.14 - * Andoid Caldav Sync Adapter Free is distributed in the hope that 1.15 - * it will be useful, but WITHOUT ANY WARRANTY; without even the implied 1.16 - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1.17 - * GNU General Public License for more details. 1.18 - * 1.19 - * You should have received a copy of the GNU General Public License 1.20 - * along with Andoid Caldav Sync Adapter Free. 1.21 - * If not, see <http://www.gnu.org/licenses/>. 1.22 - * 1.23 - */ 1.24 - 1.25 -package org.gege.caldavsyncadapter.caldav; 1.26 - 1.27 -/* 1.28 - * Licensed to the Apache Software Foundation (ASF) under one 1.29 - * or more contributor license agreements. See the NOTICE file 1.30 - * distributed with this work for additional information 1.31 - * regarding copyright ownership. The ASF licenses this file 1.32 - * to you under the Apache License, Version 2.0 (the 1.33 - * "License"); you may not use this file except in compliance 1.34 - * with the License. You may obtain a copy of the License at 1.35 - * 1.36 - * http://www.apache.org/licenses/LICENSE-2.0 1.37 - * 1.38 - * Unless required by applicable law or agreed to in writing, 1.39 - * software distributed under the License is distributed on an 1.40 - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 1.41 - * KIND, either express or implied. See the License for the 1.42 - * specific language governing permissions and limitations 1.43 - * under the License. 1.44 - */ 1.45 - 1.46 -import java.io.IOException; 1.47 -import java.net.InetAddress; 1.48 -import java.net.InetSocketAddress; 1.49 -import java.net.Socket; 1.50 -import java.net.UnknownHostException; 1.51 - 1.52 -import javax.net.ssl.SSLContext; 1.53 -import javax.net.ssl.SSLSocket; 1.54 -import javax.net.ssl.TrustManager; 1.55 - 1.56 -import org.apache.http.conn.ConnectTimeoutException; 1.57 -import org.apache.http.conn.scheme.LayeredSocketFactory; 1.58 -import org.apache.http.conn.scheme.SocketFactory; 1.59 -import org.apache.http.params.HttpConnectionParams; 1.60 -import org.apache.http.params.HttpParams; 1.61 - 1.62 -/** 1.63 - * This socket factory will create ssl socket that accepts self signed 1.64 - * certificate 1.65 - * 1.66 - * @author olamy 1.67 - * @version $Id: EasySSLSocketFactory.java 765355 2009-04-15 20:59:07Z evenisse 1.68 - * $ 1.69 - * @since 1.2.3 1.70 - */ 1.71 -public class CopyOfEasySSLSocketFactory implements SocketFactory, 1.72 - LayeredSocketFactory { 1.73 - 1.74 - private SSLContext sslcontext = null; 1.75 - 1.76 - private static SSLContext createEasySSLContext() throws IOException { 1.77 - try { 1.78 - SSLContext context = SSLContext.getInstance("TLS"); 1.79 - context.init(null, new TrustManager[] { new EasyX509TrustManager( 1.80 - null) }, null); 1.81 - return context; 1.82 - } catch (Exception e) { 1.83 - throw new IOException(e.getMessage()); 1.84 - } 1.85 - } 1.86 - 1.87 - private SSLContext getSSLContext() throws IOException { 1.88 - if (this.sslcontext == null) { 1.89 - this.sslcontext = createEasySSLContext(); 1.90 - } 1.91 - return this.sslcontext; 1.92 - } 1.93 - 1.94 - /** 1.95 - * @see org.apache.http.conn.scheme.SocketFactory#connectSocket(java.net.Socket, 1.96 - * java.lang.String, int, java.net.InetAddress, int, 1.97 - * org.apache.http.params.HttpParams) 1.98 - */ 1.99 - public Socket connectSocket(Socket sock, String host, int port, 1.100 - InetAddress localAddress, int localPort, HttpParams params) 1.101 - throws IOException, UnknownHostException, ConnectTimeoutException { 1.102 - int connTimeout = HttpConnectionParams.getConnectionTimeout(params); 1.103 - int soTimeout = HttpConnectionParams.getSoTimeout(params); 1.104 - 1.105 - InetSocketAddress remoteAddress = new InetSocketAddress(host, port); 1.106 - SSLSocket sslsock = (SSLSocket) ((sock != null) ? sock : createSocket()); 1.107 - 1.108 - if ((localAddress != null) || (localPort > 0)) { 1.109 - // we need to bind explicitly 1.110 - if (localPort < 0) { 1.111 - localPort = 0; // indicates "any" 1.112 - } 1.113 - InetSocketAddress isa = new InetSocketAddress(localAddress, 1.114 - localPort); 1.115 - sslsock.bind(isa); 1.116 - } 1.117 - 1.118 - sslsock.connect(remoteAddress, connTimeout); 1.119 - sslsock.setSoTimeout(soTimeout); 1.120 - return sslsock; 1.121 - 1.122 - } 1.123 - 1.124 - /** 1.125 - * @see org.apache.http.conn.scheme.SocketFactory#createSocket() 1.126 - */ 1.127 - public Socket createSocket() throws IOException { 1.128 - return getSSLContext().getSocketFactory().createSocket(); 1.129 - } 1.130 - 1.131 - /** 1.132 - * @see org.apache.http.conn.scheme.SocketFactory#isSecure(java.net.Socket) 1.133 - */ 1.134 - public boolean isSecure(Socket socket) throws IllegalArgumentException { 1.135 - return true; 1.136 - } 1.137 - 1.138 - /** 1.139 - * @see org.apache.http.conn.scheme.LayeredSocketFactory#createSocket(java.net.Socket, 1.140 - * java.lang.String, int, boolean) 1.141 - */ 1.142 - public Socket createSocket(Socket socket, String host, int port, 1.143 - boolean autoClose) throws IOException, UnknownHostException { 1.144 - return getSSLContext().getSocketFactory().createSocket(); 1.145 - } 1.146 - 1.147 - // ------------------------------------------------------------------- 1.148 - // javadoc in org.apache.http.conn.scheme.SocketFactory says : 1.149 - // Both Object.equals() and Object.hashCode() must be overridden 1.150 - // for the correct operation of some connection managers 1.151 - // ------------------------------------------------------------------- 1.152 - 1.153 - public boolean equals(Object obj) { 1.154 - return ((obj != null) && obj.getClass().equals( 1.155 - CopyOfEasySSLSocketFactory.class)); 1.156 - } 1.157 - 1.158 - public int hashCode() { 1.159 - return CopyOfEasySSLSocketFactory.class.hashCode(); 1.160 - } 1.161 - 1.162 -} 1.163 \ No newline at end of file