1 /*******************************************************************************
2 * Copyright © Igor Barma, Alexandre Desoubeaux, Christian Martel, Eric Brun, Mathieu Amblard, Gwenael Gevet, Pierre Guillot, 2012
4 * This file is part of the work and learning management system Pentila Nero.
6 * Pentila Nero is free software. You can redistribute it and/or modify since
7 * you respect the terms of either (at least one of the both license) :
8 * - under the terms of the GNU Affero General Public License as
9 * published by the Free Software Foundation, either version 3 of the
10 * License, or (at your option) any later version.
11 * - the CeCILL-C as published by CeCILL-C; either version 1 of the
12 * License, or any later version
13 * - the GNU Lesser General Public License as published by the
14 * Free Software Foundation, either version 3 of the license,
15 * or (at your option) any later version.
17 * There are special exceptions to the terms and conditions of the
18 * licenses as they are applied to this software. View the full text of
19 * the exception in file LICENSE-PROJECT.txt in the directory of this software
22 * Pentila Nero is distributed in the hope that it will be useful,
23 * but WITHOUT ANY WARRANTY; without even the implied warranty of
24 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25 * Licenses for more details.
27 * You should have received a copy of the GNU Affero General Public License
28 * and the CeCILL-C and the GNU Lesser General Public License along with
29 * Pentila Nero. If not, see :
30 * <http://www.gnu.org/licenses/> and
31 * <http://www.cecill.info/licences.fr.html>.
32 ******************************************************************************/
33 package com.pentila.entSavoie.mobileNotification.androidUtils;
34 import java.io.IOException;
35 import java.net.InetAddress;
36 import java.net.Socket;
37 import java.net.UnknownHostException;
38 import java.security.KeyManagementException;
39 import java.security.KeyStore;
40 import java.security.KeyStoreException;
41 import java.security.NoSuchAlgorithmException;
42 import java.security.UnrecoverableKeyException;
43 import java.security.cert.CertificateException;
44 import java.security.cert.X509Certificate;
46 import javax.net.ssl.SSLContext;
47 import org.apache.http.conn.ssl.SSLSocketFactory;
48 import javax.net.ssl.TrustManager;
49 import javax.net.ssl.X509TrustManager;
51 public class EasySSLSocketFactory extends SSLSocketFactory {
52 SSLContext sslContext = SSLContext.getInstance("TLS");
54 public EasySSLSocketFactory(KeyStore truststore)
55 throws NoSuchAlgorithmException, KeyManagementException,
56 KeyStoreException, UnrecoverableKeyException {
59 TrustManager tm = new X509TrustManager() {
60 public void checkClientTrusted(X509Certificate[] chain,
61 String authType) throws CertificateException {
64 public void checkServerTrusted(X509Certificate[] chain,
65 String authType) throws CertificateException {
68 public X509Certificate[] getAcceptedIssuers() {
73 sslContext.init(null, new TrustManager[] { tm }, null);
77 public Socket createSocket(Socket socket, String host, int port,
78 boolean autoClose) throws IOException, UnknownHostException {
79 return sslContext.getSocketFactory().createSocket(socket, host, port,
85 public Socket createSocket() throws IOException {
86 return sslContext.getSocketFactory().createSocket();