in src/main/java/com/microsoft/azure/datalake/store/SSLSocketFactoryEx.java [155:190]
private void initSSLSocketFactoryEx(KeyManager[] km, TrustManager[] tm,
SecureRandom random)
throws NoSuchAlgorithmException, KeyManagementException, IOException {
switch (channelMode) {
case Default:
try {
java.util.logging.Logger.getLogger(SSL.class.getName()).setLevel(Level.WARNING);
m_ctx = SSLContext.getInstance("openssl.TLS");
m_ctx.init(km, tm, random);
channelMode = SSLChannelMode.OpenSSL;
} catch (NoSuchAlgorithmException e) {
log.info("Failed to load OpenSSL library. Fallback to default JSE. ", e);
m_ctx = SSLContext.getDefault();
channelMode = SSLChannelMode.Default_JSE;
}
break;
case Default_JSE:
m_ctx = SSLContext.getDefault();
break;
case OpenSSL:
m_ctx = SSLContext.getInstance("openssl.TLS");
m_ctx.init(km, tm, random);
break;
}
// Get list of supported cipher suits from the SSL factory.
SSLSocketFactory factory = m_ctx.getSocketFactory();
String[] defaultCiphers = factory.getSupportedCipherSuites();
String version = System.getProperty("java.version");
m_ciphers = (channelMode == SSLChannelMode.Default_JSE && version.startsWith("1.8")) ?
alterCipherList(defaultCiphers) : defaultCiphers;
}