package com.qmusic.volley;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.X509Certificate;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import com.qmusic.uitls.BLog;
public class QMusicHTTPSTrustManager implements X509TrustManager {
private static final X509Certificate[] _AcceptedIssuers = new X509Certificate[] {};
@Override
public void checkClientTrusted(java.security.cert.X509Certificate[] x509Certificates, String s) throws java.security.cert.CertificateException {
// To change body of implemented methods use File | Settings | File
// Templates.
}
@Override
public void checkServerTrusted(java.security.cert.X509Certificate[] x509Certificates, String s) throws java.security.cert.CertificateException {
// To change body of implemented methods use File | Settings | File
// Templates.
}
public boolean isClientTrusted(X509Certificate[] chain) {
return true;
}
public boolean isServerTrusted(X509Certificate[] chain) {
return true;
}
@Override
public X509Certificate[] getAcceptedIssuers() {
return _AcceptedIssuers;
}
public static SSLContext getSSLContext() {
SSLContext context = null;
try {
context = SSLContext.getInstance("TLS");// or SSL
TrustManager[] trustManagers = null;
// Option 1:
// KeyStore trustStore =
// KeyStore.getInstance(KeyStore.getDefaultType());
// // load the CA here
// trustStore.load(null, null);
// String algorithm = TrustManagerFactory.getDefaultAlgorithm();
// TrustManagerFactory tmf =
// TrustManagerFactory.getInstance(algorithm);
// tmf.init(trustStore);
// trustManagers = tmf.getTrustManagers();
// Option 2:
trustManagers = new TrustManager[] { new QMusicHTTPSTrustManager() };
context.init(null, trustManagers, null);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (KeyManagementException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return context;
}
public static HostnameVerifier getHostnameVerifier() {
HostnameVerifier verifier = new HostnameVerifier() {
@Override
public boolean verify(String urlHostName, SSLSession session) {
BLog.d("RequestImageManager", "" + urlHostName + " vs. " + session.getPeerHost());
return true;
}
};
return verifier;
}
}